Installer Fail2Ban sur un VPS Linux
🛡️ Qu’est-ce que Fail2Ban ?
Fail2Ban analyse les logs du serveur et bannit automatiquement les adresses IP qui tentent des connexions suspectes (force brute, scans, etc.).
📦 Installation
Ubuntu/Debian
sudo apt update
sudo apt install fail2ban -yCentOS/RHEL
sudo yum install epel-release -y
sudo yum install fail2ban -yVérifier l’installation
sudo systemctl status fail2ban⚙️ Configuration de base
1️⃣ Créer le fichier de configuration local
IMPORTANT : Ne jamais modifier directement jail.conf !
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local2️⃣ Éditer la configuration
sudo nano /etc/fail2ban/jail.local3️⃣ Configuration recommandée
Trouvez la section [DEFAULT] et modifiez :
[DEFAULT]
# Durée de bannissement (10 minutes)
bantime = 10m
# Période d'observation (10 minutes)
findtime = 10m
# Nombre de tentatives avant bannissement
maxretry = 5
# Ignorer certaines IP (la vôtre par exemple)
ignoreip = 127.0.0.1/8 ::1 VOTRE.IP.ICI
# Action par défaut
banaction = iptables-multiport4️⃣ Activer la protection SSH
Trouvez la section [sshd] et modifiez :
[sshd]
enabled = true
port = ssh
# Si vous avez changé le port SSH, indiquez-le ici :
# port = 2222
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 1h
findtime = 10m🚀 Démarrer Fail2Ban
# Activer au démarrage
sudo systemctl enable fail2ban
# Démarrer le service
sudo systemctl start fail2ban
# Vérifier le statut
sudo systemctl status fail2ban📊 Commandes utiles
Vérifier les prisons actives
sudo fail2ban-client statusVoir les détails d’une prison
sudo fail2ban-client status sshdRésultat attendu :
Status for the jail: sshd
|- Filter
| |- Currently failed: 2
| |- Total failed: 12
| `- File list: /var/log/auth.log
`- Actions
|- Currently banned: 1
|- Total banned: 3
`- Banned IP list: 192.168.1.100Débannir une IP manuellement
sudo fail2ban-client set sshd unbanip 192.168.1.100Bannir une IP manuellement
sudo fail2ban-client set sshd banip 192.168.1.100Recharger la configuration
sudo fail2ban-client reload🔒 Protections supplémentaires
Protéger contre les scans de ports
[port-scan]
enabled = true
filter = port-scan
logpath = /var/log/syslog
maxretry = 3
bantime = 1dCréer le filtre :
sudo nano /etc/fail2ban/filter.d/port-scan.confAjouter :
[Definition]
failregex = ^.*Possible port scan.*from <HOST>.*$
ignoreregex =📧 Notifications par email (optionnel)
Installer sendmail
sudo apt install sendmail -yConfigurer les notifications
Dans /etc/fail2ban/jail.local :
[DEFAULT]
destemail = [email protected]
sendername = Fail2Ban
action = %(action_mwl)s📝 Consulter les logs
Logs Fail2Ban
sudo tail -f /var/log/fail2ban.logVoir les bannissements récents
sudo grep 'Ban' /var/log/fail2ban.log | tail -20Voir les débannissements
sudo grep 'Unban' /var/log/fail2ban.log | tail -20🚨 Dépannage
Fail2Ban ne démarre pas
# Tester la configuration
sudo fail2ban-client -t
# Voir les erreurs
sudo journalctl -u fail2ban -n 50Vérifier les règles iptables
sudo iptables -L -nRéinitialiser les bannissements
sudo fail2ban-client unban --all⚡ Configuration optimisée pour SSH
Créer un fichier dédié :
sudo nano /etc/fail2ban/jail.d/ssh-custom.confAjouter :
[sshd]
enabled = true
port = 2222
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
findtime = 5m
bantime = 24hRedémarrer :
sudo systemctl restart fail2ban📊 Statistiques avancées
Nombre total de bannissements
sudo zgrep 'Ban' /var/log/fail2ban.log* | wc -lTop 10 des IP bannies
sudo zgrep 'Ban' /var/log/fail2ban.log* | \
grep -oP '\d+\.\d+\.\d+\.\d+' | sort | uniq -c | sort -rn | head -10IP actuellement bannies
sudo fail2ban-client status sshd | grep "Banned IP"💡 Bonnes pratiques
- Surveiller les logs régulièrement
- Ajuster les seuils selon vos besoins
- Combiner avec clés SSH pour une sécurité maximale
- Backup de la config avant modifications
- Tester après chaque changement
✅ Vérification finale
# Vérifier que Fail2Ban est actif
sudo systemctl is-active fail2ban
# Vérifier les prisons actives
sudo fail2ban-client status
# Simuler une attaque (depuis un autre serveur)
# ssh wrong-user@votre-ip -p 2222
# Répéter 4 fois, l'IP sera bannie🔗 Ressources
- Documentation officielle : https://www.fail2ban.org
- Filtres personnalisés :
/etc/fail2ban/filter.d/ - Actions personnalisées :
/etc/fail2ban/action.d/
Votre serveur est maintenant protégé contre les attaques par bruteforce ! 🛡️



