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 sous Linux
Fail2Ban surveille les journaux de votre serveur à la recherche d'activités suspectes et bannit automatiquement les adresses IP incriminées en mettant à jour les règles de votre pare-feu. Il bloque 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 « jail » et quelques options avancées qu'il est utile de connaître.
Prérequis
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 tentatives de connexion infructueuses (
/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 dépôt EPEL. Avant d'installer Fail2Ban, vérifiez que votre pare-feu est en cours d'exécution 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 lancez-le :
sudo systemctl enable fail2ban
sudo systemctl start fail2banCopiez la configuration par défaut dans un fichier de remplacement local. Modifiez toujours jail.local, et non jail.conf, afin que les mises à jour des paquets ne remplacent 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 vos jails actives. Vérifiez que Fail2Ban est activé au démarrage avec sudo systemctl is-enabled fail2ban.
Configuration des jails
Paramètres par défaut
Ouvrez /etc/fail2ban/jail.local et ajustez la [DEFAULT] . Ces paramètres s'appliquent à toutes les jails sauf si elles sont redéfinies :
| Paramètre | Valeur recommandée | Fonction |
|---|---|---|
bantime | 3600 | Bloque une adresse IP pendant 1 heure |
findtime | 600 | Compte les échecs sur une période de 10 minutes |
maxretry | 3 jusqu'à 5 | Échecs avant qu'un bannissement ne soit déclenché |
ignoreip | 127.0.0.1/8 ::1 | Les adresses IP qui ne sont jamais bloquées |
Ajoutez votre propre adresse IP de gestion à ignoreip afin de ne pas vous bloquer l'accès. 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 fichier de journal correct pour votre distribution. Si vous avez déplacé SSH vers un port non standard (par exemple, 2222), mettez à jour le port paramètre en conséquence.
Protection du serveur web
Activez la prison correspondant à votre serveur web :
- Nginx :
[nginx-http-auth]en cas d'échecs d'authentification,[nginx-botsearch]pour les bots malveillants - Apache :
[apache-auth]pour l'authentification,[apache-badbots]pour les bots
Recidive Jail
La [recidive] jail intercepte les adresses IP qui sont régulièrement bannies dans d'autres jails et leur applique une pénalité plus longue, généralement d'une semaine (604 800 secondes). Cela est utile pour les attaquants persistants qui changent régulièrement d'approche.
Après avoir effectué des modifications, rechargez :
sudo systemctl restart fail2ban
sudo fail2ban-client statusTests et surveillance
Test des interdictions
Avant de vous fier à Fail2Ban en production, testez-le. Depuis une machine distante (pas votre adresse IP d'administrateur), essayez de vous connecter via SSH jusqu'à ce que vous dépassiez maxretry. Vous devriez être bloqué. Vérifiez avec :
sudo fail2ban-client status sshdObservez les bannissements 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 quotidienne
Consultez l'historique des bannissements en parcourant le journal avec grep :
grep "Ban\|Unban" /var/log/fail2ban.logCommandes de gestion utiles :
| Commande | Objectif |
|---|---|
fail2ban-client status | Répertorier toutes les prisons actives |
fail2ban-client banned | Afficher toutes les adresses IP actuellement bannies |
fail2ban-client set <jail> unbanip <IP> | Désactiver le bannissement d'une adresse IP spécifique |
fail2ban-client unban --all | Supprimer toutes les interdictions |
fail2ban-client set <jail> banip <IP> | Bannir manuellement une adresse IP |
Les interdictions persistent après les redémarrages. Fail2Ban les stocke dans une base de données SQLite à l'adresse /var/lib/fail2ban/fail2ban.sqlite3.
Configuration avancée
Passage à nftables
nftables est le remplaçant moderne d'iptables. Il gère IPv4 et IPv6 dans un cadre unique, s'adapte mieux aux longues listes de blocage et intègre une limitation de débit. Si vous utilisez Ubuntu 22.04+, Debian 11+ ou toute distribution récente, c'est le meilleur choix.
Configurez-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. Ne conservez iptables que si vous utilisez un système plus ancien ou si vous avez des exigences de compatibilité.
Notifications par e-mail
Par défaut, Fail2Ban bloque les adresses sans notification. Pour recevoir des alertes par e-mail, ajoutez ce qui suit à la [DEFAULT] section jail.local:
[DEFAULT]
destemail = [email protected]
sender = [email protected]
mta = sendmail
action = %(action_mwl)sL' action_mwl action envoie un e-mail contenant les détails du bannissement, les données WHOIS et les lignes du journal qui ont déclenché le bannissement. Utilisez action_mw si vous ne souhaitez obtenir que les données WHOIS. Vous devrez disposer d'un agent de transfert de courrier tel que sendmail, ou d'un relais SMTP configuré via un service tel que msmtp.
Pour les alertes Slack ou Discord, créez un script qui envoie un webhook et configurez-le via un fichier d'action personnalisé dans /etc/fail2ban/action.d/.
Si vous recherchez un serveur avec un accès root complet et une bande passante illimité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
Gestion de la mémoire sous Linux : Swap, OOM Killer & Cgroups
Comment Linux swap, OOM killer et cgroups fonctionnent ensemble - avec des exemples de configuration pour les bases de données, les serveurs web et les hôtes VPS multi-locataires.
12 min de lecture - 31 mai 2026
Guide d'installation de Prometheus et node_exporter
15 min de lecture - 29 mai 2026