Comment installer Fail2ban sur un VPS pour sécuriser votre serveur
Introduction
Dans ce tutoriel, nous allons apprendre à installer Fail2ban sur un serveur VPS. Fail2ban est un outil essentiel pour la sécurité de votre serveur, car il protège contre les attaques par force brute en bloquant les adresses IP qui tentent de se connecter plusieurs fois avec des identifiants incorrects.

Étape 1 : Mise à jour de votre VPS
Avant d'installer Fail2ban, il est important de s'assurer que votre système est à jour. Connectez-vous à votre VPS via SSH, puis exécutez la commande suivante pour mettre à jour les paquets :
sudo apt update && sudo apt upgrade -y
Étape 2 : Installation de Fail2ban
Fail2ban peut être installé facilement depuis les dépôts officiels. Exécutez la commande suivante pour installer Fail2ban :
sudo apt install fail2ban -y
Une fois l'installation terminée, Fail2ban sera automatiquement démarré et configuré pour fonctionner en arrière-plan.
Étape 3 : Vérification du statut de Fail2ban
Pour vérifier que Fail2ban fonctionne correctement, vous pouvez utiliser la commande suivante :
sudo systemctl status fail2ban
Si Fail2ban fonctionne correctement, vous devriez voir un message indiquant que le service est actif et en cours d'exécution.
Étape 4 : Configuration de Fail2ban
Fail2ban est livré avec une configuration par défaut, mais il est recommandé de la personnaliser pour mieux répondre à vos besoins. Les fichiers de configuration se trouvent dans le répertoire /etc/fail2ban/. Le fichier principal est jail.conf, mais il est recommandé de ne pas modifier ce fichier directement. À la place, créez une copie de configuration à l'aide de :
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Vous pouvez maintenant modifier le fichier jail.local pour personnaliser les paramètres, comme la durée des bannissements ou le nombre de tentatives avant le bannissement. Ouvrez ce fichier pour l'éditer :
sudo nano /etc/fail2ban/jail.local
Exemple de configuration pour protéger SSH
Dans le fichier jail.local, recherchez la section [sshd] et ajustez les paramètres comme suit :
[sshd]
enabled = true
port = ssh
logpath = /var/log/auth.log
maxretry = 3
bantime = 600
findtime = 600
Explication des paramètres :
- enabled = true : Active la protection pour SSH.
- port = ssh : Indique le port à surveiller (par défaut, SSH utilise le port 22).
- maxretry = 3 : Nombre de tentatives échouées avant le bannissement.
- bantime = 600 : Durée du bannissement en secondes (ici 10 minutes).
- findtime = 600 : Période durant laquelle les tentatives échouées sont comptabilisées (ici 10 minutes).
Étape 5 : Redémarrer Fail2ban
Une fois les modifications effectuées, redémarrez Fail2ban pour que les changements prennent effet :
sudo systemctl restart fail2ban
Étape 6 : Vérification des règles actives
Vous pouvez vérifier que Fail2ban applique correctement les règles en exécutant la commande suivante :
sudo fail2ban-client status sshd
Cela vous indiquera si des adresses IP sont actuellement bannies pour des tentatives de connexion échouées.
Étape 7 : Voir les logs de Fail2ban
Fail2ban vous permet de suivre les actions effectuées. Vous pouvez voir les logs dans /var/log/fail2ban.log. Pour afficher les logs en temps réel, exécutez :
sudo tail -f /var/log/fail2ban.log
Conclusion
Félicitations ! Vous avez maintenant installé et configuré Fail2ban sur votre serveur VPS. Ce système de sécurité simple mais efficace protégera votre serveur contre de nombreuses attaques par force brute et autres tentatives malveillantes. N'oubliez pas de maintenir régulièrement votre VPS à jour pour garantir la sécurité de votre serveur.
Configuration avancée : protéger Nginx et MySQL avec Fail2ban
Fail2ban ne se limite pas à SSH — vous pouvez protéger d'autres services de votre VPS. Voici comment ajouter des règles pour Nginx et MySQL dans votre fichier jail.local :
Protection Nginx (attaques HTTP)
[nginx-http-auth]
enabled = true
filter = nginx-http-auth
logpath = /var/log/nginx/error.log
maxretry = 3
bantime = 3600
findtime = 600
[nginx-limit-req]
enabled = true
filter = nginx-limit-req
logpath = /var/log/nginx/error.log
maxretry = 10
bantime = 600
findtime = 60
Protection MySQL (tentatives de connexion)
[mysqld-auth]
enabled = true
filter = mysqld-auth
logpath = /var/log/mysql/error.log
maxretry = 5
bantime = 900
findtime = 300
Après avoir modifié jail.local, redémarrez toujours Fail2ban pour appliquer les changements :
sudo systemctl restart fail2ban
Surveiller et gérer les IPs bannies
Fail2ban fournit un client en ligne de commande pour gérer vos règles et IPs bannies :
Voir les jails actives :
sudo fail2ban-client status
Voir les IPs bannies pour SSH :
sudo fail2ban-client status sshd
Débannir une IP manuellement (si vous vous êtes bloqué) :
sudo fail2ban-client set sshd unbanip 203.0.113.42
Bannir une IP manuellement :
sudo fail2ban-client set sshd banip 203.0.113.42
Ignorer votre propre IP (whitelist)
Pour éviter de vous bloquer vous-même accidentellement, ajoutez votre IP ou votre réseau dans la liste d'exclusion. Dans jail.local, au début du fichier :
[DEFAULT]
# Votre IP fixe ou votre réseau local
ignoreip = 127.0.0.1/8 ::1 VOTRE_IP_ICI
bantime = 600
findtime = 600
maxretry = 3
Remplacez VOTRE_IP_ICI par votre adresse IP publique. Si vous avez une IP dynamique (la plupart des connexions résidentielles), pensez à la mettre à jour en cas de changement.
Foire aux questions
Fail2ban fonctionne-t-il avec UFW (pare-feu Ubuntu) ?
Oui. Fail2ban peut utiliser UFW comme backend de bannissement. Configurez banaction = ufw dans la section [DEFAULT] de jail.local. UFW bloquera alors les IPs bannies via ses propres règles.
Fail2ban protège-t-il contre les attaques DDoS ?
Partiellement. Fail2ban bannit les IPs après détection de tentatives répétées, ce qui arrête les attaques de faible intensité. Pour une protection DDoS complète, une solution dédiée (Cloudflare, OVH Anti-DDoS) est nécessaire. OnPowered inclut une protection Anti-DDoS sur toutes ses offres VPS.
Comment désinstaller Fail2ban proprement ?
Si vous souhaitez retirer Fail2ban : sudo apt remove --purge fail2ban. Toutes les règles iptables générées par Fail2ban seront effacées automatiquement.
Articles liés
Publié le par l'Équipe OnPowered — hébergeur belge de serveurs Minecraft et VPS.