Comment installer et configurer Fail2Ban sur Linux
9 min de lecture - 14 mai 2026

Guide étape par étape pour installer, configurer et tester Fail2Ban sur des serveurs Linux basés sur Ubuntu, Debian et RHEL.
Comment installer et configurer Fail2Ban sur Linux
Fail2Ban surveille les journaux de votre serveur à la recherche d'activités suspectes et bannit automatiquement les IP en infraction en mettant à jour les règles de votre pare-feu. Il arrête les attaques par force brute, réduit le bruit des journaux et fonctionne silencieusement en arrière-plan une fois configuré. Ce guide couvre l'installation sur Ubuntu/Debian, la configuration de base, la configuration de la prison, et quelques options avancées qui méritent d'être connues.
Conditions préalables
Fail2Ban fonctionne sur la plupart des distributions Linux : Ubuntu, Debian, AlmaLinux, CentOS, RHEL, Rocky Linux et Fedora. Vous aurez besoin de
- Python 3 installé sur le système
- Un accès root ou sudo pour l'installation des paquets et les modifications du pare-feu
- Un pare-feu actif (iptables, nftables, ufw, ou firewalld)
- Des fichiers journaux qui enregistrent les échecs des tentatives de connexion
(/var/log/auth.logsur les systèmes basés sur Debian,/var/log/securesur les systèmes basés sur RHEL)
Sur les systèmes basés sur RHEL, activez d'abord le référentiel EPEL. Avant d'installer Fail2Ban, vérifiez que votre pare-feu fonctionne avec ufw status ou systemctl status firewalld.
Installation de Fail2Ban sur Ubuntu/Debian
Mettez à jour vos paquets et installez Fail2Ban :
sudo apt update && sudo apt upgrade -y
sudo apt install fail2banActivez le service pour qu'il démarre au démarrage, puis démarrez-le :
sudo systemctl enable fail2ban
sudo systemctl start fail2banCopiez la configuration par défaut dans un fichier local. Editez toujours jail.local, et non jail.conf, afin que les mises à jour des paquets n'écrasent pas vos paramètres :
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.localVérifiez que tout fonctionne :
sudo systemctl status fail2ban
sudo fail2ban-client statusLa première commande devrait afficher "Active : active (running)". La seconde liste les prisons actives. Confirmez que Fail2Ban est activé au démarrage avec sudo systemctl is-enabled fail2ban.
Configuration des prisons
Paramètres par défaut
Ouvrez le fichier /etc/fail2ban/jail.local et modifiez la section [DEFAULT]. Ces paramètres s'appliquent à toutes les prisons, à moins qu'ils ne soient remplacés par d'autres :
| Paramètre | Valeur recommandée | Ce qu'il fait |
|---|---|---|
bantime | 3600 | Bloque une IP pendant 1 heure |
temps de recherche | 600 | Compte les échecs dans une fenêtre de 10 minutes |
maxretry | 3 à 5 | Nombre d'échecs avant le déclenchement d'une interdiction |
ignoreip | 127.0.0.1/8 ::1 | IPs qui ne sont jamais bannies |
Ajoutez votre propre IP de gestion à ignoreip afin de ne pas vous bloquer vous-même. Exemple : ignoreip = 127.0.0.1/8 ::1 203.0.113.50.
Protection SSH
Activez la prison SSH dans jail.local :
[sshd]
enabled = trueVérifiez que logpath pointe vers le bon fichier de log de votre distro. Si vous avez déplacé SSH vers un port non standard (par exemple, 2222), mettez à jour le paramètre port pour qu'il corresponde.
Protection du serveur web
Activez la prison correspondant à votre serveur web :
- Nginx:
[nginx-http-auth]pour les échecs d'authentification,[nginx-botsearch]pour les robots malveillants - Apache:
[apache-auth]pour l'authentification,[apache-badbots]pour les bots
Emprisonnement récidiviste
La prison [recidive] attrape les IP qui continuent à être bannies à travers d'autres prisons et applique une pénalité plus longue, typiquement une semaine (604 800 secondes). Elle est utile pour les attaquants persistants qui changent d'approche.
Après avoir effectué des modifications, rechargez le site :
sudo systemctl restart fail2ban
sudo fail2ban-client statusTests et surveillance
Test des interdictions
Avant d'utiliser Fail2Ban en production, testez-le. À partir d'une machine distante (pas votre IP d'administration), essayez de vous connecter en SSH jusqu'à ce que vous dépassiez le nombre maximal de tentatives. Vous devriez être bloqué. Confirmez avec :
sudo fail2ban-client status sshdObservez les interdictions en temps réel :
tail -f /var/log/fail2ban.logSi vous bloquez accidentellement une adresse IP légitime, débloquez-la :
sudo fail2ban-client set sshd unbanip 203.0.113.50Surveillance au jour le jour
Examinez l'historique des bannissements en consultant le journal :
grep "Ban\|Unban" /var/log/fail2ban.logCommandes de gestion utiles :
| Commande | Objectif |
|---|---|
fail2ban-client status | Liste de tous les centres de détention actifs |
fail2ban-client banned | Affiche toutes les IP actuellement bannies |
fail2ban-client set <jail> unbanip <IP> | Débanquer une IP spécifique |
fail2ban-client unban --all | Effacer tous les bannissements |
fail2ban-client set <jail> banip <IP> | Bannir manuellement une IP |
Les bannissements persistent à travers les redémarrages. Fail2Ban les stocke dans une base de données SQLite dans /var/lib/fail2ban/fail2ban.sqlite3.
Configuration avancée
Passer à nftables
nftables est le remplaçant moderne d'iptables. Il gère IPv4 et IPv6 dans un cadre unique, s'adapte mieux aux grandes listes d'interdictions et possède une limitation de débit intégrée. Si vous êtes sur Ubuntu 22.04+, Debian 11+, ou toute autre distribution récente, c'est le meilleur choix.
Définissez-le dans jail.local :
[DEFAULT]
banaction = nftables-multiportRedémarrez Fail2Ban, puis vérifiez avec sudo nft list ruleset. Vous devriez voir f2b-table et f2b-chain dans la sortie. N'utilisez iptables que si vous êtes sur un ancien système ou si vous avez des exigences de compatibilité.
Notifications par courriel
Par défaut, Fail2Ban bannit silencieusement. Pour recevoir des alertes par courriel, ajoutez ce qui suit à la section [DEFAULT] de jail.local:
[DEFAULT]
destemail = [email protected]
sender = [email protected]
mta = sendmail
action = %(action_mwl)sL'action action_mwl envoie un email avec les détails du bannissement, les données WHOIS, et les lignes de log qui ont déclenché le bannissement. Utilisez action_mw si vous ne voulez que les données WHOIS. Vous aurez besoin d'un agent de transfert de courrier comme sendmail installé, ou d'un relais SMTP configuré avec quelque chose comme msmtp.
Pour les alertes Slack ou Discord, créez un script qui envoie un webhook et connectez-le à un fichier d'action personnalisé dans /etc/fail2ban/action.d/.
Si vous êtes à la recherche d'un serveur avec un accès root complet et une bande passante non mesurée pour exécuter Fail2Ban, consultez les serveurs dédiés de FDC.

Fatigué des déploiements lents ou des limites de bande passante ? FDC Servers offre une puissance dédiée instantanée, une portée mondiale et des plans flexibles conçus pour n'importe quelle échelle. Prêt pour une mise à niveau ?
Débloquer la performance maintenant
Liste de contrôle pour le durcissement des serveurs Linux
Liste de contrôle étape par étape pour durcir un serveur Linux. Couvre SSH, les pare-feu, les correctifs, les autorisations de fichiers, SELinux/AppArmor et l'enregistrement des audits
15 min de lecture - 8 mai 2026
tutoriel iperf3 : Tester la vitesse du réseau sous Linux et Windows
10 min de lecture - 7 mai 2026