OKTous les services sont opérationnels
InfrawireLogo InfrawireDocumentation

Configurer Fail2ban sur un VPS Linux

Fail2ban surveille les journaux de vos services et bannit temporairement les adresses IP qui se comportent de manière abusive (tentatives SSH répétées, scans HTTP, etc.). C’est un complément utile à un pare-feu UFW et à une configuration SSH sécurisée.

Prérequis

  • Ubuntu/Debian (ou dérivé) avec sudo
  • Service à protéger déjà en place (ex. sshd, nginx)

Installation

Bash
sudo apt update && sudo apt install -y fail2ban sudo systemctl enable fail2ban sudo systemctl start fail2ban

Configuration de base

Les fichiers personnalisés se placent dans /etc/fail2ban/jail.d/ pour ne pas être écrasés par les mises à jour.

Créez /etc/fail2ban/jail.d/local.conf :

INI
1[DEFAULT] 2bantime = 1h 3findtime = 10m 4maxretry = 5 5ignoreip = 127.0.0.1/8 ::1 6 7[sshd] 8enabled = true 9port = ssh 10logpath = %(sshd_log)s 11backend = %(sshd_backend)s

Si vous avez changé le port SSH, remplacez port = ssh par votre port (ex. port = 2222).

Rechargez Fail2ban :

Bash
sudo systemctl restart fail2ban sudo fail2ban-client status sudo fail2ban-client status sshd

Protéger Nginx (filtre HTTP trop agressif)

Installez le paquet filtres si nécessaire (selon distribution), puis ajoutez par exemple :

INI
[nginx-http-auth] enabled = true port = http,https logpath = /var/log/nginx/error.log

Adaptez les chemins de logs à votre installation.

Bonnes pratiques

  • Ajoutez votre IP fixe dans ignoreip pour ne pas vous bloquer lors de tests.
  • Surveillez sudo fail2ban-client status sshd après déploiement.
  • Les bannissements sont temporaires (bantime) ; ajustez selon votre tolérance.

Débannir une IP manuellement

Bash
sudo fail2ban-client set sshd unbanip 198.51.100.10

Dépannage

  • Aucun ban : vérifiez que enabled = true, que le chemin logpath est correct et que le service logue les échecs.
  • Vous êtes banni : utilisez la console du panel hébergeur / IPMI ou une autre IP pour vous connecter et ajuster ignoreip ou débannir.