User Tools

Site Tools


informatique:logiciels:fail2ban

This is an old revision of the document!


fail2ban

fail2ban est un script qui permet de bloquer les IPs (avec iptables) des machines distantes qui dépassent un certains seuil de logins manqués, pour un certain temps. Pour cela, il consulte les log des différents logiciels : serveur SSH, serveur web apache, serveur de mail, serveur FTP, …

Son comportement diffère de celui du fichier /etc/hosts.deny (qui, pour mémoire, blackliste directement toute connexion issue des IPs renseignées dans ce fichier) : fail2ban, lui, puni les abus, et temporairement.

Installation :

aptitude install fail2ban

Sous Debian Lenny, les fichiers de configuration sont situés dans /etc/fail2ban :

  • fail2ban.conf qui est la configuration du démon fail2ban
  • jail.conf est la configuration par défaut. Il contient une section “[DEFAULT]” qui contient la configuration globale :
[DEFAULT]
# liste d'IPs qui ne seront jamais blacklistées
ignoreip = 127.0.0.1 192.168.0.0/24
# temps de blocage
bantime  = 600
# apres 5 tentatives de login infructueuses
maxretry = 5
# destinataire des mails de rapports
destemail = root@localhost
mta = sendmail

…ainsi qu'une section par service ([ssh], [apache], etc…) qui peut surchargé les paramètres globaux :

[ssh]
enabled = true
port    = ssh
# nom du filtre qui est déclaré dans le dossier 
filter  = sshd
# il est possible de définir soit même des filtres sous forme d'expressions régulières
failregex = courierpop3login: LOGIN FAILED.*ip=\[.*:<HOST>\]
# chemin vers le fichier de log du démon sshd
logpath  = /var/log/auth.log
# surcharge du paramètre maxretry
maxretry = 6
  • filter.d/* est le dossier qui contient la définition des expressions régulières permettant de détecter les erreurs d'identification dans les logs
  • action.d/ est le fichier de description des actions entreprises lorsqu'un seuil de connexion est dépassé.

Après modification d'un fichier de conf, penser à recharger la conf ou le service complet :

/etc/init.d/fail2ban reload
# ou
/etc/init.d/fail2ban restart

Les alertes de fail2ban sont recueillies dans le fichier de log /var/log/fail2ban.log par défaut ; lorsqu'il bloque une machine on obtient :

grep WARNING /var/log/fail2ban.log
 18:2010-07-08 14:36:54,228 fail2ban.actions: WARNING [ssh] Ban 192.168.0.22
 20:2010-07-08 14:46:39,376 fail2ban.actions: WARNING [ssh] Unban 192.168.0.22
informatique/logiciels/fail2ban.1278601766.txt.gz · Last modified: 2013/10/14 20:55 (external edit)