Mod_evasive est un module pour Apache qui prend automatiquement des mesures lorsqu'une attaque HTTP DoS ou une attaque par force brute est détectée. Mod_evasive peut enregistrer et signaler les abus et signaler les problèmes par e-mail. Avant de suivre ce guide, vous devez déjà avoir un serveur LAMP en place qui fonctionne correctement.
Ce guide a été écrit pour CentOS et ses variantes (comme RHEL) et Debian et ses variantes (comme Ubuntu).
Le module crée un tableau d'adresses IP et d'URL. Si les conditions définies dans la configuration (comme décrit plus loin dans ce document) sont remplies, les utilisateurs abusifs obtiendront une erreur 403 (interdite). De plus, l'adresse IP est enregistrée et si l'option est définie, un e-mail sera envoyé à l'adresse e-mail spécifiée.
Étape 1: installation httpd-devel
Le package httpd-devel contient les fichiers requis dont vous avez besoin pour créer des objets partagés dynamiques pour Apache. Nous avons besoin de ce package pour installer le module, car nous le compilerons nous-mêmes dans les étapes suivantes.
Sur CentOS / RHEL, exécutez:
yum install httpd-devel
Sur Debian / Ubuntu, exécutez:
apt-get install apache2-utils
Une fois ce package correctement installé, passez à l'étape suivante. Si l'installation n'est pas terminée correctement, l'étape suivante échouera (très probablement).
Étape 2: téléchargement et installation mod_evasive
Méthode 1: compilation
Téléchargez le module:
cd /usr/src
wget http://www.zdziarski.com/blog/wp-content/uploads/2010/02/mod_evasive_1.10.1.tar.gz
Extraire le module:
tar xzf mod_evasive*.tar.gz
Accédez au répertoire:
cd mod_evasive
Ensuite, nous utiliserons apxs2
un outil créé pour construire et installer des modules qui étendent les fonctionnalités d'Apache. Apxs2
construit un objet partagé dynamique, c'est pourquoi nous avons installé httpd-devel
à l'étape # 1.
Exécuter:
apxs2 -cia mod_evasive20.c
Méthode 2: installation à l'aide de yum
(recommandé)
Une fois le epel-release
référentiel installé, mod_evasive
est disponible via yum
.
Ajoutez le référentiel:
yum install epel-release
Installez le module en utilisant yum
:
yum install mod_evasive
Étape 3: ajout du module à Apache
Généralement, Apache charge tous les modules depuis mods-enabled
, donc chaque fois qu'un module est ajouté à ce dossier, il n'a pas besoin d'être ajouté à la configuration Apache manuellement. Ouvrez votre fichier de configuration pour vérifier si c'est le cas.
Sur CentOS, le fichier pertinent est: /etc/httpd/conf/httpd.conf
Sur Ubuntu, le fichier pertinent est: /etc/apache2/apache2.conf
Recherchez Include
. Une ligne telle que Include mods-enabled/*.conf
dit à Apache de charger tous les modules. Si ce n'est pas le cas, ajoutez cette ligne en haut du fichier et redémarrez Apache.
Pour Ubuntu, ajoutez le contenu suivant au bas du fichier:
LoadModule evasive20_module /usr/lib/httpd/modules/mod_evasive20.so
Étape 4: configuration et modification des paramètres
Ajoutez le bloc suivant au fichier de configuration. Les chemins sont les mêmes que ceux de l'étape # 3.
<IfModule mod_evasive20.c>
DOSHashTableSize 3097
DOSPageCount 2
DOSSiteCount 50
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 60
DOSEmailNotify <[email protected]>
</IfModule>
Un aperçu rapide de ces paramètres se trouve dans le README
. Vous pouvez lire le fichier README comme suit:
cat /usr/src/cd mod_evasive/README
Vous devrez probablement modifier ces paramètres de temps à autre pour vous assurer qu'ils conviennent parfaitement à votre serveur et à vos sites Web. Après tout, certains serveurs ont plus d'activité et de trafic que d'autres.
Étape 5: redémarrage du serveur Web
Redémarrez le serveur Web Apache pour que les modifications prennent effet et le module à charger:
service httpd restart
Assurez-vous que le module est chargé dans Apache:
httpd -M | grep evasive
Cela devrait revenir evasive20_module (shared)
. Sinon, le module n'a pas été correctement chargé et nous vous recommandons de revérifier les fichiers de configuration et s'ils ont été enregistrés correctement.
Notez que ce module ne remplace pas la protection DDoS car il ne peut pas fonctionner lorsque la capacité du serveur est épuisée. En fait, Vultr offre une protection DDoS qui est très utile pour une meilleure protection du serveur (ainsi que l'utilisation de ce module). Pour les menaces plus simples, en particulier les attaques basées sur des scripts, le module fait son travail et est certainement utile.
Vous avez maintenant installé le mod_evasive
module dans Apache, et ainsi rendu votre application web plus sûre.