Friday, September 25, 2009

mod_evasive

SkyHi @ Friday, September 25, 2009
Sous centos/fedora:
view sourceprint?
1.yum install mod_evasive

Editer le fichier de configuration /etc/httpd/conf.d/mod_evasive.conf et le configurer de la manière suivante:
view sourceprint?
01.vi /etc/httpd/conf.d/mod_evasive.conf
02.DOSHashTableSize 3097
03.DOSPageCount 3
04.DOSSiteCount 50
05.DOSPageInterval 2
06.DOSSiteInterval 2
07.DOSBlockingPeriod 10
08.DOSEmailNotify votreemail@votredomaine.com
09.#DOSSystemCommand "/sbin/iptables -I INPUT -s %s -j DROP"[

DOSSystemCommand “/bin/echo %s >> /var/log/mod_evasive/dos_evasive.log && /bin/date >> /var/log/mod_evasive/dos_evasive.log”
view sourceprint?
01.DOSLogDir "/var/log/mod_evasive/"
02.DOSWhitelist 127.0.0.1
03.#DOSWhitelist 192.168.0.*
04.DOSWhiteList 66.249.67.*
05.DOSWhiteList 66.249.71.*
06.DOSWhiteList 66.249.66.*
07.DOSWhiteList 66.249.72.*
08.DOSWhiteList 66.249.65.*
09.DOSWhiteList 66.249.65.*
10.DOSWhiteList 66.249.66.*
11.DOSWhiteList 66.249.71.*

DOSPageCount : Nombre maximal de requêtes qu’une adresse IP source peut réaliser sur la même ressource (même URL) pendant une unité de temps sans être ajoutée à la liste noire.

DOSSiteCount : Nombre maximal de requêtes qu’une adresse IP source peut réaliser sur le même enfant pendant une unité de temps sans être ajoutée à la liste noire.

DOSPageInterval : Temps évoquée dans la directive DOSPageCount (en seconde).

DOSSiteInterval : Temps évoquée dans la directive DOSSiteCount (en secondes).

DOSBlockingPeriod : Durée pendant laquelle tous les accès des adresses IP en liste noire seront refusés et recevront une erreur 403. Pas besoin de mettre beaucoup puisque l’IP sera blacklisté temps qu’elle n’arrête pas de flooder

DOSEmailNotify : Adresse email à prévenir lorsqu’une IP est interceptée

DOSSystemCommand : Commande a exécuter. Par exemple bloquer pat Iptables, ajouter l’adresse IP dans la blackliste du routeur, loguer l’IP…

DOSWhiteList : Adresse IP a ne jamais blacklister. Il est bon d’ajouter les adresses IP des GoogleBot.

Il faut ensuite créer le dossier des logs et mettre les droits pour qu’apache puisse ecrire dedans
view sourceprint?
1.mkdir /var/log/mod_evasive/
2.chown -R apache.apache /var/log/mod_evasive

Il n’est pas recommandé de bloquer les IP directement avec Iptables apr mod_evasive car dans ce cas la il faut autoriser l’utilisateur apache a utiliser Iptables. Et la ca devient très dangereux en terme de sécurité.

Mais bon pour ceux qui veulent le faire, editer le fichier /etc/sudoers et ajouter la ligne : apache ALL=NOPASSWD:/sbin/iptables (ce qui est gênant c’est justement le NOPASSWD……..)

Reference: http://blog.apyka.com/index.php/tag/flood/