mod_security et apache2
Par Christophe de saint leger le jeudi, novembre 27 2008, 19:43 - Serveur - Lien permanent
Comment sécuriser un peut plus un serveur web
Nous allons dans cet article , expliquer comment installer un module qui permet d'accentuer le filtrage des entrées sorties avant même qu'apache n'interprète quoi que ce soit
Installation et configuration du mod_security sur apache2
Je part du principe ou apache a été installé manuellement pour coller parfaitement à mon cas ... mais celà doit aussi fonctionner avec apache provenant des paquets des votre distribution !
Récupération et extraction des sources
A partir de ce site : http://www.modsecurity.org/ Il vous faudra peut être vous inscrire sur le site ci dessus , c'est gratuit , n'hésitez pas à le faire !
cd /usr/local/src wget https://bsn.breach.com/downloads/t=e0007a7878f983675309be4e2ebca139/modsecurity-apache/modsecurity-apache_2.5.7.tar.gz tar xzf modsecurity-apache_2.5.7.tar.gz rm modsecurity-apache_2.5.7.tar.gz cd modsecurity-apache_2.5.7/apache2/
Configuration et compilation
vim my_configure
voici le contenu :
#!/bin/sh ./configure --with-apxs2=/usr/local/bin/apxs \
Puis lancement de la configuration
chmod 777 my_configure ./my_configure
Voici les paquets que j'ai du installer pour mener à bien cette étape :
apt-get install libpcre3-dev liblua5.1-dev
Puis les étapes habituelles :
make make install
Le module est maintenant installer , il nous faut le lier à apache
Ajout du module dans apache
Comme le spécifie la doc officiel , il faut ajouter ces trois lignes dans l'ordre suivant , dans le fichier de configuration principal d'apache
cd /usr/local/conf/ vim httpd.conf
Les trois lignes à ajouter sont :
LoadFile /usr/lib/libxml2.so LoadFile /usr/lib/liblua5.1.so LoadModule security2_module modules/mod_security2.so
Et voilà maintenant le mod_security est prêt à être configuré .
Configuration et activation
Le module est prêt à l'emploi , mais il reste à lui donner les régles de filtrage . Certaines régles (les régles minimum ) sont présentes dans le répertoire des sources du module . Nous n'allons pas nous contenter des quelques régles ,mais bien plus . Un paquet contenant une multitudes de régles à jour est disponible sur le site de Breach Sécurity
Nous allons les disposer dans /usr/local/conf/extra
cd /usr/local/conf/extra/ wget https://bsn.breach.com/downloads/t=e0007a7878f983675309be4e2ebca139/modsecurity-apache/modsecurity-core-rules_2.5-1.6.1.tar.gz tar xzf modsecurity-core-rules_2.5-1.6.1.tar.gz rm modsecurity-core-rules_2.5-1.6.1.tar.gz
Toutes les régles se trouvent donc dans le répertoire /usr/local/conf/extra/modsecurity-core-rules_2.5-1.6.1/
Pour les utiliser , nous allons les inclure dans le fichier de configuration principale d'apache
cd /usr/local/conf/ vim httpd.conf
Voici les lignes à ajouter à la fin de votre fichier
#mod_security2 Include conf/extra/modsecurity-core-rules_2.5-1.6.1/*.conf
Il ne vous reste plus qu'à relancer apache , et de vérifier que le module soit bien actif via par exemple le phpinfo
Le fichier de configuration qui vous permet par exemple de gérer l'activation , ou non du module , le répertoire des log , les actions à effectuer en fonction de "l'attaque détecté ect " se trouve dans le fichier :
/usr/local/conf/extra/modsecurity-core-rules_2.5-1.6.1/modsecurity_crs_10_config.conf
Une doc complète est disponible dans le répertoire des sources du module .. je vous laisse donc découvrir les différentes options disponible ... ( elles sont trés nombreuses )
Et voilà , une fois activé , vous avez déjà sans rien toucher une bonne sécurité en amont de votre code source , qui permet de filtrer toutes requetes contre , les sondes , robots malveillant , injection de code XSS ect ... A bientôt ..
christophe.
Ressources:
modsecurity-apache_2.5.9
modsecurity-core-rules_2.5-1.6.1

