Fail2ban : bloquer des IP sur certaines URL
Régulièrement, sur mon serveur apache, je recupère des requêtes sur des urls qui n'existent pas et qui sont visiblement destinées à chercher à brute-forcer une authentification.
Puisque fail2ban est installé sur la machine, on peut l'utiliser afin de bannir les IP de ces bots.
On commence par définir un nouveau filtre dans le fichier /etc/fail2ban/filter.d/apache-customurl.conf :
[Definition]
url = myadmin\\/scripts\\/setup.php|phpMyAdmin\\/scripts\\/setup.php|pma\\/scripts\\/setup.php|wordpress\\/wp-admin\\/|wp-admin\\/|wp-login.php|blog\\/wp-login.php|administrator\\/index.php
failregex = ^<HOST>.*"(GET|POST).\\/(%(url)s).*$
ignoreregex =
Ce filtre est activé dans le fichier de configuration de fail2ban /etc/fail2ban/jail.conf :
[apache-customurl]
enabled = true
port = http,https
filter = apache-customurl
logpath = /var/log/apache*/*access.log
maxretry = 1
bantime = 36000
On peut tester que la regexp est correcte avec la commande :
fail2ban-regex /var/log/apache2/www-access.log /etc/fail2ban/filter.d/apache-customurl.conf
Enfin, on relance le service
# debian
service fail2ban reload