Outils personnels

Apache mod security, mod evasive : limitation du traffic, protection anti-DDOS

De wikiGite

Révision datée du 3 novembre 2011 à 15:57 par Frank (discussion | contributions) (Page créée avec « Mod_evasive est un module Apache pour contrer les attaques DOS. Celui-ci est par exemple capable de détecter lorsqu'un utilisateur demande un trop grand nombre de pages sur ... »)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)

Mod_evasive est un module Apache pour contrer les attaques DOS. Celui-ci est par exemple capable de détecter lorsqu'un utilisateur demande un trop grand nombre de pages sur un site web, sur un délai de temps très court. Voici comment l'installer et le configurer pour une utilisation basique.


Installation

Sur CentOS/BlueOnyx : Déclarer le dépôt EPEL (Dépôts_complémentaires), puis

yum install --enablerepo=epel mod_evasive

Sur Debian :

sudo apt-get install libapache2-mod-evasive

Configuration basique

Toute la configuration de Mod_evasive se trouve dans le fichier /etc/httpd/conf.d/mod_evasive.conf (ou /etc/apache2/conf.d/mod-evasive pour une distribution à base de debian). Exemple de configuration :

<IfModule mod_evasive20.c>
  DOSHashTableSize 3097
  # Pas plus de 2 pages par seconde, 150 requetes par site
  DOSPageCount 2
  DOSPageInterval 1
  DOSSiteCount 150
  DOSSiteInterval 1
  # Periode en seconde pendant laquelle on bloque le client
  DOSBlockingPeriod 600
  # Dossier contenant les IP blaclistes
  DOSLogDir "/var/lock/mod_evasive"
  DOSWhitelist 66.249.65.*
  DOSWhitelist 66.249.66.*
  DOSWhitelist 66.249.71.*
</IfModule>

On met ensuite en place le dossier qui va stocker les adresses IP blacklistées :

mkdir -p /var/lock/mod_evasive
chown -R apache:apache /var/lock/mod_evasive

Et on relance le serveur Apache pour prendre en compte les modifications :

/etc/init.d/httpd restart

Ou pour Debian :

/etc/init.d/apache2 restart

TIPS

Tests

Pour tester le module, on peut mettre des valeurs assez faibles et regarder ce qui se passe. Normalement, toutes les images des sites visités ne s'afficheront pas et le dossier /var/lock/mod_evasive devrait se remplir.

Ménage

Pour finir, on peut mettre en place la crontab suivante pour puger le dossier de blacklist de temps en temps :

# Menage mod_evasive
00 5 * * * find /var/lock/mod_evasive -mtime +1 -type f -exec rm -f '{}' \;