Apache2: mod_evasive limiter les attaques DOS

  • Installer mod_evasive:

apt-get install libapache2-mod-evasive

  • Vérifier si le module est activé:

apache2ctl -M

(pour activer un module : a2enmod)

  • Modifier le fichier /etc/apache2/mods-available/mod-evasive.load

LoadModule evasive20_module /usr/lib/apache2/modules/mod_evasive20.so
<IfModule mod_evasive20.c>
DOSHashTableSize 3097
DOSPageCount 2
DOSSiteCount 50
DOSPageInterval 5
DOSSiteInterval 1
DOSBlockingPeriod 10
DOSLogDir “/var/log/apache2/evasive”
DOSWhitelist 127.0.0.1
</IfModule>

  • Créer le répertoire des logs:

mkdir -p /var/log/apache2/evasive

chown -R www-data:root /var/log/apache2/evasive

  • Redémarrer le service apache

service apache2 restart

  • Créer une tâche cron pour purger le dossier evasive:

crontab -e

Ajouter:

00 0 * * * /usr/bin/find /var/log/apache2/evasive/ -mtime +1 -type f -exec rm -f '{}' \;

Redémarrer le service cron

service cron restart

  • Pour whitlister une adresse ip:

DOSWhitelist xxxx.xxxx.xxxx.xxxx