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 nombre spécifié de tentatives de saisie d'un mot de passe incorrect, l'adresse IP du client est interdite d'accès 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 provenant 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, Rocky est livré avec Firewalld 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

Puis activez-le pour démarrer 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 de Firewalld actuellement appliquées à l'aide de la commande :

sudo firewall-cmd --list-all

Étape 2 : Installer EPEL dans Rocky Linux

Comme condition préalable à l'installation de fail2ban et d'autres packages requis, vous devez installer le référentiel EPEL qui fournit des packages supplémentaires de haute qualité pour les distributions basées sur RHEL.

sudo dnf install epel-release

Étape 3 : Installez Fail2ban dans Rocky Linux

Une fois EPEL installé, continuez et installez fail2ban et le package 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 éditerions le fichier de configuration principal – /etc/fail2ban/jail.conf. Cependant, cela est déconseillé. Pour contourner le 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 à des tentatives d'authentification infructueuses.
  • 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 correspond au nombre maximum de tentatives de mot de passe incorrectes avant que le client distant ne puisse accéder au serveur. Ici, le client sera verrouillé après 5 échecs d'authentification.

Par défaut, fail2ban fonctionne avec iptables. Cependant, cela a été déconseillé au profit du pare-feu. Nous devons configurer fail2ban pour qu'il fonctionne avec firewalld au lieu d'iptables.

Alors lancez-vous 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 jusqu'à ce que vous ayez activé la configuration 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 jail SSH.

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

Collez ensuite 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 ne pourra plus accéder 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 du résultat, nous pouvons voir que nous avons 1 prison configurée pour un service appelé « sshd ».

De plus, vous pouvez confirmer la valeur maxretry de la prison sshd en utilisant l'option get.

sudo fail2ban-client get sshd maxretry

3

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

Étape 6 : Test de la configuration Fail2ban

Après avoir configuré fail2ban et créé un fichier de configuration jail pour le service SSH, nous allons effectuer un test et simuler 3 échecs de connexion 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 un mauvais mot de passe. Après 3 tentatives infructueuses, la connexion sera interrompue et toute tentative de reconnexion ultérieure sera bloquée jusqu'à l'expiration de la durée de l'interdiction.

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

sudo fail2ban-client status sshd

Pour débannir ou supprimer le client de la prison, exécutez la commande :

sudo fail2ban-client unban 192.168.2.102

Encore une fois, vérifiez l'état de la prison 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 à pirater votre système Linux. Il fonctionne conjointement avec Firewalld pour interdire 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.