Etape 1 : Installation du mod proxy

  • http://www.it-connect.fr/mise-en-place-dun-reverse-proxy-apache-avec-mod_proxy/

Etape 2 : Installation du mod_security

  • http://www.it-connect.fr/installation-de-mod_security-devant-un-serveur-web-apache/

Etape 3 : installation du mod_evasive

  • http://wiki.kogite.fr/index.php/Apache_mod_security,_mod_evasive_:_limitation_du_traffic,_protection_anti-DDOS

Fichier de config de vhost:

Désactiver une règle

Et on scrute les fichiers de logs pour détecter les éventuels problèmes :

tail -f /var/log/httpd/modsecurity-audit.log
tail -f /var/log/httpd/error_log

Pour ma part, j’ai remarqué que dans les logs le message suivant revenait souvent :

Cela arrive quand le client qui se connecte au serveur utilise des headers mal configurés. Ce n’est pas vraiment un problème de sécurité en soit, à moins d’être paranoïaque. J’ai donc désactivé la couche qui vérifie les en-têtes comme ceci :

cd /etc/httpd/modsecurity.d/base_rules/
mv modsecurity_crs_21_protocol_anomalies.conf \
modsecurity_crs_21_protocol_anomalies.conf.disable

J’ai également désactivé les règles qui détectent les mauvais robots. Car celles-ci bloquent les requêtes faite sur le site avec wget ou curl, or beaucoup d’articles publiés préconisent d’utiliser ces commandes :

mv modsecurity_crs_35_bad_robots.conf \
modsecurity_crs_35_bad_robots.conf.disable

Test de sécurité

Je déconseille fortement la mise en place de Mod_security sur un serveur en production, ne serait-ce parce que ce genre de firewall applicatif génère des faux-positifs. Voici quelques exemples de tests que l’on peut réaliser. Les actions suivantes doivent par exemple être bloquées :

  • saisir « OR 1=1 » dans un champ de recherche
  • ajouter « <script>xss</script> » à la fin d’une url du site
  • ajouter « /../../etc/passwd » à la fin d’une url du site

 

Installation de Mod_security

Pour installer Mod_security sur une distribution à base de RPM (Red Hat, centOS, Fedora…), ouvrez un terminal et lancez la commande suivante en root :

yum install mod_security

Ou celle-ci pour une distribution à base de Debian :

sudo apt-get install libapache2-mod-security2

Exemple mod_evasive