J’ai lu avec intérêt l’article du blog de Bartounet et j’ai eu envie de reproduire la démarche. Par contre, j’ai commencé par créer la protection avant de simuler l’attaque.
L’idée est de permettre au serveur web Apache de résister à une attaque DOS (Deny of Service). L’attaque DOS consiste à submerger le serveur web de requêtes jusqu’à que le serveur de puisse plus suivre et ne réponde plus aux requêtes normales.
Une attaque coordonnée à partir de plusieurs ordinateurs devient une attaque distribuée : DDOS.
Le module evasive ajoute cette protection à Apache de la façon suivante:
Les requêtes sont ignorées pour les adresses IP :
- ayant déjà demandées la même page plusieurs fois par seconde
- ayant fait plus de 50 requêtes sur le même processus enfant par seconde
- ayant été déjà mises sur une liste noire.
L’installation du module se fait très simplement avec apt-get install libapache2-mod-evasive
Si vous avez installé le module info d’Apache, vous pourrez vérifier que le module est chargé mais qu’il n’y a encore aucune configuration. Par contre les directives du module sont présentées dans le module info d’Apache.
Il y a donc lieu de rajouter ces directives à /etc/apache2/apache2.conf
# paramètres pour le module evasive qui traite les attaques ddos
<ifmodule mod_evasive20.c>
DOSHashTableSize 3097
DOSPageCount 2
DOSSiteCount 50
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 10
DOSWhitelist 127.0.0.*,66.249.65.*
DOSLogDir « /var/log/evasive »
DOSSystemCommand « /bin/echo %s >> /var/log/apache2/evasive/evasive.log »
DOSEmailNotify monuser@mondomaine.fr
</ifmodule>
Les erreurs sont donc loggées dans un répertoire et un fichier ad-hoc
Il y a lieu de créer ce répertoire avec sudo mkdir /var/log/apache2/evasive
Ensuite ne pas oublier de relancer apache avec sudo /etc/init.d/apache2 reload
Un prochain article testera les défenses ainsi créées.
