Fail2ban est une application qui analyse les logs de divers services (SSH, Apache, FTP…) en cherchant des correspondances entre des motifs définis dans ses filtres et les entrées des logs. Lorsqu'une correspondance est trouvée une ou plusieurs actions sont exécutées. Typiquement, fail2ban cherche des tentatives répétées de connexions infructueuses dans les fichiers journaux et procède à un bannissement en ajoutant une règle au pare-feu iptables ou nftables pour bannir l'adresse IP de la source.
Configuration à appliquer dans /etc/fail2ban/jail.d/defaults-debian.conf (sur Debian, je ne peux pas confirmer sur les autres distributions)
[DEFAULT] ignoreip = 127.0.0.1 192.168.1.43 #<---Votre IP pour ne pas vous bannir findtime = 600 bantime = 86400 maxretry = 3 [sshd] mode = aggressive enabled = true port = 32022 logpath = /var/log/auth.log maxretry = 3 [apache] enabled = true port = http,https filter = apache-auth logpath = /var/log/apache2/error*.log maxretry = 3 [apache-noscript] enabled = true port = http,https filter = apache-noscript logpath = /var/log/apache2/error*.log maxretry = 3 [apache-overflows] enabled = true port = http,https filter = apache-overflows logpath = /var/log/apache2/error*.log maxretry = 2 [apache-badbots] enabled = true port = http,https filter = apache-badbots logpath = /var/log/apache2/error*.log maxretry = 2
Disponible également sur GIT –> https://forge.tedomum.net/siick/scripts_and_config/blob/master/custom.conf
Pour savoir si votre jail est actif, vous devriez le voir affiché, après avoir taper cette commande :
fail2ban-client status
. Pour savoir si une de vos jails a banni une ou plusieurs IP, taper cette commande :
fail2ban-client status [Nom du jail]
Cette commande va afficher le nombre de tentative lu dans vos logs, le nombre de bannis et, le plus intéressant, les IPs qui sont bannis temporairement.
Une de vos adresse IP se retrouve blacklistée suite à des mauvaises manips répétées ou un test de sécurité. Vous pouvez la retirer de la liste des IP blacklistées avec cette commande :
fail2ban-client set [nom du jail] unbanip [IP concerné]
Bannir manuellement une IP sur l'un de vos jails
fail2ban-client set [nom du jail] banip [IP à bannir]