Comment installer et configurer Fail2Ban sur Linux

9 min de lecture - 14 mai 2026

hero section cover
Table des matières
  • Comment installer et configurer Fail2Ban sous Linux
  • Prérequis
  • Installation de Fail2Ban sur Ubuntu/Debian
  • Configuration des jails
  • Tests et surveillance
  • Configuration avancée
Partager

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.log sur les systèmes basés sur Debian, /var/log/secure sur 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 fail2ban

Activez le service pour qu'il démarre au démarrage, puis lancez-le :

sudo systemctl enable fail2ban
sudo systemctl start fail2ban

Copiez 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.local

Vérifiez que tout fonctionne :

sudo systemctl status fail2ban
sudo fail2ban-client status

La 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ètreValeur recommandéeFonction
bantime3600Bloque une adresse IP pendant 1 heure
findtime600Compte les échecs sur une période de 10 minutes
maxretry3 jusqu'à 5Échecs avant qu'un bannissement ne soit déclenché
ignoreip127.0.0.1/8 ::1Les 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 = true

Vé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 status

Tests 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 sshd

Observez les bannissements en temps réel :

tail -f /var/log/fail2ban.log

Si vous bloquez accidentellement une adresse IP légitime, débloquez-la :

sudo fail2ban-client set sshd unbanip 203.0.113.50

Surveillance quotidienne

Consultez l'historique des bannissements en parcourant le journal avec grep :

grep "Ban\|Unban" /var/log/fail2ban.log

Commandes de gestion utiles :

CommandeObjectif
fail2ban-client statusRépertorier toutes les prisons actives
fail2ban-client bannedAfficher 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 --allSupprimer 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-multiport

Redé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)s

L' 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.

background image
Votre serveur freine-t-il votre croissance ?

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

Blog

À l'honneur cette semaine

Plus d'articles
Gestion de la mémoire sous Linux : Swap, OOM Killer & Cgroups

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

Plus d'articles