Optimiser l'utilisation de Fail2Ban : Guide de Sécurité Basé sur des Cas Pratiques
1. Introduction
Lorsque vous gérez un serveur Linux, vous êtes susceptible de constater de nombreuses tentatives de connexion simplement en laissant le port SSH ouvert. L'outil que beaucoup utilisent pour y remédier est Fail2Ban. Cependant, se contenter de l'installer et de le configurer ne suffit pas. À long terme, les listes de bannissement peuvent s'accumuler par centaines ou milliers, ce qui peut nuire aux performances du serveur.
Dans cet article, je partage des méthodes pour utiliser Fail2Ban de manière plus efficace et efficiente en m'appuyant sur mon expérience réelle de gestion de serveurs.
Pour ceux qui souhaitent en savoir plus sur l'installation et la configuration de base de Fail2Ban, n'hésitez pas à consulter l'article précédent ! Le Gardien de votre Serveur Linux, Fail2Ban
2. Expérience Pratique : 1 113 IP Bannis en 3 Semaines
Après avoir configuré fail2ban
sur un serveur Linux test pendant environ 3 semaines, un jour, j'ai exécuté la commande suivante :
sudo fail2ban-client status sshd
Le résultat était le suivant :
Currently failed: 1
Total failed: 5330
Currently banned: 1110
Total banned: 1113
En 3 semaines, 1 113 IP avaient été bannies, et 1 110 d'entre elles étaient toujours en état de bannissement. C'était configuré pour être bloqué de manière permanente grâce à bantime = -1
.
Au début, j'avais l'état d'esprit de "pas de pardon pour quiconque a tenté au moins une fois !", mais lorsque des milliers d'IP sont devenues bloquées dans
iptables
, j'ai commencé à m'inquiéter pour la consommation des ressources système et l'efficacité de la gestion.
Finalement, j'ai dû réfléchir à une méthode durable et stratégique pour utiliser Fail2Ban.
3. Stratégies d'Amélioration de la Configuration de Fail2Ban
✅ Ajuster la durée de bannissement de manière dynamique
- Il est plus réaliste d'utiliser un bannissement basé sur le temps plutôt que de bloquer indéfiniment.
- Exemple :
-
bantime = 86400 # bannissement d'une journée findtime = 600 # dans les 10 minutes maxretry = 3 # après 3 échecs
✅ Utiliser la prison des récidivistes
🔎 Qu'est-ce que la prison des récidivistes ?
C'est une fonctionnalité avancée qui surveille le fichier
fail2ban.log
géré parfail2ban
, et si une IP est bloquée à plusieurs reprises dans différentes prisons, elle sera bannie sur le long terme. En d'autres termes, c'est un système de surveillance des récidives qui inflige des sanctions plus sévères aux "récidivistes".Habituellement, les prisons individuelles comme
sshd
,nginx
,ftp
ne bloquent que pour de courtes périodes, mais la prisonrecidive
identifie uniquement les IP avec des antécédents criminels cumulés pour les bloquer plus longtemps.
- Appliquer un blocage à long terme uniquement pour les IP réapparaissant fréquemment
- Les attaquants ordinaires disparaissent en un jour, mais ceux qui tentent à nouveau peuvent être filtrés
- Exemple de configuration :
-
[recidive] enabled = true logpath = /var/log/fail2ban.log bantime = 604800 # une semaine findtime = 86400 maxretry = 5
✅ Automatiser la gestion des logs
- Configurer logrotate pour nettoyer automatiquement
/var/log/fail2ban.log
avant qu'il ne devienne trop volumineux - Utiliser cron ou un timer systemd pour résumer et envoyer par mail les résultats de
fail2ban-client status
4. Exemple de Script Utilitaire
#!/bin/bash
fail2ban-client status sshd > /tmp/sshd-status.log
echo "Nombre de Blocs Actuels : $(grep 'Currently banned' /tmp/sshd-status.log)" | mail -s "État de Fail2Ban SSHD" your@email.com
5. Conclusion : Fail2Ban est un Outil, pas une Arme
Fail2Ban est un outil très utile pour empêcher les attaques aléatoires, mais un usage excessif peut devenir une source de surcharge serveur au lieu d'atteindre son but de blocage.
En combinant des politiques de blocage réalistes et des outils de gestion automatisés, Fail2Ban devient un partenaire de sécurité fiable plutôt qu'un casse-tête.
Aperçu de l'Article Suivant
Je prévois d'aborder la configuration de logrotate pour éviter que le fichier de log de Fail2Ban,
/var/log/fail2ban.log
, ne devienne trop volumineux. Si cela vous intéresse, n'hésitez pas à vous abonner !
Aucun commentaire.