Introduction Fail2ban est un utilitaire qui permet de scanner les fichiers log, de chercher suivant des expressions régulières (regexp) et de bannir via iptables les IP misent en cause.
Exemple:
Plusieurs connexion sur le port 22 (ssh). Fail2ban va chercher dans /var/log/auth.log et en tirer les IP qui ont fait N fois le mauvais mot de passe pour les bannir.
Installation Il est normalement installé de base sur votre linux. Sinon téléchargez le et installez le comme tout bon linuxien qui se respecte
Debian && Debian-based (ubuntu) -> apt-get install fail2ban
Générique -> wget http://sourceforge.net/projects/fail2ban/files/fail2ban-stable/fail2ban-0.8.4/fail2ban-0.8.4.tar.bz2/download && tar xjvf fail2ban-0.8.4.bz2
cd fail2ban-0.8.4/ && ./configure && make && make install
Configuration Le fichier de configuration principal de Fail2ban est
/etc/fail2ban/jail.conf On prendra pour exemple une attaque de type "Dfind w00tw00t" qui scan votre /var/www/ à la recherche de dossier vulnérables.
Nous allons donc éditer
/etc/fail2ban/jail.conf et rajouter les lignes suivantes:
[apache-w00tw00t]
enabled = true
filter = apache-w00tw00t
action = iptables[name=Apache-w00tw00t,port=80,protocol=tcp]
logpath = /var/log/apache2/access*.log
maxretry = 1
Détails des lignes:
-1ere ligne est un nom d'aliase qui sera rappelé lors de la configuration même du service.
-2eme ligne permet d'activer le filtre.
-3eme ligne filtre de fail2ban
-4eme ligne action, permet de spécifier à fail2ban ou regarder. Ici le port 80 avec le protocole TCP
-5eme ligne Logpath, celle-ci spécifie le chemin de vos logs, attention dans certains cas, avec vos vhost apache les fichiers logs peuvent être situé dans /home/<login>/logs/access.log
-6eme ligne Maxretry, spécifie le nombre de requête que pourra exécuter l'ip, ici on ne spécifie qu'un seul essai car l'host en w00t sera forcément un Dfind.
Nous passons maintenant à la configuration du fichier de filtre de apache-w00tw00t:
/etc/fail2ban/filter.d/apache-w00tw00t.conffailregex = ^<HOST> -.*"GET \/w00tw00t\.at\.ISC\.SANS\.DFind\:\).*".*
ignoreregex =
Vous remarquerez dans le fichier filter.d qu'il y a plusieurs filtres pouvant être activés en éditant le fichier
/etc/fail2ban/jail.conf comme vu précédemment.
Vous pouvez maintenant tester si la regexp de fail2ban détecte comme il faut les Dfind
fail2ban-regex /var/log/apache2/access.log /etc/fail2ban/filter.d/apache-w00tw00t.conf
Voila votre serveur apache est désormais protégé des bot type "Dfind". Si vous souhaitez voir la liste des IP bloquées tapez
iptables -LEnjoy