fail2ban est un application qui permet de protéger le serveur contre les intrusions.
fail2ban lit les logs de divers serveurs (SSH, Apache, FTP…) à la recherche d'erreurs d'authentification répétées et ajoute une règle iptables pour bannir l'adresse IP de la source.
Pour l'installer :
$ sudo apt-get install fail2ban
Configuration :
Pour spécifier à fail2ban quels services il doit surveiller, éditez le fichier /etc/fail2ban/jail.conf
# Exemple de configuration
ignoreip = 127.0.0.1 192.168.1.20 192.168.1.21 # liste des adresses ip à ignorer
bantime = 86400 # temps en secondes
maxretry = 3 # nombre de tentative échouées
destemail = toto@serveur
Pour activer un service mettre à true la valeur enabled
Pour rajouter un service, par exemple pour webmin :
[webmin-auth]
enabled = true
port = https
filter = webmin-auth
logpath = /var/log/auth.log
maxretry = 3
Pour rajouter la règle anti-w00tw00t :
[apache-w00tw00t]
enabled = true
filter = apache-w00tw00t
action = iptables[name=Apache-w00tw00t,port=80,protocol=tcp]
logpath = /var/log/apache2/*access.log
maxretry = 1
Créer ensuite le fichier /etc/fail2ban/filter.d/apache-w00tw00t.conf et y ajouter :
[Definition]
failregex = ^<HOST> -.*"GET \/w00tw00t\.at\.ISC\.SANS\.DFind\:\).*".*
ignoreregex =
A chaque service est associé un fichier de configuration dans le dossier /etc/fail2ban/filter.d
Pour tester un filtre :
Par exemple le filtre anti-w00tw00t
$ fail2ban-regex /var/log/apache2/access.log /etc/fail2ban/filter.d/apache-w00tw00t.conf
Pour relancer la configuration :
$ sudo fail2ban-client reload
Pour vérifier si les prisons sont correctement lançées :
$ sudo fail2ban-client status
Pour voir la liste des adresses IP bloquées par fail2ban :
$ sudo iptables -L
ou pour un jail en particulier (postfix par exemple):
$ sudo iptables -L fail2ban-postfix
avec les lignes numérotées :
$ sudo iptables -L fail2ban-postfix --line-numbers
Pour supprimer une adresses IP de la liste des adresses bloquées par fail2ban
Par exemple, pour supprimer l'adresse IP 192.168.1.2 bloquée par le service fail2ban-ssh
$ sudo iptables -D fail2ban-ssh -s 192.168.1.2 -j DROP
ou avec son numéro obtenu grâce à la commande iptables -L --line-numbers
$ sudo iptables -D fail2ban-ssh 5
Pour ajouter une adresse IP à la liste des adresses bloquées (pour le jail postfix par exemple)
$ iptables -I fail2ban-postfix 1 -s 1.163.149.165 -j DROP
ou une plage d'adresses
$ iptables -I fail2ban-postfix 1 -s 118.160.0.0/16 -j DROP