Protéger votre serveur Web contre les attaques DoS avec mod_evasive pour Apache
Pourquoi utiliser mod_evasive ?
Dans l'écosystème de la sécurité web, mod_evasive est un module pour Apache conçu pour fournir une action évasive en cas d'attaque par déni de service (DoS, DDoS) ou d'attaque par force brute. Il crée une table dynamique d'adresses IP et surveille chaque requête entrante.
Si une IP dépasse les seuils configurés (trop de requêtes sur une page ou sur le site complet dans un laps de temps très court), elle est immédiatement bloquée temporairement.
Installation du module
Sur la plupart des distributions basées sur Debian ou Ubuntu, l'installation est directe via le gestionnaire de paquets :
sudo apt update
sudo apt install libapache2-mod-evasive
Une fois installé, vérifiez que le module est bien activé :
sudo a2enmod evasive
Configuration optimale
Le fichier de configuration se trouve généralement dans /etc/apache2/mods-available/evasive.conf. Voici les directives essentielles à ajuster :
- DOSHashTableSize : Taille de la table de hachage (augmentez pour les serveurs à fort trafic).
- DOSPageCount : Nombre de requêtes autorisées sur une même page dans l'intervalle donné (ex: 2).
- DOSSiteCount : Nombre total de requêtes autorisées sur l'ensemble du site (ex: 50).
- DOSPageInterval : Intervalle pour le seuil des pages (généralement 1 seconde).
- DOSSiteInterval : Intervalle pour le seuil du site (généralement 1 seconde).
- DOSBlockingPeriod : Durée du bannissement en secondes (ex: 10).
Note : Soyez prudent avec des seuils trop bas, sous peine de bloquer des utilisateurs légitimes dont le navigateur charge de nombreuses ressources simultanément.
Tester la protection
Le module est souvent livré avec un script Perl de test (test.pl). Vous pouvez simuler une attaque pour vérifier que le serveur répond bien par un code 403 Forbidden après quelques requêtes :
perl /usr/share/doc/libapache2-mod-evasive/examples/test.pl
Conclusion
Bien que mod_evasive soit une excellente première ligne de défense pour éviter qu'un script simple ne mette votre serveur à genoux, il ne remplace pas une solution plus globale comme Fail2Ban ou un pare-feu applicatif (WAF) pour contrer des attaques distribuées de grande envergure.