Comment installer Fail2ban avec Firewalld sur Rocky Linux 8.4
Comment installer Fail2ban avec Firewalld sur Rocky Linux 8.4
Sur cette page
- Conditions préalables
- Configurer Firewalld
- Ajouter le dépôt EPEL à Rocky Linux
- Installation de Fail2ban sur Rocky Linux
- Configurer Fail2ban
- Protéger le service SSH avec Fail2ban
- Vérifiez l'installation de Fail2ban et de Firewalld
- Adresse IP urbaine sur Fail2ban
- Conclusion
Fail2ban est un démon système pour protéger les serveurs contre les tentatives de connexion malveillantes et les attaques par force brute. Fail2ban est un cadre IPS (logiciel de prévention des intrusions) open-source écrit en Python et il est extrêmement configurable. Il fonctionne comme un service de démon qui surveillera le journal SystemD et les fichiers journaux, en recherchant toute tentative d'authentification échouée. Lorsque le nombre d'authentifications échouées atteint un certain maximum X, fail2ban bloquera automatiquement l'adresse IP à l'aide du logiciel de pare-feu.
Si vous êtes propriétaire d'un VPS (Serveur Privé Virtuel) ou d'un serveur dédié, vous devriez envisager d'installer fail2ban sur tous vos serveurs. Cela vous aidera à protéger certains services de base tels que SSH et FTP contre des attaques par force brute malveillantes. De plus, fail2ban est très pratique, facile à configurer et flexible.
Dans ce guide, vous apprendrez à installer fail2ban sur Rocky Linux, à configurer fail2ban avec firewalld et à sécuriser le service SSH contre les attaques par force brute.
Conditions préalables
- Un utilisateur avec des privilèges sudo root.
Configurer Firewalld
Firewalld est le logiciel de pare-feu par défaut sur Rocky Linux. Il est automatiquement installé lors de votre installation de Rocky Linux, mais il n'est pas activé par défaut.
1. Exécutez la commande suivante pour vous assurer que le package firewalld est disponible sur votre système.
sudo dnf info firewalldVous obtiendrez un résultat similaire à celui ci-dessous.
Comme indiqué sur la capture d'écran, le package firewalld est listé comme "Packages Installés".
2. Ensuite, démarrez le service firewalld en utilisant la commande suivante.
sudo systemctl start firewalld3. Maintenant, activez le service firewalld pour qu'il s'exécute automatiquement à chaque démarrage du système.
sudo systemctl enable firewalldEt vous obtiendrez la sortie suivante.
Created symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service → /usr/lib/systemd/system/firewalld.service.
Created symlink /etc/systemd/system/multi-user.target.wants/firewalld.service → /usr/lib/systemd/system/firewalld.service.4. Après cela, vérifiez l'état du service firewalld en utilisant la commande ci-dessous.
sudo systemctl status firewalldEt vous obtiendrez la sortie suivante.
Comme indiqué, le service firewalld est actif et en cours d'exécution.
5. En option, vous pouvez vérifier l'état du service firewalld en utilisant la commande firewall-cmd. La commande firewall-cmd est l'interface principale pour interagir avec firewalld. La commande firewall-cmd est un utilitaire pour gérer les règles de firewalld, elle vous permet d'ajouter des règles, de supprimer des règles, de vérifier l'état, etc.
Exécutez la commande firewall-cmd ci-dessous pour vérifier l'état du service firewalld.
sudo firewall-cmd --stateSi votre firewalld est actif, vous obtiendrez la sortie comme « en cours d'exécution ». Sinon, vous obtiendrez la sortie comme « pas en cours d'exécution ».
Exécutez maintenant la commande firewall-cmd suivante pour vérifier toutes les règles firewalld actuellement appliquées.
sudo firewall-cmd --list-allVous obtiendrez un résultat similaire à celui ci-dessous.
Ajouter le dépôt EPEL à Rocky Linux
Avant d'installer le fail2ban, vous devez ajouter le dépôt EPEL (Extra Packages for Enterprise Linux) à votre système.
1. Maintenant, exécutez la commande suivante pour installer le dépôt EPEL.
sudo dnf install epel-releaseTapez "y" pour installer et continuer.
2. Lorsque l'installation est terminée, vérifiez tous les dépôts disponibles sur votre système en utilisant la commande suivante.
sudo dnf repolistMaintenant, vous verrez la sortie comme ci-dessous.
Comme on peut le voir, le dépôt EPEL est disponible et actif sur le système. Maintenant, continuons avec l'installation de fail2ban.
Installation de Fail2ban sur Rocky Linux
1. Pour installer fail2ban, exécutez la commande ci-dessous.
sudo dnf install fail2ban fail2ban-firewalldTapez "y" pour confirmer l'installation et appuyez sur "Entrée" pour continuer.
Comme sur la ligne de commande, vous installez également le paquet supplémentaire "fail2ban-firewalld". Cela permettra à fail2ban de manipuler les règles de firewalld.
2. Lorsque l'installation est terminée, démarrez le service fail2ban en utilisant la commande ci-dessous.
sudo systemctl start fail2ban3. Après cela, exécutez la commande suivante pour activer le service fail2ban afin qu'il démarre automatiquement à chaque démarrage du système.
sudo systemctl enable fail2ban4. Maintenant, vérifiez l'état des services fail2ban en exécutant la commande suivante.
sudo systemctl status fail2banEt vous obtiendrez que le service fail2ban est actif et fonctionne avec la configuration par défaut comme ci-dessous.
Configurer Fail2ban
Maintenant, vous allez configurer fail2ban et activer fail2ban pour qu'il fonctionne avec le firewalld.
1. Copier la configuration par défaut de fail2ban de "jail.conf" vers "jail.local" en utilisant la commande suivante.
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local2. Ensuite, modifiez la configuration de fail2ban en utilisant la commande de l'éditeur nano ci-dessous.
sudo nano /etc/fail2ban/jail.localSous la section "[DEFAULT]", vérifiez les configurations ci-dessous.
[DEFAULT]
....
bantime = 1h
findtime = 1h
maxretry = 5Options que vous devez connaître.
- Toutes les configurations sous cette section s'appliqueront comme une configuration par défaut globale.
- bantime=Nombre de fois qu'une adresse IP sera bannie. Il peut être formaté en jours, minutes ou heures. Dans cet exemple, l'hôte ou l'adresse IP sera banni pendant "1 heure" après un maximum de tentatives d'authentification échouées.
- L'adresse IP sera bannie si elle a échoué à l'authentification maximale pendant le dernier "findtime".
- maxretry=Lorsque l'adresse IP a le nombre X d'échecs de connexion maxrtry, alors l'IP sera bannie. Dans cet exemple, l'adresse IP sera bannie après 5 tentatives d'authentification échouées.
Ajustez le bantime, le findtime et le maxretry selon vos besoins, puis appuyez sur "Ctrl+x" et tapez "y", puis appuyez sur "Entrée" pour enregistrer la configuration.
3. La configuration par défaut de fail2ban utilise iptables pour le blocage. Pour permettre à fail2ban d'utiliser firewalld pour le blocage, copiez la configuration "00-firewalld.conf" dans "00-firewalld.local" en utilisant la commande ci-dessous.
sudo mv /etc/fail2ban/jail.d/00-firewalld.conf /etc/fail2ban/jail.d/00-firewalld.localCette configuration "00-firewalld.conf" fait partie du paquet "fail2ban-firewalld".
4. Maintenant, redémarrez le service fail2ban pour appliquer les nouvelles configurations en utilisant la commande ci-dessous.
sudo systemctl restart fail2banProtéger le service SSH avec Fail2ban
Par défaut, fail2ban ne bloque aucune adresse IP, jusqu'à ce que vous activiez la configuration du prison pour chaque service que vous souhaitez protéger. De plus, la configuration de la prison remplacera la configuration par défaut dans "jail.local". La configuration de la prison sera disponible dans le répertoire "/etc/fail2ban/jail.d".
1. Créez une nouvelle configuration de prison pour le service SSH en utilisant la commande suivante.
sudo nano /etc/fail2ban/jail.d/sshd.localMaintenant, collez la configuration suivante.
[sshd]
enabled = true
Override the default global configuration
for specific jail sshd
bantime = 1d
maxretry = 3Comme on peut le voir, la configuration remplace les options "bantime" et "maxretry" pour la jail "sshd".
Appuyez sur "Ctrl+x" et tapez "Y" puis appuyez sur "Entrée" pour enregistrer la nouvelle configuration de la prison.
2. Pour appliquer la nouvelle configuration, redémarrez le service fail2ban en utilisant la commande suivante.
sudo systemctl restart fail2ban3. Ensuite, vérifiez l'état de fail2ban en utilisant la commande fail2ban-client. Le fail2ban-client est une ligne de commande pour gérer le serveur de contrôle fail2ban.
Exécutez maintenant la commande fail2ban-client ci-dessous pour vérifier la configuration de la prison.
sudo fail2ban-client statusEt vous obtiendrez un résultat similaire à celui ci-dessous.
Le fail2ban fonctionne avec 1 prison active nommée "sshd".
Pour vérifier la configuration d'une prison spécifique, vous pouvez utiliser l'option "get" suivie du nom de la prison, puis des options que vous souhaitez vérifier.
Vérifiez la configuration "maxretry" pour la prison "sshd" en utilisant la commande ci-dessous.
sudo fail2ban-client get sshd maxretryEt vous verrez que la sortie est "3", correspond à la valeur dans la configuration "sshd.local".
Ensuite, vérifiez l'action par défaut de bannissement pour la jail "sshd" en utilisant la commande ci-dessous.
sudo fail2ban-client get sshd actionsEt vous verrez que la sortie est « firewallcmd-rich-rules », correspondant à la configuration globale de fail2ban dans le « 00-firewalld.local ».
Vérifiez l'installation de Fail2ban et de Firewalld
Pour vérifier l'installation de fail2ban, vérifiez le statut complet de la prison (pour ce guide, il s'agit de la prison sshd) et vérifiez les règles firewalld générées par fail2ban.
Pour les besoins des tests, ci-dessous se trouve la capture d'écran après avoir essayé de se connecter à un serveur SSH avec un mot de passe incorrect. Après avoir atteint le nombre maximum de tentatives "3", la connexion est interrompue par le serveur.
1. Exécutez la commande suivante pour vérifier l'état d'une prison spécifique (cet exemple est la prison sshd).
sudo fail2ban-client status sshdEt vous obtiendrez un résultat similaire à celui-ci.
Comme on peut le voir, la prison sshd a 1 adresse IP bannie. Si vous êtes sur un VPS en direct ou un serveur dédié, vous verrez beaucoup plus d'adresses IP.
2. Le fail2ban générera des rich-rules de firewalld pour bloquer les adresses IP. Les rich-rules de firewalld sont une fonctionnalité de filtrage avancée sur firewalld.
Exécutez la commande suivante pour afficher les rich-rules de firewalld générées par fail2ban.
firewall-cmd --list-rich-rulesEt vous obtiendrez un résultat similaire à celui ci-dessous.
Adresse IP urbaine sur Fail2ban
Pour débloquer l'adresse IP de fail2ban, vous pouvez utiliser la commande fail2ban-client.
1. Exécutez la commande fail2ban-client ci-dessous pour débannir l'adresse IP "192.168.1.10".
sudo fail2ban-client unban 192.168.1.10Et l'adresse IP sera retirée de la liste noire sur fail2ban.
Ensuite, exécutez la commande suivante pour vous assurer que l'adresse IP est supprimée de la base de données fail2ban (pour cet exemple, la prison sshd).
sudo fail2ban-client status sshdEt vous obtiendrez que l'adresse IP soit retirée de la section "Liste des IP bannies".
Conclusion
Félicitations ! Vous avez installé avec succès le cadre IPS fail2ban sur Rocky Linux 8.4. Pour la prochaine étape, vous pouvez examiner une autre configuration de prison pour sécuriser d'autres services tels que le serveur FTP, phpMyAdmin, WordPress, etc.










