Apache Mod_evasive : la solution contre les floods de spam
Par Ludovic Toinel le jeudi 30 août 2007, 23:26 - GNU-Linux - Lien permanent

Depuis plusieurs semaines mon serveur a quelques soucis de temps à autre suite à des floods inattendus de requêtes HTTP. Ces flood montent jusqu'à plus de 100 requêtes simultanées et provoquent une surconsommation CPU de mon serveur Web ainsi que des freeze au niveau Apache.
J'ai analysé les logs Apache, mais rien à faire les floodeurs proviennent d'adresse IP différentes.
J'ai donc installé un module Apache qui se nomme mod_evasive et qui permet de détecter les floods et les tentatives de déni de service. Ce module renvoie des erreurs HTTP 403 lorsque le seuil de sollicitation du serveur Web par IP a été dépassé. Ce blocage dure pendant 10 secondes (paramétrable). Il est aussi possible de demander au module d'exécuter une commande lorsque qu'un flood est détecté, il est ainsi possible d'ajouter une règle Iptables à chaque nouvelle détection de flood.
Ce module est téléchargeable depuis cette adresse :
http://www.zdziarski.com/projects/mod_evasive/
Il s'installe vraiment très simplement :
http://wiki.unelectronlibre.info/serveurweb/mod_evasive_avec_apache2
Cependant, il ne fonctionne pas correctement avec toutes les applications web, le chargement de la page d'administration de Dotclear2 pose un problème par exemple. Les icônes des plugins, dans le menu vertical, pointent tous vers la même URL : "index.php?pf=", lorsque la page est chargée par le navigateur, le module détecte plusieurs requêtes HTTP vers la même ressource et bloque le client, ce qui est très embêtant.
J'ai donc activé le module en mettant mon IP dans la Whitelist. Laissez-moi un message si vous êtes tombé sur des erreurs 403 Forbidden inattendues, je reparaméterai le module pour qu'il soit moins paranoïaque 
Dernières News
Nuage de Tags
Archives
RSS des articles
Souscrire par email



Commentaires
Énorme ce module ! Merci pour l'info !
Mais ce que je ne comprends pas :
Tu dis "Ce module renvoie des erreurs HTTP 403 lorsque le seuil de sollicitation du serveur Web par IP a été dépassé."
alors que tu dis précédement que
"J'ai analysé les logs Apache, mais rien à faire les floodeurs proviennent d'adresse IP différentes."
Comment vas tu donc faire pour bloquer les floods si une seule et unique IP est utilisée à chaque fois ?
C'est le module qui détecte le flood et qui bloque l'IP pendant 10 secondes en lui renvoyant des code erreurs 302 au lieu de code 200 OK
J'utilise mod_evasive avec Apache depuis un petit moment maintenant et c'est vrai qu'il est vraiment génial.
Pour ce qui est du whitelist d'IP, tu devrais plutôt whitelister la page de requête d'images, il est peu probable qu'une attaque via DoS soit lancée sur celle-ci.
Le site de ma boite a le droit tous les jours a des scans de ports, des floods, etc . Heureusement qu'il y a un ipcop devant avec un snort bien à jour, mais est-c suffisant ?
C'est allucinant, je trouve c'est beaucoup d'attaques d'ailleurs venant d'adresse IP Free.
Houla, je suis vraiment en retard sur ce billet..
mais étant a la recherche d'une solution pour contrer les vague de spam je suis re-tomber sur ce blog..
Juste une question technique ?
Comment as-tu fait pour éviter de bloquer les spider bot des moteur de recherche ?
Merci a toi!!!
Je suis passé à Lighttpd depuis, je n'utilise plus Apache.
Il est cependant possible de définir des Whitelist sur le mod_evasive d'apache.
Sous Lighttpd, je n'ai pas défini de whitelist et j'ai positionné à 10 le nombre de requêtes simultanée et tout fonctionne, le webmaster tool de Google ne m'indique pas de grosses erreurs.