Fail2ban pour wordpress pour se protéger des bruteforce

Fail2ban

Salut à tous, aujourd’hui on va voir comment mettre en place Fail2ban pour WordPress.

En fait, je gratte mes logs dans Splunk de Nginx depuis quelque temps et je me suis rendu compte que mon site se faisait bruteforcer dans les règles depuis un bon mois par quelques IP… Du coup, d’une part, j’ai désactivé ou blindé quelques services du site dont je ne me servais pas (xmlrpc, API REST), ce qui a bien limité les tentatives. Mais ça ne protège pas des attaques classique contre la page « wp-login.php« . Du coup, j’ai regardé comment on pouvait sécuriser ça (dans la doc de WordPress). Et j’ai retenu la solution avec fail2ban dont je vous avait déjà parlé précédemment, d’ailleurs. Je vous montre donc ci-dessous comment on peut activer Fail2ban pour WordPress.

Générer des logs d’authentification pour WordPress

Alors il existe différente options pour journaliser wordpress, la plus simple dans notre cas reste encore d’installer le plugin ci-dessous qui fait le boulot parfaitement et vous fourni en prime les fichiers de conf à placer dans filter.d pour fail2ban.

WP fail2ban

Configurer Fail2ban pour WP Fail2ban

Comme prévu il vous faudra ensuite déployer les fichiers wordpress-hard.conf et wordpress-soft.conf (et notez que vous pouvez parcourir le code source du plugin ici) dans vote conf fail2ban :

cp /<path>/<to>/<your>/<wordpress>/<site>/wp-content/plugins/wp-fail2ban/filters.d/* /etc/fail2ban/filter.d/

Configurez ensuite un fichier jail associé à ces filtres :

echo "[wordpress-hard]
enabled = true
filter = wordpress-hard
logpath = /var/log/auth.log
maxretry = 1
port = http,https

[wordpress-soft]
enabled = true
filter = wordpress-soft
logpath = /var/log/auth.log
maxretry = 3
port = http,https" > /etc/fail2ban/jail.d/wordpress.conf

Vérifier le bon fonctionnement de Fail2ban pour WordPress

Attendez quelques heures/minutes/secondes (selon la popularité de votre site) et vérifier que vous avez bien des logs pour wordpress qui arrivent :

grep wordpress /var/log/auth.log

Vous devez ensuite redémarrer fail2ban.

service fail2ban restart

Et vérifier enfin que fail2ban fait correctement son boulot :

grep wordpress /var/log/fail2ban.log

And Voilà !

Conclusion

Un article « bref » du coup : ça faisait longtemps ! Fail2ban qui reste un incontournable de la sécurité de vos serveurs que ce soit pour le SSH, FTP ou le serveur WEB par exemple. J’espère que ça vous aura aidé et je vous dit à bientôt !

Sources :

2 commentaires on “Fail2ban pour wordpress pour se protéger des bruteforce

  1. Merci !
    je cherchais des infos pour faire la même chose, et je découvre cet article et ce plugin !
    Petite idée ne serait-il pas mieux de faire des liens vers les fichiers jail? ainsi pas besoin de s’en soucier lors des màj du plugin…

    • Avec plaisir, et oui des liens symboliquesà la place de la copie semblent être une bonne idée.
      Donc un :
      ls -s //////wp-content/plugins/wp-fail2ban/filters.d/* /etc/fail2ban/filter.d/
      Remplace élégamment mon le cp.
      Idée à la con, d’un point de vu sécu avec un ln, un attaquant qui pète ton site et obtiendrai les droits sur les fichiers du site, pourrait alors modifier ces règles fail2ban voir peu être en écraser d’autres par sur-spécification dans ces fichiers. Je suis pas certains de jusqu’où on peut aller mais ça pourrait valoir le coup de vérifier avant de faire un lien.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.