Fail2ban analyse les journaux système et bloque automatiquement les adresses IP responsables de tentatives d'intrusion répétées — SSH, FTP, et bien d'autres services.
Sur Debian / Ubuntu, installez le paquet directement depuis les dépôts officiels :
sudo apt update
sudo apt install fail2ban -y
Vérifier que le service est actif et fonctionne correctement :
sudo systemctl status fail2ban
Le fichier de configuration principal se trouve ici :
/etc/fail2ban/jail.conf
jail.conf — il est écrasé lors des mises à jour.
Créez toujours votre propre fichier de jail personnalisé.
Créez votre propre fichier de configuration à partir du modèle par défaut :
sudo cp /etc/fail2ban/jail.d/defaults-debian.conf /etc/fail2ban/jail.d/ma_jail.conf
sudo nano /etc/fail2ban/jail.d/ma_jail.conf
Exemple de configuration avec une jail pour SSH et des valeurs par défaut globales :
[DEFAULT]
bantime = 3600 # durée du bannissement en secondes (1h)
findtime = 1800 # fenêtre d'observation (30 min)
maxretry = 3 # tentatives max avant bannissement
ignoreip = 127.0.0.1 # IPs jamais bannies (loopback)
[sshd]
enabled = true
port = 22 # adapter si vous avez changé le port SSH
bantime = 7200 # durée plus longue pour SSH (2h)
findtime = 1800
maxretry = 2 # plus strict sur SSH
backend = systemd
port dans la jail [sshd] en conséquence.
Consultez le guide SSH pour les détails.
| Paramètre | Exemple | Description |
|---|---|---|
| bantime | 3600 | Durée du bannissement en secondes. Valeur négative = bannissement permanent. |
| findtime | 1800 | Fenêtre temporelle d'observation. Les tentatives comptées doivent survenir dans cet intervalle. |
| maxretry | 3 | Nombre de tentatives échouées avant que l'IP soit bannie. |
| ignoreip | 127.0.0.1 | Liste blanche d'IPs jamais bannies. Séparez plusieurs IPs par des espaces. |
| enabled | true | Active (true) ou désactive (false) la jail. |
| port | 22 | Port(s) à surveiller et sur lequel appliquer les règles de bannissement. |
| backend | systemd | Backend de lecture des logs. systemd pour journald, auto pour les fichiers. |
Après toute modification de la configuration, redémarrez Fail2ban pour appliquer les changements :
sudo systemctl restart fail2ban
Pour vérifier le statut des jails actives et les IPs bannies :
# Afficher le statut général
sudo fail2ban-client status
# Afficher le statut d'une jail spécifique
sudo fail2ban-client status sshd
# Débannir manuellement une IP
sudo fail2ban-client set sshd unbanip 192.168.1.100
ignoreip
avant d'activer Fail2ban, pour éviter de vous bannir accidentellement.