Recherche de site Web

Comment installer Fail2ban sur Rocky Linux et AlmaLinux


Écrit en Python, Fail2ban est un système de prévention des intrusions (IPS) gratuit et open-source qui protège le serveur contre les attaques par force brute.

Après un certain nombre de tentatives de mot de passe incorrect, l’adresse IP du client n’est pas autorisée à accéder au système pendant une période spécifiée ou jusqu’à ce que l’administrateur système la débloque. De cette façon, le système est protégé contre les attaques répétées par force brute à partir d’un seul hôte.

Fail2ban est hautement configurable et peut être configuré pour sécuriser une myriade de services tels que SSH, vsftpd, Apache et Webmin.

Dans ce guide, nous nous concentrons sur la façon dont vous pouvez installer et configurer Fail2ban sur Rocky Linux et AlmaLinux.

Étape 1 : Assurez-vous que Firewalld est en cours d’exécution

Par défaut, Firewalld est livré avec Rocky en cours d’exécution. Cependant, si ce n’est pas le cas sur votre système, démarrez Firewalld en exécutant :

$ sudo systemctl start firewalld

Activez-le ensuite pour qu’il démarre au démarrage :

$ sudo systemctl enable firewalld

Vérifiez ensuite l’état de Firewalld

$ sudo systemctl status firewalld

De plus, vous pouvez confirmer toutes les règles Firewalld en cours d’application à l’aide de la commande :

$ sudo firewall-cmd --list-all

Étape 2 : Installer EPEL dans Rocky Linux

Pour l’installation de fail2ban et d’autres paquets requis, vous devez installer le dépôt EPEL qui fournit des paquets supplémentaires de haute qualité pour les distributions basées sur RHEL.

$ sudo dnf install epel-release

Étape 3 : Installer Fail2ban dans Rocky Linux

Une fois EPEL installé, procédez à l’installation de fail2ban et du paquet fail2ban-firewalld.

$ sudo dnf install fail2ban fail2ban-firewalld

Cela installe le serveur fail2ban et le composant firewalld ainsi que d’autres dépendances.

Une fois l’installation de fail2ban terminée, démarrez le service fail2ban.

$ sudo systemctl start fail2ban

Et permettez-lui de démarrer au démarrage.

$ sudo systemctl enable fail2ban

Vous pouvez vérifier l’état du service fail2ban en exécutant la commande :

$ sudo systemctl status fail2ban

Le résultat est une confirmation que Fail2ban fonctionne comme prévu.

Étape 4 : Configuration de Fail2ban dans Rocky Linux

Ensuite, nous devons configurer fail2ban pour qu’il fonctionne comme prévu. Idéalement, nous modifierions le fichier de configuration principal – /etc/fail2ban/jail.conf. Cependant, cela est découragé. Pour contourner ce problème, copiez le contenu du fichier de configuration jail.conf dans le fichier jail.local.

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

Maintenant, ouvrez le fichier jail.local à l’aide de votre éditeur préféré.

$ sudo vim /etc/fail2ban/jail.local

Dans la section [DEFAULT], assurez-vous que vous disposez des paramètres suivants tels qu’ils apparaissent.

bantime = 1h
findtime = 1h
maxretry = 5

Définissons les attributs :

  • La directive bantime spécifie la durée pendant laquelle un client sera banni suite à l’échec d’une tentative d’authentification.
  • La directive findtime est la durée ou la période pendant laquelle fail2ban prendra en compte les tentatives répétées de mot de passe incorrect.
  • Le paramètre maxretry est le nombre maximal de tentatives de mot de passe incorrect avant que le client distant ne soit bloqué pour accéder au serveur. Ici, le client sera verrouillé après 5 échecs d’authentification.

Par défaut, fail2ban fonctionne avec iptables. Cependant, celui-ci a été déprécié en faveur du firewalld. Nous devons configurer fail2ban pour qu’il fonctionne avec firewalld au lieu d’iptables.

Alors, exécutez avec la commande :

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

Pour appliquer les modifications, redémarrez fail2ban :

$ sudo systemctl restart fail2ban

Étape 5 : Sécuriser le service SSH avec Fail2ban

Par défaut, fail2ban ne bloque aucun hôte distant tant que vous n’avez pas activé la configuration de jail pour un service que vous souhaitez sécuriser. La configuration de la prison est spécifiée dans le chemin /etc/fail2ban/jail.d et remplacera la configuration spécifiée dans le fichier jail.local.

Dans cet exemple, nous allons créer un fichier de configuration jail pour protéger le service SSH. Par conséquent, créez le fichier de prison SSH.

$ sudo vim /etc/fail2ban/jail.d/sshd.local

Ensuite, collez les lignes suivantes :

[sshd]
enabled = true

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

Dans la configuration ci-dessus, un hôte distant sera interdit d’accès au système pendant 1 jour après 3 tentatives de connexion SSH infructueuses. Enregistrez les modifications et redémarrez le service fail2ban.

$ sudo systemctl restart fail2ban

Ensuite, vérifiez l’état de la configuration de la prison à l’aide de l’utilitaire de ligne de commande fail2ban-client.

$ sudo fail2ban-client status

À partir de la sortie, nous pouvons voir que nous avons 1 prison configurée pour un service appelé 'sshd'.

En outre, vous pouvez confirmer la valeur maxretry de la prison sshd à l’aide de l’option get.

$ sudo fail2ban-client get sshd maxretry

3

La valeur affichée 3 doit correspondre à ce que vous avez spécifié dans le fichier sshd.local.

Étape 6 : Test de la configuration de Fail2ban

Après avoir configuré fail2ban et créé un fichier de configuration de jail pour le service SSH, nous allons effectuer une série de tests et simuler 3 connexions ayant échoué en spécifiant un mot de passe incorrect pour chaque invite de mot de passe.

Rendez-vous donc sur un système Linux distant et essayez de vous connecter en utilisant le mauvais mot de passe. Après 3 tentatives infructueuses, la connexion sera interrompue et toute tentative ultérieure de reconnexion sera bloquée jusqu’à l’expiration de la durée du bannissement.

Pour obtenir des informations sur les systèmes clients bloqués, vérifiez l’état de la prison.

$ sudo fail2ban-client status sshd

Pour annuler le bannissement ou retirer le client de la prison, exécutez la commande :

$ sudo fail2ban-client unban 192.168.2.102

Encore une fois, vérifiez l’état du jail pour vous assurer que le client n’est pas inclus dans la liste des adresses IP interdites.

$ sudo fail2ban-client status sshd

Comme nous l’avons vu, Fail2ban est un outil très utile pour repousser les intrus cherchant à pénétrer dans votre système Linux. Il fonctionne en conjonction avec Firewalld pour bannir les systèmes clients pendant une durée spécifiée après un nombre spécifique de tentatives de connexion infructueuses. Ce faisant, il fournit une couche de protection supplémentaire pour votre serveur Linux.

Articles connexes: