Pourquoi sécuriser votre serveur linux avec Fail2Ban ?
Dans le monde du déploiement de logiciels, les serveurs Linux dominent largement le marché. Plus de 70% des serveurs web dans le monde tournent sous Linux.
Dans le monde du déploiement de logiciels, les serveurs Linux dominent largement le marché. Selon les statistiques, plus de 70 % des serveurs web dans le monde tournent sous Linux, grâce à sa stabilité, sa performance et sa flexibilité. Pour administrer ces serveurs à distance, SSH (Secure Shell) est la méthode la plus utilisée.
SSH seul ne suffit pas
Beaucoup pensent que l'usage de SSH suffit à protéger un serveur, mais c'est une idée reçue. SSH est un protocole sécurisé, mais sécurité ne veut pas dire invulnérabilité. Si vos mots de passe sont faibles ou si le compte root est directement accessible, SSH peut devenir une porte ouverte pour les attaquants.
Les hackers utilisent des bots et scripts automatiques qui parcourent en continu les plages d'adresses IP des fournisseurs comme OVH, Linode, LWS, etc. Ces bots testent des milliers de combinaisons de noms d'utilisateur et de mots de passe pour trouver une faille.
Même un serveur temporaire ou réattribué à différents utilisateurs peut être exposé : l'adresse IP change, mais les attaques continuent. Les bots "pingent" le serveur et effectuent des attaques brute force massives, testant différentes combinaisons de username et mot de passe dans l'espoir d'obtenir un accès.
Sans protection supplémentaire, votre VPS peut être compromis en quelques minutes, entraînant accès non autorisés, dégradations de service ou utilisation de votre serveur pour attaquer d'autres cibles.
Si vous voulez savoir qui essaie de se connecter à votre SSH, vous pouvez consulter les logs avec :
sudo tail -f /var/log/auth.logou
sudo cat /var/log/auth.log
Une connexion SSH encore plus sécurisée
L'une des façons recommandées pour se connecter à un serveur consiste à désactiver le mode mot de passe et le compte root, afin de ne se connecter qu'avec une clé publique SSH. Cela renforce considérablement la sécurité, car les bots ne peuvent plus tester des mots de passe par brute force.
⚠️ Je vous montrerai comment configurer cette méthode dans un prochain article.
Pourquoi SSH ne suffit pas toujours
SSH est un protocole sécurisé, mais si vos configurations sont faibles ou par défaut, il peut devenir une porte d'entrée pour les attaquants automatisés. Les hackers et leurs robots connaissent parfaitement les plages d'adresses IP des hébergeurs comme OVH, Linode, LWS, et peuvent scanner et tester vos serveurs de manière continue.
Même si vous pensez que votre serveur est sécurisé, un mot de passe faible, ou le compte root accessible, peut permettre à un bot de lancer des attaques en brute force pour deviner votre mot de passe.
Fail2Ban : votre bouclier contre les attaques automatiques
C'est là qu'intervient Fail2Ban. Cet outil surveille vos fichiers de log et applique des règles pour bloquer automatiquement les adresses IP suspectes après un certain nombre d'échecs de connexion.
Voici pourquoi c'est indispensable :
Blocage des brute-force : Si quelqu'un tente de se connecter avec plusieurs combinaisons de nom d'utilisateur et mot de passe, Fail2Ban bloquera automatiquement son IP.
Protection des services exposés : SSH n'est pas le seul service vulnérable. Fail2Ban peut être configuré pour protéger d'autres services comme Nginx, Apache ou FTP.
Logs et visibilité : Vous pouvez consulter toutes les tentatives de connexion échouées pour comprendre qui essaie d'accéder à votre serveur.
Comment commencer avec Fail2Ban pour SSH
- Installation sur un serveur Debian/Ubuntu :
sudo apt update
sudo apt install fail2ban- Configurer SSH : Créez un fichier local de configuration pour ne pas écraser les paramètres par défaut
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local- Activer la protection SSH : Dans le fichier jail.local, activez le blocage pour SSH :
Ajouter dans jail.local :
[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 3600- Redémarrer le service :
sudo systemctl restart fail2ban
sudo systemctl enable fail2banConclusion
Fail2Ban est un outil essentiel pour renforcer la sécurité de votre serveur Linux. Il agit comme un bouclier automatique contre les attaques par brute force et protège efficacement vos services exposés.
Dans un prochain article, je vous montrerai comment configurer des clés SSH pour une sécurité optimale et comment désactiver complètement l'authentification par mot de passe.