Modsecurity-apache/Tests
Tests de bon fonctionnement
Description
Cette section vous présente un cas d'étude qui vous permettra de tester le bon fonctionnement de votre installation. Vous pouvez l'utiliser après avoir paramétré un jeu de règles personnalisées (myrules.conf) ou après avoir installé le jeu de règles de base proposé par Breach Security Inc.
Les premiers tests à effectuer après avoir redémarré Apache (/usr/local/apache2/bin/apachectl restart) consistent à parcourir l'ensemble de votre site à l'aide de votre navigateur, ainsi qu'à tester différentes attaques (injections SQL, XSS, etc.) pertinentes en fonction des règles que vous avez mises en place.
Tests unitaires
Libre à vous de tester ensuite unitairement les différentes règles mises en place dans les fichiers de configuration de Modsecurity. L'exemple suivant vous montre comment tester le masquage de la bannière Apache.
Etape 1 : commenter le paramètre SecServerSignature
Dans un premier temps, commentons la ligne contenant le paramètre SecServerSignature :
<IfModule security2_module> # SecServerSignature " " ... </IfModule>
Redémarrer ensuite Apache afin de prendre en compte les modifications :
# /usr/local/apache2/bin/apachectl restart
Etape 2 : Noter l'apparition de la bannière
Se connecter avec telnet ou Netcat :
# nc 127.0.0.1 80 GET / HTTP/1.1 Host: 127.0.0.1
Appuyer sur ENTREE puis observer les résultats obtenus :
HTTP/1.1 200 OK Date: Mon, 16 Nov 2009 18:29:54 GMT Server: Apache/2.2.14 (Unix) PHP/5.3.0 X-Powered-By: PHP/5.3.0 Noter les résultats obtenus : la bannière fournit des informations sur la version d'Apache installée sur le serveur.
Etape 3 : décommenter le paramètre SecServerSignature
Décommentons maintenant la ligne contenant le paramètre SecServerSignature et positionnons sa valeur à " " (espace) :
<IfModule security2_module> SecServerSignature " " ... </IfModule>
Redémarrer ensuite Apache afin de prendre en compte les modifications :
# /usr/local/apache2/bin/apachectl restart
Etape 4 : Noter la disparition des informations de la bannière
Se connecter avec telnet ou Netcat :
# nc 127.0.0.1 80 GET / HTTP/1.1 Host: 127.0.0.1
Appuyer sur ENTREE puis observer les résultats obtenus :
HTTP/1.1 200 OK Date: Mon, 16 Nov 2009 18:29:54 GMT Server: X-Powered-By: PHP/5.3.0 Noter les résultats obtenus : la bannière remplace la version d'Apache par la chaîne fournie dans le fichier de configuration.
Tunning des règles du firewall
Lors de vos tests, il est fort probable que certaines pages ne s'affichent plus (erreur 403 par exemple). Ceci est valable notamment si vous utilisez mediawiki, phpBB ou autre. Dans ce cas, il est nécessaire de consulter le fichier de logs /var/log/apache2/error.log et de repérer l'erreur obtenue à la fin du fichier, afin de paramétrer une exception de règle.