Bannir les récidivistes

Fail2ban est un super outil pour bannir certaines adresses IP ayant un comportement de spamming ou de détection de failles de sécurité. Ce bannissement à une durée, fixée dans les paramètres de fail2ban, mais on constate parfois que dès que le bannissement est terminé, l'adresse IP reprend son action malveillante.

La solution que j'ai mis en place et qui fonctionne relativement bien est basé sur le fait que fail2ban possède son propre fichier de log. Il suffit donc de créer une règle de détection avec des paramètres de bannissement très sévères si l'adresse IP se fait bannir régulièrement sur une période donnée.

On commence par créer le filtre qu'on placera dans le répertoire dédié au filtre : /etc/fail2ban/filter.d , pour cela on utilise la console en ligne de commande.

echo "[Definition]
failregex = fail2ban.actions: WARNING \[(.*)\] Ban <HOST>
ignoreregex = fail2ban.actions: WARNING \[fail2ban-recidiviste\] Ban <HOST> ">/etc/fail2ban/filter.d/recidiviste.conf

Ensuite, on indique à fail2ban d'utiliser la règle que nous venons de définir ci-dessus, pour cela on utilise toujours la console en ligne de commande.

echo "
[recidiviste]
enabled  = true
filter   = recidiviste
action   = iptables-allports[name=recidiviste]
logpath  = /var/log/fail2ban.log
maxretry = 3
# 1 semaine
findtime = 604800
# 30 jours
bantime  = 2592000
">>/etc/fail2ban/jail.local

Cette règle est activée et paramétrée dans le fichier jail.local, cela évitera l'effacement de ce paramètre lors d'une mise à jour future.

Ici, si sur une semaine, une IP est bannie plus de 3 fois, elle sera banni pour 30 jours. A vous ensuite d'ajuster les paramètres selon vos besoins.

Il suffit de redémarrer fail2ban avec la ligne de commande suivante :

service fail2ban restart

et on vérifie si il n'y a pas de messages d'erreur dans les logs de fail2ban avec la commande suivante

tail -n 200 /var/log/fail2ban.log
  • serveur-debian-securite/utilisation-fail2ban/bannir-recidiviste.txt
  • Dernière modification : 08/10/2019 17:02
  • de 127.0.0.1