David Mercereau : WordPress & fail2ban : stopper la brute-force “POST /wp-login.php”
lundi 9 septembre 2013 à 17:08WordPress étant très populaire il est (malheureusement) de fait très attaqué.. La principale (hors SPAM sur les commentaires) est faite par brute-force sur la page wp-login.php. Je l’avais déjà remarqué, mais j’ai récement eu des problèmes d’indisponibilités suite à plusieurs attaques venant de multiple adresse IP (l’attaque passant donc de brute-force à DDOS) J’ai donc dû réagir et pour ce faire j’ai configuré fail2ban pour bloquer les IP’s faisant plus de 6 tentatives de connexions sur tous les sites wordpress du serveur.
Configuration de fail2ban
Note : mon installation de fail2ban est existante et fonctionne déjà pour le FTP & le SSH
Éditer le fichier /etc/fail2ban/jail.conf et sous “HTTP serveurs” ajouter la configuration “apache-wp-login”
# # HTTP servers # > > [apache-wp-login] > > enabled = true > port = http,https > filter = apache-wp-login > logpath = /var/log/apache2/un.autre.blog.wordrepp/access.log > /var/log/apache2/mercereau.info/access.log > maxretry = 6
Puis créer la définition de la regex “apache-wp-login” dans le fichier /etc/fail2ban/filter.d/apache-wp-login.conf
[Definition] failregex = ^-.*POST /wp-login.php HTTP.* ignoreregex =
Pour finir : un restart du service fail2ban & vous n’avez plus qu’à tester en faisant plus de 6 tentatives de mot de passe sur la page votreblog/wp-admin/
$ service fail2ban restart $ tail -f /var/log/fail2ban.log 2013-09-05 16:33:39,559 fail2ban.actions: WARNING [apache-wp-login] Ban XX.XX.XX.XX
Pour information, le lendemain 47 IP ont été bloquées grâce à ce système…
$ grep "\\[apache-wp-login\\] Ban" /var/log/fail2ban.log | wc -l 47
Original post of David Mercereau.Votez pour ce billet sur Planet Libre.
Articles similaires
- David Mercereau : [rkhunter] Warning The file properties have changed (09/01/2013)
- David Mercereau : emailPoubelle.php – script libre d’email jetable (07/08/2012)
- David Mercereau : [Web-Dynamic-Dnsupdate] Administrer vos zones DNS sans base de données (03/08/2012)
- David Mercereau : Script de sauvegarde Mysql par base “mysql_dump.sh” (05/12/2012)
- David Mercereau : pongSmtp.pl – Tester le bon fonctionnement de votre serveur mail (28/02/2013)