GNU/Linux >> Tutoriels Linux >  >> Cent OS

Comment installer et utiliser Fail2ban sur RHEL 8 / CentOS 8

En tête de liste de chaque équipe d'opérations informatiques, il faut s'assurer que les serveurs sont protégés contre les utilisateurs non autorisés ou les scripts malveillants. Il existe un certain nombre de solutions que vous pouvez appliquer pour parer aux attaques et aux violations. Parmi eux, l'implémentation de l'outil logiciel Fail2ban.

Fail2ban est une mesure de détection d'intrusion open source qui atténue les attaques par force brute qui ciblent divers services tels que SSH et VSFTPD pour n'en citer que quelques-uns. Il est livré avec un ensemble de filtres, y compris SSH, que vous pouvez personnaliser pour mettre à jour les règles du pare-feu et bloquer les tentatives de connexion SSH non autorisées.

L'utilitaire fail2ban surveille les fichiers journaux du serveur pour toute tentative d'intrusion et bloque l'adresse IP de l'utilisateur après un nombre prédéfini de tentatives infructueuses pendant une durée spécifiée. L'adresse IP de l'utilisateur est placée dans une « prison » qui peut être définie, activée ou désactivée dans le fichier de configuration /etc/fail2ban/jail.conf. De cette façon, il aide à sécuriser votre serveur Linux contre les accès non autorisés, et plus particulièrement contre les botnets et les scripts malveillants.

Qu'est-ce qu'une prison ? Une prison est composée des éléments clés suivants :

  • Le fichier journal à analyser.
  • Filtres à appliquer sur le fichier journal.
  • L'action à entreprendre lorsque le filtre correspond
  • Paramètres supplémentaires pour préciser le type de correspondances. Par exemple, maxtry (essai maximum) et bantime (temps d'interdiction) etc.

Dans ce tutoriel, nous vous guiderons à travers l'installation et la configuration de Fail2ban sur RHEL 8 / CentOS 8.

Étape 1) Installer le référentiel EPEL

Tout d'abord, connectez-vous à votre serveur et installez le package EPEL (Extra Package for Enterprise Linux) comme suit.

Pour CentOS 8

$ sudo dnf install -y epel-release

Pour RHEL 8

$ sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm -y

Étape 2) Installer Fail2ban

Pour installer Fail2ban, exécutez la commande simple ci-dessous :

$ sudo dnf install -y fail2ban

Étape 3) Configuration de Fail2ban

De par sa conception, fail2ban analyse les fichiers journaux et tente de faire correspondre le failregex spécifié dans les filtres. Les filtres détectent les tentatives d'authentification ayant échoué pour un service spécifique, par exemple, les tentatives de connexion SSH à l'aide d'expressions régulières - regex. Lorsque le nombre maximal de "maxtry" est atteint dans les entrées du journal, une action est déclenchée.

Par défaut, cela se produit après 3 tentatives d'authentification infructueuses et l'utilisateur est banni ou mis en « prison » pendant 10 minutes. Ces paramètres peuvent facilement être configurés dans le fichier /etc/fail2ban/jail.conf qui est le fichier de configuration global.

Tous les fichiers de configuration importants se trouvent dans le répertoire /etc/fail2ban/.

Les filtres sont stockés dans le répertoire /etc/fail2ban/filter.d. Il existe des dizaines de filtres pour divers services, notamment SSH, Webmin, postfix et bien plus encore.

/etc/fail2ban/jail.conf est le fichier de configuration principal. Cependant, il n'est pas recommandé de modifier directement ce fichier, car comme le précise le fichier, les configurations sont susceptibles d'être écrasées ou améliorées lors d'une mise à jour ultérieure de la distribution.

Une solution consiste à créer un fichier jail.local dans le répertoire /etc/fail2ban/jail.d et à ajouter vos configurations personnalisées pour les services que vous souhaitez sécuriser.

REMARQUE :Les paramètres définis dans le fichier jail.local remplaceront le fichier jail.conf. Ce qui rend encore plus préférable de laisser le fichier de configuration principal intact.

À des fins de démonstration, nous allons créer un fichier jail qui sécurisera les connexions SSH.

$ sudo vim /etc/fail2ban/jail.local

Voici l'exemple de fichier de configuration.

[DEFAULT]
ignoreip = 192.168.2.105
bantime  = 86400
findtime  = 300
maxretry = 3
banaction = iptables-multiport
backend = systemd
[sshd]
enabled = true

Décomposons les paramètres et voyons ce qu'ils représentent.

  • ignoreip : définit une liste d'adresses IP ou de noms de domaine qui ne doivent pas être interdits.
  • bantime - Comme son nom l'indique, cela spécifie la durée pendant laquelle un hôte distant est banni en secondes.
  • maxretry - Il s'agit du nombre de tentatives de connexion infructueuses avant que l'hôte ne soit bloqué/banni.
  • findtime - Durée en secondes pendant laquelle un hôte sera bloqué après avoir atteint le nombre maximal de tentatives.
  • banaction – L'action de bannissement.
  • backend :le système utilisé pour récupérer les fichiers journaux

Notre configuration implique ce qui suit :

Lorsqu'une adresse IP enregistre 3 tentatives d'authentification infructueuses au cours des 5 dernières minutes, elle sera bannie pendant 24 heures à l'exception d'un hôte avec IP 192.168.2.105.

Enregistrez et quittez le fichier de configuration.

Étape 4) Démarrez et activez Fail2ban

Une fois la configuration du fichier jail pour SSH terminée, nous allons démarrer et activer fail2ban au démarrage. Généralement, le service ne s'exécute pas lors de l'installation

Pour démarrer et activer fail2ban, exécutez la commande :

$ sudo systemctl start fail2ban
$ sudo systemctl enable fail2ban

Pour révéler l'état de fail2ban, appelez la commande ci-dessous :

$ sudo systemctl status fail2ban

Cette fois-ci, nous pouvons observer que fail2ban fonctionne comme prévu.

Continuons maintenant et voyons comment Fail2ban fonctionne.

Étape 4) Fail2ban en action

Allons maintenant un peu plus loin et voyons Fail2ban en action. Pour garder un œil sur les adresses IP interdites, l'utilitaire fail2ban-client est très pratique. Par exemple, pour obtenir le statut de la prison ssh, exécutez la commande :

$ sudo fail2ban-client status sshd

Pour le moment, il n'y a pas d'entrées IP interdites car nous ne nous sommes pas encore connectés à distance au serveur.

Nous allons essayer de nous connecter à partir du client mastic SSH à partir d'un PC Windows avec une adresse IP différente de celle spécifiée dans le fichier de configuration jail.local.

À partir de la sortie, nous pouvons clairement voir que nous ne pouvons pas accéder au serveur. Lorsque nous vérifions à nouveau l'état, nous constatons qu'une adresse IP a été bannie, comme indiqué.

Pour retirer l'IP de la liste des bannissements, débannissez-la comme suit.

$ sudo fail2ban-client unban 192.168.2.101

Pour recueillir plus d'informations sur les règles et politiques de fail2ban, visitez les pages de manuel jail.conf comme indiqué

$ man jail.conf

Un commentaire ou une réaction? N'hésitez pas à nous contacter et nous vous répondrons.

Lire aussi  :12 exemples de commandes IP pour les utilisateurs Linux


Cent OS
  1. Comment installer et utiliser PHP Composer sur CentOS 7

  2. Comment installer et utiliser ifconfig sur CentOS 7

  3. Comment installer et configurer samba sur RHEL 8 / CentOS 8

  4. Comment installer le fichier bin dans RHEL 8 / CentOS 8 Linux

  5. Comment installer Fail2Ban sur CentOS 7

Comment installer et utiliser Cockpit sur CentOS 8 / RHEL 8

Comment installer et utiliser Terraform sur CentOS 8

Comment installer et utiliser Firewalld dans CentOS / RHEL

Comment installer et configurer Fail2ban sur CentOS 8

Comment installer et utiliser TermRecord sur CentOS 8

Comment installer et utiliser Traceroute sur CentOS 7