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 :

Laisser un commentaire

Votre adresse de messagerie 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.