Installation et configuration d’un WAF (CentOS 7.2)

WAF pour Web Application Firewall est un module qui permet de protéger votre serveur web (Appache ou Nginx) des attaques DdoS, des injections SQL ou encore des attaques de type XSS. Il s’appuie les travaux du projet OWASP (Open Web Application Security Project).

Installation de ModSecurity pour Apache

On installe les modules WAF pour Apache en tapant la commande suivante :

1
# yum install mod_security mod_security_crs

Avant de redémarrer Apache pour prendre en compte les modules installés, nous allons activer le mode debug intégré au module « mod_security ». On sauvegarde le fichier d’origine en tapant la commande suivante :

1
# cp /etc/httpd/conf.d/mod_security.conf{,.ori}

On édite le fichier « mod_security.conf » via la commande suivante :

1
# vi /etc/httpd/conf.d/mod_security.conf

On active le debug en mettant la valeur 1 à la directive « SecDebugLogLevel » comme ci-dessous (ligne 44) :

1
SecDebugLogLevel 1

Les logs seront inscrits dans le fichier « /var/log/httpd/modsec_debug.log » comme indiqué ligne 43 dans le fichier « /etc/httpd/conf.d/mod_security.conf ». Maintenant que le module est bien configuré, nous allons l’activer dans Apache via la commande suivante :

1
# systemctl reload httpd.service

Pour désactiver une règle et afin qu’elle ne soit pas réactiver lors d’une mise à jour des règles, il faudra modifier votre fichier .htaccess ou le fichier de configuration de votre vhost comme ci dessous :

1
2
3
4
5
<LocationMatch "/wp-admin ">
    <IfModule security2_module>
        SecRuleRemoveById 973300
    </IfModule>
</LocationMatch>

L’id de la règle à désactiver sera à récupérer dans le fichier de log « /var/log/httpd/modsec_debug.log »