Accueil Technologies Fail2ban – utiliser la blacklist contenant les spammers pour les bloquer
Fail2ban - Utiliser la blacklist contenant les spammers pour les bloquer

Fail2ban – utiliser la blacklist contenant les spammers pour les bloquer

par Jérémy PASTOURET

Posséder un VPS (Serveur Virtuel Privé) ou un serveur privé implique de mettre en place des systèmes de sécurité. Depuis toujours, il existe en effet des attaquants de toutes sortes. Des hackers débutants (testant tout et n’importe quoi), et des hackers plus expérimentés (ciblant des éléments stratégiques)/ Mais aussi des robots (testant toujours les mêmes failles). Pour parer à tous ces problèmes d’accès aux serveurs, il existe la solution Fail2Ban. Un article consacré à la sécurisation de WordPress a déjà été publié sur notre blog. Ainsi, ce nouveau tutoriel cible plus particulièrement les spammers.

Qui sont les spammers ?

La plupart du temps, les spammers sont des programmes (robots) installés sur différents serveurs. Ceux-ci passent leurs journées à parcourir les pages des sites web. Leur objectif ? Faire dysfonctionner des sites web en envoyant un trop grand nombre de requêtes à la secondes. Certains sont hyper malins : en effet, ils ciblent certaines pages connues, réputées pour ralentir un serveur.

Comment stopper les spammers ?

Heureusement, il existe sur le marché tout un tas de listes qui référencent des noms de domaines connus comme spammers / attaquants. Parmi les solutions open source, il existe ainsi une liste fréquemment mise à jour, gérée par Matomo. Pour rappel, Matomo est à l’origine un outil permettant de compter le nombre de visiteurs sur un site web. Ainsi, pour éviter de compter des robots, ce service a créé une liste qui référence la provenance de faux utilisateurs. D’ailleurs cette liste est disponible sur GitHub. Personnellement, je remercie énormément Matomo de l’avoir fait. Pour stopper ces petits malins, il faut donc indiquer à Fail2ban quelles sont les adresses IP / noms de domaine à bannir.

Comment faire indiquer la liste des spammers à Fail2ban ?

Un développeur sur GitHub, nommé desbma, a réalisé un fork (clone d’un projet, toujours lié au projet mère) du projet de Matomo. Il y a rajouté un script permettant de récupérer chaque semaine la dernière version du fichier texte contenant les noms des serveurs à bannir de Matomo. Ensuite, il a transformé le fichier récupéré en fichier de configuration compréhensible par Fail2ban. Puis il a redémarré Fail2ban. Le seul défaut que j’ai trouvé, c’est que le script ne fonctionne pas avec fail2ban-client. Il faut donc redémarrer le service par soi-même.

Mise en place du système de bannissement des spammers

Téléchargement et installation du script

La première étape consiste à télécharger le script, puis à mettre les droits d’exécution sur le script qui est à la base de tout. Le script ainsi téléchargé est placé dans le répertoire cron.weekly. Ce répertoire contient tout les scripts exécutés une fois par semaine par le système d’exploitation. Pour effectuer ces opérations, exécutez les commandes suivantes :

curl https://raw.githubusercontent.com/desbma/referer-spam-domains-blacklist/master/update-fail2ban-referer-filter > /etc/cron.weekly/update-fail2ban-referer-filter
chmod +x /etc/cron.weekly/update-fail2ban-referer-filter
Fail2ban - récupération du script d'apache-referer

Ajout de la nouvelle prison dans fail2ban

Exécutez à présent la ligne de commande suivante :

nano /etc/fail2ban/jail.d/defaults-debian.conf

Puis ajoutez le code suivant :

[apache-referer]
enabled = true
maxretry = 1
# 90 days
bantime = 7776000
port = http,https
filter = apache-referer
logpath = %(apache_access_log)s

Enfin, enregistrez le fichier en effectuant CTRL + X et CTRL + Y. Vous obtiendrez ce résultat :

Fail2ban - Ajout de la prison Apache Referer

Génération de la prison contenant les serveurs de spammers

Maintenant, lancez la commande suivante :

/etc/cron.weekly/update-fail2ban-referer-filter

Vous obtiendrez alors le résultat suivant :

Fail2ban - Génération de la liste des spammers

Le programme retourne le nombre de noms de domaine ajoutés pour être bannis. Soit (au moment où j’écris ces lignes) 1982 serveurs. Si l’erreur fail2ban: unrecogniezd service apparaît, exécutez la commande ci-dessous pour redémarrer le service Fail2ban.

fail2ban-client restart

Vérification de l’installation

Pour vérifier le bon ajout de la prison dans fail2ban, exécutez la commande suivante :

fail2ban-client status

Fail2ban doit vous afficher Jail list : apache-referer. A présent, exécutez la commande ci-dessous pour voir si Fail2ban a récupéré des spammers dans son filet.

fail2ban-client status apache-referer

Pour ma part j’en ai eu 1 directement ; aujourd’hui j’en ai davantage. Si vous avez correctement effectué les commandes décrites dans l’article, vous obtiendrez ce résultat :

Fail2ban - vérification du fonctionnement d'apache-referer

Bonus

Si vous êtes curieux, vous pouvez toujours jeter un œil à la prison générée par le programme en tapant la commande :

cat /etc/fail2ban/filter.d/apache-referer.local

Si vous aimez les expressions régulières, vous allez être servi :

Fail2ban - affichage de la regex de apache-referer

J’espère que ce nouvel article permettra de rendre le monde de l’internet plus sécurisé. Si vous trouvez de nouveaux types d’attaquants, ou si vous rencontrez des problèmes, les commentaires sont fait pour cela.

Vous pourriez aussi aimer

Laisser un commentaire

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