Fail2ban

Documentation Ubuntu

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