Pourquoi self-heberger Fail2ban sur un VPS
Fail2ban est l'outil de protection le plus simple et le plus universel pour un serveur expose : il lit en continu vos fichiers de logs, applique des expressions regulieres (les filtres) pour reperer les tentatives d'intrusion, et bannit l'IP fautive en l'ajoutant a iptables/nftables pour une duree configurable. Sur un VPS, c'est la premiere ligne de defense a mettre en place avant tout le reste, parce qu'il ne demande aucune dependance externe, consomme presque rien et protege immediatement SSH contre le bruteforce. Au-dela de SSH, vous pouvez l'etendre a Nginx (tentatives d'auth, scans d'URL), Postfix, WordPress ou n'importe quel service qui ecrit des logs. Tout fonctionne en local sur votre machine : aucune donnee ne sort, aucun service tiers n'intervient. C'est la solution a privilegier pour une protection robuste, autonome et facile a auditer.
Les benefices concrets de ce template
- Bannissement automatique des IP qui forcent SSH, des les premieres tentatives suspectes.
- Filtres pour de nombreux services : SSH, Nginx, Apache, Postfix, WordPress, et filtres personnalises.
- Empreinte minimale : il tourne sans souci sur le plus petit des VPS.
- Banissement progressif (recidive) : plus une IP recidive, plus le bannissement est long.
- Notifications par e-mail a chaque bannissement pour garder un oeil sur les attaques.
- Totalement autonome et local : aucune dependance reseau, simple a auditer et a versionner.
Prerequis pour l'heberger
Fail2ban est extremement frugal : il fonctionne sur n'importe quel VPS, meme un 1 vCPU / 512 Mo, sans impact perceptible. Il s'installe directement sur le systeme (pas besoin de Docker) et requiert un acces root, un backend de pare-feu (iptables ou nftables, presents par defaut) et l'acces aux logs des services a proteger (/var/log/auth.log pour SSH, les access/error logs pour Nginx). Aucun domaine ni port supplementaire n'est necessaire. La regle d'or : configurez toujours une whitelist (ignoreip) avec votre IP fixe avant d'activer le bannissement, pour ne pas vous verrouiller hors de votre propre serveur.
Installer et configurer Fail2ban sur votre VPS
Installer Fail2ban
Sur Debian/Ubuntu : sudo apt update && sudo apt install fail2ban. Le service demarre automatiquement. Verifiez avec sudo systemctl status fail2ban.
Creer un jail.local
Ne modifiez jamais jail.conf directement. Copiez plutot vos reglages dans /etc/fail2ban/jail.local : c'est la qu'on definit bantime, findtime, maxretry et surtout ignoreip = 127.0.0.1/8 VOTRE_IP pour vous proteger d'un auto-bannissement.
Activer la protection SSH
Dans jail.local, activez le jail [sshd] avec par exemple maxretry = 3 et bantime = 1h. Apres 3 echecs en findtime, l'IP est bannie une heure au niveau du pare-feu.
Ajouter un jail pour Nginx
Activez les jails [nginx-http-auth] et [nginx-botsearch] en pointant logpath vers vos logs Nginx. Cela bloque les tentatives d'authentification repetees et les scans d'URL malveillants.
Recharger et verifier les jails actifs
Appliquez la configuration : sudo systemctl restart fail2ban, puis sudo fail2ban-client status liste les jails actifs et sudo fail2ban-client status sshd montre les IP actuellement bannies.
Tester un bannissement et le debannissement
Verifiez le bon fonctionnement avec sudo fail2ban-client status sshd. Pour liberer une IP legitime bloquee par erreur : sudo fail2ban-client set sshd unbanip X.X.X.X.
Activez le bannissement progressif pour fatiguer les recidivistes : dans jail.local, mettez bantime.increment = true et bantime.factor = 2. Chaque nouvelle recidive double la duree du bannissement, qui passe ainsi d'une heure a plusieurs jours pour les IP les plus insistantes. Couplez-le a un changement du port SSH par defaut et a la desactivation de l'authentification par mot de passe (cles SSH uniquement) : Fail2ban devient alors un filet de securite plutot que votre unique rempart.
La documentation officielle
Pour la configuration avancée, les options propres à l’outil et les changements de version, référez-vous à la documentation officielle de Fail2Ban. Ce guide couvre la mise en ligne sur VPS ServOrbit ; la documentation éditeur reste la référence pour les réglages fins.