apache,linux,dos,spam,mod evasive

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 ;-)

1. Le , 23:55 par spawnrider
f7bf66fa0d9fc0532a323f47a5c3ba95

É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 ?

2. Le , 00:48 par Ludovic
9ab09dd3e305f924f8930e20e1a35843

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

3. Le , 11:15 par moon06
5a88b9eb4a566966ae055e380d0263c9

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.

:)

4. Le , 21:22 par viking76
92f364d05568b717de81776938cbff94

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.

5. Le , 14:01 par Number
510cc355c506c9c6943530f8c3914f5f

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!!!

6. Le , 19:44 par Ludovic
9ab09dd3e305f924f8930e20e1a35843

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.

7. Le , 17:38 par toupil
da280282cdd83bef576183eb218a5dc8

très intéressant ce module. je vais l'installer sur mon site !

8. Le , 23:17 par Ludovic
9ab09dd3e305f924f8930e20e1a35843

@toupil : Après tu peux connecter sur les logs un Fail2ban pour bannir les personnes sur tous les services de ton serveur ;-)

Ajouter un commentaire

Le code HTML est affiché comme du texte et les adresses web sont automatiquement transformées.