Parce que j’en avais marre de tous ces scanners DFind et autres sur mes serveurs home et OVH, j’ai ajouté deux regexp que je vous partage ici pour bloquer après la première requête les accès aux URI :
/w00tw00t.at.ISC.SANS.DFind
/phpMyAdmin
Pour cela, il faut créer deux nouveaux fichiers dans la configuration fail2ban :
[user@srv:~]$ cat /etc/fail2ban/filter.d/apache-w00tw00t.conf [Definition] failregex = ^<HOST> -.*"GET /w00tw00t.at.ISC.SANS.DFind:).*".* ignoreregex = [user@srv:~]$ cat /etc/fail2ban/filter.d/apache-pma.conf [Definition] failregex = ^<HOST>.*GET.*(?i)phpmyadmin.* ^<HOST>.*GET.*(?i)pma.* ^<HOST>.*GET.*(?i)mysql.* ^<HOST>.*GET.*(?i)setup.* ignoreregex =
Une fois ces 2 fichiers créés, il faut éditer le fichier /etc/fail2ban/jail.conf et y ajouter, à votre convenance, les références aux filtres nouvellement créés :
[apache-w00tw00t] enabled = true filter = apache-w00tw00t action = iptables[name=Apache-w00tw00t,port=80,protocol=tcp] sendmail-whois[name=Apache-w00tw00t, dest=user@mail.com, sender=srv@mail.com] logpath = /var/log/apache2/*_access.log maxretry = 1 [apache-pma] enabled = true filter = apache-pma action = iptables[name=Apache-pma,port=80,protocol=tcp] sendmail-whois[name=Apache-pma, dest=user@mail.com, sender=srv@mail.com] logpath = /var/log/apache2/*_access.log maxretry = 1
Dès qu’une requête contenant dans l’URI les regexp renseignées dans les filtres plus haut, l’IP sera bannie et un mail sera envoyé à user@mail.com.
Vous pouvez monitorer les hosts blacklistés par munin ou par la commande iptables :
[user@srv:~]$ sudo iptables -L fail2ban-Apache-pma --line-num Chain fail2ban-Apache-pma (1 references) num target prot opt source destination 1 RETURN all -- anywhere anywhere
Bye bye les scripts kiddies 😉