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