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