GNU/Linux >> Tutoriels Linux >  >> Rocky Linux

Comment installer Fail2ban avec Firewalld sur Rocky Linux 8.4

Fail2ban est un démon système pour protéger les serveurs contre les connexions malveillantes et les attaques par force brute. Fail2ban est un framework IPS (Intrusion Prevention Software) open-source écrit en Python et extrêmement configurable. Il fonctionne comme un service démon qui surveille les fichiers journaux et journaux de SystemD, puis recherche toute tentative d'authentification infructueuse. Lorsque l'échec de l'authentification atteint le nombre max X, le fail2ban bloquera automatiquement l'adresse IP à l'aide du logiciel pare-feu.

Si vous êtes propriétaire d'un VPS (Virtual Private Server) ou d'un serveur dédié, vous devriez envisager d'installer fail2ban sur tous vos serveurs. Il vous aidera à protéger certains services de base tels que SSH et FTP contre les attaques malveillantes par force brute. 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.

Prérequis

  • Un utilisateur avec des privilèges sudo root.

Configuration du pare-feud

Firewalld est le logiciel 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 firewalld

Vous obtiendrez une sortie similaire à celle ci-dessous.

Comme on le voit sur la capture d'écran, le package firewalld est répertorié comme "Packages installés ".

2. Ensuite, démarrez le service firewalld à l'aide de la commande suivante.

sudo systemctl start firewalld

3. Activez maintenant le service firewalld pour qu'il s'exécute automatiquement à chaque démarrage du système.

sudo systemctl enable firewalld

Et 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 à l'aide de la commande ci-dessous.

sudo systemctl status firewalld

Et vous obtiendrez la sortie suivante.

Comme on le voit, le service firewalld est actif et en cours d'exécution.

5. Si vous le souhaitez, vous pouvez vérifier l'état du service firewalld à l'aide de la commande firewall-cmd. Le firewall-cmd est l'interface principale pour interagir avec firewalld. La commande firewall-cmd est un utilitaire de gestion des règles firewalld, il 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 --state

Si votre pare-feu est actif, vous obtiendrez la sortie "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-all

Vous obtiendrez une sortie similaire à celle ci-dessous.

Ajout du référentiel EPEL à Rocky Linux

Avant d'installer le fail2ban, vous devez ajouter l'EPEL (Extra Packages for Enterprise Linux ) référentiel sur votre système.

1. Exécutez maintenant la commande suivante pour installer le référentiel EPEL.

sudo dnf install epel-release

Tapez "y" pour installer et continuer.

2. Une fois l'installation terminée, vérifiez tous les référentiels disponibles sur votre système à l'aide de la commande suivante.

sudo dnf repolist

Vous verrez maintenant la sortie comme ci-dessous.

Comme on le voit, le référentiel EPEL est disponible et actif sur le système. Passons maintenant à l'installation de fail2ban.

Installer Fail2ban sur Rocky Linux

1. Pour installer fail2ban, exécutez la commande ci-dessous.

sudo dnf install fail2ban fail2ban-firewalld

Tapez "y" pour confirmer l'installation et appuyez sur "Entrée " pour continuer.

Comme sur la ligne de commande, vous installez également le package supplémentaire "fail2ban-firewalld". Cela permettra à fail2ban de manipuler les règles du pare-feu.

2. Une fois l'installation terminée, démarrez le service fail2ban à l'aide de la commande ci-dessous.

sudo systemctl start fail2ban

3. Après cela, exécutez la commande suivante pour permettre au service fail2ban de démarrer automatiquement à chaque démarrage du système.

sudo systemctl enable fail2ban

4. Maintenant, vérifiez les services d'état fail2ban en exécutant la commande suivante.

sudo systemctl status fail2ban

Et vous obtiendrez le service fail2ban est actif et fonctionne avec la configuration par défaut comme ci-dessous.

Configuration de Fail2ban

Vous allez maintenant configurer fail2ban et activer fail2ban pour qu'il fonctionne avec le pare-feu.

1. Copiez la configuration fail2ban par défaut depuis "jail.conf" à "jail.local " en utilisant la commande suivante.

sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

2. Ensuite, modifiez la configuration fail2ban à l'aide de la commande nano editor ci-dessous.

sudo nano /etc/fail2ban/jail.local

Sous "[DEFAULT] ", vérifiez les configurations ci-dessous.

[DEFAULT]
....
bantime = 1h
findtime = 1h
maxretry = 5

Options que vous devez connaître.

  • [DEFAULT] =Toutes les configurations de cette section s'appliqueront en tant que configuration globale par défaut.
  • bantime =Nombre de fois où x adresse IP sera bannie. Il prend en charge le format comme un jour, une minute ou des heures. Pour cet exemple, l'hôte ou l'adresse IP sera banni(e) pendant "1 heure" après un maximum de tentatives d'authentification infructueuses.
  • findtime =L'adresse IP sera bannie si l'authentification max a échoué lors du dernier "findtime".
  • maxretry =Lorsque l'adresse IP a le nombre X d'échecs de connexion maxrtry, alors l'IP sera bannie. Pour cet exemple, l'adresse IP sera bannie après 5 tentatives d'authentification infructueuses.

Ajustez le bantime, le findtime et le maxrety selon vos besoins, puis appuyez sur "Ctrl + x" et tapez "y", puis appuyez sur "Entrée" pour enregistrer la configuration.

3. La configuration fail2ban par défaut utilise les iptables pour le blocage. Pour permettre à fail2ban d'utiliser firewalld pour le blocage, copiez la configuration "00-firewalld.conf " à "00-firewalld.local " en utilisant la commande ci-dessous.

sudo mv /etc/fail2ban/jail.d/00-firewalld.conf /etc/fail2ban/jail.d/00-firewalld.local

Cette configuration "00-firewalld.conf " fait partie du "fail2ban-firewalld " paquet.

4. Redémarrez maintenant le service fail2ban pour appliquer de nouvelles configurations à l'aide de la commande ci-dessous.

sudo systemctl restart fail2ban

Protéger le service SSH avec Fail2ban

Par défaut, le fail2ban ne bloque aucune adresse IP, jusqu'à ce que vous activiez la configuration jail pour chaque service que vous souhaitez protéger. De plus, la configuration de la prison remplacera la configuration par défaut sur "jail.local". La configuration de la prison sera disponible dans le répertoire "/etc/fail2ban/jail.d".

1. Créez une nouvelle configuration jail pour le service SSH à l'aide de la commande suivante.

sudo nano /etc/fail2ban/jail.d/sshd.local

Collez maintenant la configuration suivante.

[sshd]
enabled = true

# Override the default global configuration
# for specific jail sshd
bantime = 1d
maxretry = 3

Comme on le voit, la configuration remplace le "bantime " et "maxretry " options pour la prison "sshd ".

Appuyez sur "Ctrl+x" et tapez "O " puis appuyez sur "Entrée " pour enregistrer la nouvelle configuration de la prison.

2. Pour appliquer la nouvelle configuration, redémarrez le service fail2ban à l'aide de la commande suivante.

sudo systemctl restart fail2ban

3. Après cela, vérifiez l'état de fail2ban à l'aide de la commande fail2ban-client. Le client fail2ban 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 status

Et vous obtiendrez une sortie similaire à celle ci-dessous.

Le fail2ban est en cours d'exécution avec 1 jail active name "sshd ".

Pour vérifier la configuration d'une prison spécifique, vous pouvez utiliser le "get " suivie du nom de la prison, puis des options que vous souhaitez vérifier.

Vérifiez la configuration "maxretry" pour la prison "sshd" à l'aide de la commande ci-dessous.

sudo fail2ban-client get sshd maxretry

Et vous verrez que la sortie est "3 ", correspondent à la valeur de la configuration "sshd.local".

Ensuite, vérifiez l'action d'interdiction par défaut pour la prison "sshd" à l'aide de la commande ci-dessous.

sudo fail2ban-client get sshd actions

Et vous verrez que le résultat est "firewallcmd-rich-rules ", correspondent à la configuration globale de fail2ban au "00-firewalld.local".

Vérifier l'installation de Fail2ban et Firewalld

Pour vérifier l'installation de fail2ban, vérifiez l'état complet de la prison (car ce guide est la prison sshd) et vérifiez les règles de pare-feu générées par fail2ban.

À des fins de test, voici la capture d'écran après avoir tenté de se connecter à un serveur SSH avec un mot de passe incorrect. Après avoir atteint le maxretry "3 " fois, la connexion est abandonnée par le serveur.

1. Exécutez la commande suivante pour vérifier l'état d'une jail spécifique (cet exemple jail sshd).

sudo fail2ban-client status sshd

Et vous obtiendrez une sortie similaire comme celle-ci.

Comme on le voit, la prison sshd a 1 adresse IP interdite. 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 règles riches de pare-feu pour bloquer les adresses IP. Les règles enrichies de firewalld sont une capacité de filtrage avancée sur firewalld.

Exécutez la commande suivante pour afficher les règles enrichies de firewalld générées par fail2ban.

firewall-cmd --list-rich-rules

Et vous obtiendrez une sortie similaire à celle ci-dessous.

Adresse IP Uban sur Fail2ban

Pour débannir l'adresse IP de fail2ban, vous pouvez utiliser la commande fail2ban-client.

1. Exécutez la commande fail2ban-client ci-dessous pour débloquer l'adresse IP "192.168.1.10 ".

sudo fail2ban-client unban 192.168.1.10

Et l'adresse IP sera supprimée de la liste des interdictions 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 sshd

Et vous obtiendrez l'adresse IP est supprimée de la "Liste IP interdite " section.

Conclusion

Félicitations ! vous avez installé avec succès le framework IPS fail2ban sur Rocky Linux 8.4. Et pour l'étape suivante, vous pouvez rechercher une autre configuration de prison pour sécuriser d'autres services tels que le serveur FTP, phpMyAdmin, WordPress, etc.


Rocky Linux
  1. Comment installer Rocky Linux 8.4 étape par étape avec des captures d'écran

  2. Comment installer Python 3.9 sur Rocky Linux 8

  3. Comment installer Apache Tomcat 10 avec Nginx sur Rocky Linux 8

  4. Comment installer Fail2ban avec Firewalld sur Rocky Linux 8

  5. Comment installer Redis sur Rocky Linux 8

Comment installer TeamViewer sur Rocky Linux 8

Comment installer le guide étape par étape de Rocky Linux 8 avec des captures d'écran

Comment installer Anaconda sur Rocky Linux 8

Comment installer Snap sur Rocky Linux 8

Comment installer PHP 7.4 sur Rocky Linux 8

Comment installer Fail2ban sur Rocky Linux 8