Comment installer Fail2ban sur le serveur Ubuntu 24.04
Sur cette page
- Conditions préalables
- Installation de Fail2ban et UFW (pare-feu simple)
- Configuration de Fail2ban
- Vérification des règles fail2ban à l'aide de fail2ban-client
- Comment bannir et débannir une adresse IP avec fail2ban-client
- Conclusion
Fail2ban est un IPS (Intrusion Prevention Software) gratuit et open source qui aide les administrateurs à sécuriser les serveurs Linux contre les connexions malveillantes et les attaques par force brute. Fail2ban est écrit en Python et est livré avec des filtres pour divers services tels que Apache2, SSH, FTP, etc. Fail2ban réduit les tentatives de connexion malveillantes en bloquant les adresses IP des attaques sources.
Fail2ban fonctionne en analysant les fichiers journaux des services (par exemple /var/log/auth.log) et en interdisant les adresses IP qui affichent des tentatives de connexion malveillantes telles qu'un trop grand nombre de mots de passe incorrects, la recherche d'exploits, etc. Fail2ban prend également en charge plusieurs backends de pare-feu tels que iptables, ufw et pare-feu. Vous permet également de configurer une notification par e-mail pour chaque tentative de connexion bloquée.
Dans ce guide, vous apprendrez comment installer Fail2ba sur le serveur Ubuntu 24.04. Vous configurerez la prison Fail2ban, apprendrez la commande de base «fail2ban-client», puis apprendrez à interdire et débloquer des adresses IP à l'aide de Fail2ban.
Conditions préalables
Pour commencer avec ce guide, assurez-vous d'avoir :
- Un serveur Ubuntu 24.04
- Un utilisateur non root avec des privilèges d'administrateur
Installation de Fail2ban et UFW (pare-feu simple)
Fail2ban est un IPS (Intrusion Prevention Software) qui protège les serveurs contre les attaques par force brute. Il est disponible par défaut sur la plupart des référentiels Linux et prend en charge plusieurs backends de pare-feu. Dans cette section, vous allez installer Fail2ban, puis configurer UFW (Uncomplicated Firewall) qui sera utilisé comme backend de pare-feu pour Fail2ban.
Tout d’abord, exécutez la commande ci-dessous pour mettre à jour l’index de votre package Ubuntu.
sudo apt update
Installez maintenant les packages 'fail2ban' et 'ufw' avec la commande 'apt' suivante. Saisissez « Y » pour confirmer l'installation.
sudo apt install fail2ban ufw
Une fois l'installation terminée, exécutez la commande ci-dessous pour ouvrir le port pour SSH et activer UFW. Saisissez « Y » pour confirmer, démarrer et activer UFW.
sudo ufw allow OpenSSH
sudo ufw enable
Une fois UFW activé, vous verrez une sortie « Le pare-feu est actif et activé au démarrage du système ».
Ensuite, exécutez la commande suivante pour vérifier l'état UFW. Vous verrez que l'UFW est « actif » avec « OpenSSH » activé.
sudo ufw status
Enfin, exécutez la commande « systemctl » ci-dessous pour démarrer, activer et vérifier le service « fail2ban ».
sudo systemctl enable --now fail2ban
sudo systemctl status fail2ban
Vous pouvez voir ci-dessous que 'fail2ban' est actif (en cours d'exécution) et activé.
Configuration de Fail2ban
Après avoir installé fail2ban, vous devez le configurer avant que Fail2ban n'effectue une action (vérification et blocage). Dans cette section, vous allez modifier la configuration fail2ban '/etc/fail2ban/jail.local', configurer la configuration globale pour 'bantime', 'maxretry', et « findtime », configurez l'action par défaut et le backend du pare-feu UFW, puis activez la prison « sshd » pour protéger le service SSH contre les attaques par force brute.
Pour commencer, copiez la configuration fail2ban par défaut dans « /etc/fail2ban/jail.local » avec ce qui suit :
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Ouvrez le fichier '/etc/fail2ban/jail.local' avec la commande d'éditeur 'nano' suivante.
sudo nano /etc/fail2ban/jail.local
Ajoutez votre réseau local à l'option « ignoreip ». Aucun sous-réseau de cette option ne sera bloqué par fail2ban.
ignoreip = 127.0.0.1/8 ::1 192.168.1.0/24 192.168.10.20
Ajustez la configuration par défaut pour 'bantime' (l'heure de l'adresse IP sera bannie), 'findtime' (la durée entre le nombre d'échecs avant l'action d'interdiction), et « maxretry » (le nombre d'échecs d'interdiction des adresses IP). Dans cet exemple, vous allez configurer le « bantime » sur « 1 heure », le « findtime » sur « 10 ». minutes', avec le 'maxretry' à '5 fois'.
bantime = 1h
findtime = 10m
maxretry = 5
Vous pouvez éventuellement modifier l'« action » par défaut en « %(action_mw)s » pour interdire les adresses IP et envoyer une notification à l'administrateur par e-mail. Assurez-vous également de modifier les options « destmail » et « expéditeur ».
action = %(action_mw)s
destemail = [email
sender = [email
Remplacez la valeur par défaut « banaction » par « ufw ». Avec cela, les adresses IP seront interdites par fail2ban via UFW.
banaction = ufw
Modifiez maintenant la prison par défaut pour 'sshd' avec la configuration ci-dessous. Dans cet exemple, la prison 'sshd' aura des paramètres personnalisés pour 'bantime', 'maxretry' et 'findtime '.
[sshd]
enabled = true
maxretry = 3
findtime = 15m
bantime = 3h
port = ssh
logpath = %(sshd_log)s
backend = %(sshd_backend)s
Enregistrez et quittez le fichier lorsque vous avez terminé.
Enfin, exécutez la commande « systemctl » ci-dessous pour redémarrer le service « fail2ban » et appliquer vos modifications.
sudo systemctl restart fail2ban
Vérification des règles fail2ban à l'aide de fail2ban-client
À ce stade, le service Fail2ban est opérationnel avec la prison « sshd » activée. Vous allez maintenant apprendre la commande de base de 'fail2ban-client' pour vérifier et gérer l'installation de Fail2ban.
Pour vous assurer que fail2ban est en cours d'exécution, exécutez la commande 'fail2ban-client' ci-dessous.
sudo fail2ban-client ping
Si fail2ban est en cours d'exécution, vous verrez une sortie « PONG ».
Vérifiez maintenant l'état de la prison 'sshd' avec la commande suivante. Cela vous montrera la liste des adresses IP détectées et interdites pour la prison 'sshd'.
sudo fail2ban-client status sshd
Ensuite, exécutez la commande 'fail2ban-client get' ci-dessous pour vérifier les règles spécifiques de votre prison fail2ban. Dans cette section, vous vérifierez les 'bantime', 'maxretry', 'actions', 'findtime ' et 'ignoreip' de la prison 'sshd'.
sudo fail2ban-client get sshd bantime
sudo fail2ban-client get sshd maxretry
sudo fail2ban-client get sshd actions
sudo fail2ban-client get sshd findtime
sudo fail2ban-client get sshd ignoreip
Comment bannir et débannir une adresse IP avec fail2ban-client
Il est important de savoir comment interdire ou débannir manuellement des adresses IP à l'aide de «fail2ban-client». Avec cela, vous pouvez facilement supprimer votre adresse IP de la liste des bannis. Vous utiliserez la commande «fail2ban-client» pour bannir et débannir les adresses IP sur Fail2ban.
Pour bannir manuellement des adresses IP via fail2ban, exécutez la commande 'fail2ban-client' ci-dessous. Dans ce cas, l'adresse IP interdite va dans la prison 'sshd'.
sudo fail2ban-client set sshd banip IP-ADDRESS
Exécutez maintenant la commande suivante pour débannir l'adresse IP de la prison fail2ban 'sshd'.
Sudo fail2ban-client set sshd unbanip IP-ADDRESS
Enfin, vous pouvez vérifier l'état de la prison 'sshd' à l'aide de la commande ci-dessous. Vous verrez que l'adresse IP a été supprimée.
sudo fail2ban-client status sshd
Conclusion
Félicitations! Vous avez terminé l'installation de fail2ban sur le serveur Ubuntu 24.04. Vous avez également appris la configuration de base pour configurer Fail2ban, y compris la configuration globale et la prison. Enfin, vous avez également appris l'utilisation de base de la commande «fail2ban-client» pour vérifier manuellement l'état fail2ban, l'état de la prison, les configurations de la prison et interdire et débloquer les adresses IP.