Bannir les bots phpMyAdmin et w00tw00t avec Fail2ban

Bannir-les-bots-phpMyAdmin-et-w00tw00t-avec-Fail2ban

Très régulièrement dans mes rapports de Logwatch je me retrouve avec des dizaines d’erreurs 404 générés par des bots qui essaient de trouver une version de phpMyAdmin, ou tout simplement une faille sur le serveur web.

Voici un exemple de rapport quotidien:

Comme vous pouvez le voir, un bon nombre de version de phpMyAdmin sont testées. Afin d’alléger mes rapports Logwatch et de bloquer un peu plus ces bots, j’ai mis en place deux nouveaux filtres sur mon Fail2ban.

Si vous ne connaissez pas Fail2ban, je vous invite à le découvrir tout de suite. Un petit outil génial qui permet de bannir (crée une règle iptables) un attaquant lorsqu’il répond à une certaine règle (par exemple quand une personne essaie de se connecter plusieurs fois à votre serveur SSH).

Filtre phpMyAdmin

Création du nouveau filtre /etc/fail2ban/filter.d/apache-phpmyadmin.conf:

Activer la règle dans /etc/fail2ban/filter.d/apache-phpmyadmin.conf

/etc/fail2ban/jail.conf

Si vous avez une version de phpMyAdmin d’installée sur votre serveur, changer la valeur de « maxretry » pour éviter de vous auto-bannir en cas d’erreur d’url.

Filtre w00tw00t

Pareil que pour phpMyAdmin, on crée notre filtre /etc/fail2ban/filter.d/apache-w00tw00t.conf:

On active maintenant notre nouveau filtre anti-w00tw00t dans /etc/fail2ban/filter.d/apache-phpmyadmin.conf

Un petit restart de fail2ban et c’est parti, on est plus (moins) embêté par ces bots.

Tester les filtres

Si vous voulez tester vos nouveaux filtres avant de les mettre en service, vous pouvez utiliser une commande fournit par fail2ban qui est fail2ban-regex:

 

Source: Banning phpMyAdmin bots using fail2ban

5 thoughts on “Bannir les bots phpMyAdmin et w00tw00t avec Fail2ban

  1. Merci pour ce récap, ça marche très bien.

    Toutefois pour tester la regex, y aurait pas une inversion dans la commande ?

    #> fail2ban-regex /var/log/apache2/error.log /etc/fail2ban/filter.d/apache-w00tw00t.conf

    ++

  2. Pratique ces astuces, sa fonctionne enfin mais que faut-il ajouter dans « jail.conf » pour augmenter le temps de bannissement de ces deux règles ?

    Par défaut il semble être de 10 minutes seulement

    2014-07-02 18:43:51,649 fail2ban.actions: WARNING [apache-w00tw00t] Ban 5.135.—–
    2014-07-02 18:53:52,347 fail2ban.actions: WARNING [apache-w00tw00t] Unban 5.135.——

  3. Filtre super pratique, on peut rajouter facilement des dossiers type /cgi-sys/ ou encore /HNAP1/ desquels certains bots essayent toujours : 404… mais ça libère les logs.

    Par contre comment peut-on utliser « docroot = /var/www » pour plusieurs vhosts, donc plusieurs dossiers racines ? Je dois faire un filtre par site ?

  4. Merci pour les astuces

    2 petites erreurs dans le chemin des fichiers pour activer les règles :
    1/ « Activer la règle dans /etc/fail2ban/filter.d/apache-phpmyadmin.conf »
    => La règle doit s’activer dans /etc/fail2ban/jail.conf, ou mieux, dans /etc/fail2ban/jail.local

    2/ « On active maintenant notre nouveau filtre anti-w00tw00t dans /etc/fail2ban/filter.d/apache-phpmyadmin.conf »
    => Idem, la règle doit s’activer dans /etc/fail2ban/jail.conf, ou mieux, dans /etc/fail2ban/jail.local

    Aussi, pour précision, la syntaxe utilisée dans cet article est la syntaxe de Fail2Ban sur Debian.
    La syntaxe sur RedHat / CentOs est légèrement différente.

Laisser un commentaire