vosinformations.com

Howto mod_evasive

mod_evasive pour Apache

mardi 23 décembre 2008

La détection est effectuée par la création d’une table de hachage dynamique interne incluant, adresses, URIs, et adresse IP du "visiteur", celui ci adopte un des comportements - paramétrables - suivants :

  • demander la même page plusieurs fois par seconde,
  • effectuer plus de 50 requêtes simultanées,
  • continuer à envoyer des requêtes alors que le "visiteur" se trouve blacklisté.

Installation du module

  • Récupération de mod_evasive :

Récupération de la dernière version stable de mod_evasive sur le site de l’éditeur ou en bas de page.

wget http://www.zdziarski.com/projects/mod_evasive/mod_evasive_1.10.1.tar.gz

On décompresse le fichier téléchargé :

tar xzvf mod_evasive_1.10.1.tar.gz

On se déplace dans le dossier obtenu :

cd mod_evasive

  • Installation du module

Pour l’installation du module à proprement parler, on se sert de la commande apxs2
apxs (et donc apxs2) est un outil pour construire et installer des modules d’extension pour le serveur de protocole de transfert Hypertexte (HTTP) Apache
S’il n’est pas installé, on s’en charge immédiatement : apt-get install apache2-threaded-dev

On installe le module par la commande (pour apache2) : apxs2 -ic mod_evasive20.c

( pour apache, la commande est : apxs -ic mod_evasive.c )

Ensuite, on créé un fichier mod_evasive20.load dans /etc/apache2/mods-available dont le contenu sera :

LoadModule evasive20_module /usr/lib/apache2/modules/mod_evasive20.so


Paramétrage du module

Dans apache2.conf ou plus simplement dans httpd.conf, on insère les paramètres de configuration du module.

<IfModule mod_evasive20.c>
   DOSHashTableSize 3097
   DOSPageCount 2
   DOSSiteCount 50
   DOSPageInterval 1
   DOSSiteInterval 1
   DOSBlockingPeriod 10
   DOSLogDir "/var/log/apache2/mod_evasive"
</IfModule>
  • Explications des paramètres

Dans les paramètres, on parlera de plusieurs seuils, définis dans ces mêmes paramètres.
Une fois ce que seuil aura été dépassé, l’adresse ip du client est ajoutée à la liste du blocage.

- DOSHashTableSize : table de hashage
- DOSPageCount : seuil du nombre de demande de la même page (url identique) pendant l’ intervalle temps définie par DOSPageInterval.
- DOSSiteCount : seuil du nombre de demande de pages différentes (url différentes) autorisés durant l’intervalle temps définie par DOSSiteInterval.
- DOSPageInterval : seuil de l’intervalle temps en secondes attaché à DOSPageCount. Défaut : 1 seconde.
- DOSSiteInterval : seuil de l’intervalle temps en secondes attaché à DOSSiteCount. Défaut : 1 seconde.
- DOSBlockingPeriod : Période en secondes durant laquelle l’ip du visiteur est bloquée. Les demandes ultérieures du client se traduiront par une réponse 403 (Interdit) . La période court à compter de la dernière requête. Si le client émet une nouvelle requête durant le compte à rebours, le compte à rebours reprend dans son intégralité.

  • Paramètres optionnels :

- DOSEmailNotify : Quand ce paramètre est présent, le module enverra un mail au destinataire losqu’une ip se trouvera bloquée.
- DOSSystemCommand : Lorsque se paramètre est présent, le module exécutera une commande lorsqu’une ip se trouvera bloquée.
- DOSLogDir : Adresse du fichier log. Défaut : /tmp


  • Passage en production :

On active le module a2enmod mod_evasive20 puis, on recharge la configuration du serveur : /etc/init.d/apache2 force-reload

P.-S.

Pour apache 1.3 et 2.0.

SPIP | | Plan du site | Suivre la vie du site RSS 2.0

Sauf mention contraire, le site est placé sous double licence Creative Commons BY-SA et GNU Free Documentation License.