Recherche de site Web

Installer et configurer Fail2ban sur CentOS 8 | RHEL8 |


Dans ce guide, nous verrons comment installer et configurer Fail2ban sur Centos 8 | RHEL 8. Fail2ban est un outil open source de détection et de prévention des intrusions qui recherche les adresses IP malveillantes dans les journaux d'accès qui montrent des signes de plusieurs tentatives de connexion par mot de passe ayant échoué. L'outil interdit ensuite les adresses IP en mettant à jour les règles de pare-feu pour rejeter les adresses IP.

Fail2ban peut être utilisé pour protéger différents services sur un système Linux, notamment sshd, wordpress access, postfix, etc.

Installez Fail2ban sur CentOS 8 | RHEL8

Vous devez installer le référentiel EPEL sur votre système CentOS/RHEL 8 pour obtenir le package Fail2ban.

sudo dnf -y install epel-release

Installez le package Fail2ban :

sudo dnf -y install fail2ban

Démarrer et activer Fail2ban

sudo systemctl start fail2ban
sudo systemctl enable fail2ban

Configurer Fail2ban sur CentOS 8 | RHEL8

Après une installation réussie, l'étape suivante consiste à configurer fail2ban.

Les fichiers de configuration Fail2ban résident dans le répertoire /etc/fail2ban/.

Le fichier de configuration principal est /etc/fail2ban/jail.conf. Les filtres sont stockés dans le répertoire /etc/fail2ban/filter.d/.

Il n'est pas recommandé d'apporter des modifications au fichier jail.conf car la configuration sera écrasée par celle des fichiers dans *.local.

La meilleure pratique consiste donc à créer un fichier séparé, jail.local qui contiendra nos configurations.

Configurons quelques valeurs par défaut dans le /etc/fail2ban/jail.local

sudo vi /etc/fail2ban/jail.local

Ajoutez les paramètres suivants :

[DEFAULT]
bantime  = 21600
findtime  = 300
maxretry = 3
banaction = iptables-multiport
backend = systemd
banaction_allports = iptables-allports

Une brève description des paramètres ci-dessus :

  • Bantime – La durée pendant laquelle l'adresse IP sera bannie en secondes
  • maxretry – le nombre de tentatives avant qu'un hôte ne soit banni
  • Findtime – fail2ban bannit l'hôte s'il a généré « maxretry » dans les dernières secondes de « findtime ».
  • banaction – le type d’action d’interdiction à mettre en œuvre
  • ignoreip – Vous pouvez spécifier les adresses IP qui seront ignorées par fail2ban
  • backend – le backend utilisé pour obtenir la modification du fichier journal.
  • Banaction_allports – Fail2ban bloque l'adresse IP distante sur chaque port

Configuration de prisons pour sécuriser SSH, Postfix et Dovecot

Dans cette section, nous verrons comment configurer les prisons Fail2ban pour SSH, Postfix et dovecot.

Dans le fichier /etc/fail2ban/jail.local, ajoutez les paramètres des services que vous souhaitez activer.

Pour SSH :

[ssh]
enabled  = true
port     = ssh
filter   = sshd
logpath  = /var/log/auth.log

Pour Postfix :

[postfix]
enabled  = true
port     = smtp,465,submission

Colombier :

[dovecot]
enabled = true
port    = pop3,pop3s,imap,imaps,submission,465,sieve

Postfix-SASL

[postfix-sasl]
enabled  = true
port     = smtp,465,submission,imap,imaps,pop3,pop3s

Dans la configuration ci-dessus, les attributs suivants ont été utilisés :

  • Enabled – peut être défini sur true ou false pour activer/désactiver le filtre.
  • Port : le port sur lequel le service est exécuté. Vous pouvez utiliser les noms du service si les ports utilisés sont ceux par défaut, sinon vous devez spécifier explicitement le numéro de port
  • Filtre – Le nom du fichier de filtre situé dans le répertoire /etc/fail2ban/filter.d/ qui contient les informations fileregex utilisées pour analyser les journaux.
  • Logpath : chemin d'accès aux journaux du service

Utiliser le client Fail2ban

Fail2ban-client est l'outil de ligne de commande utilisé pour exécuter Fail2ban à partir du shell.

L'utilisation générale est fail2ban-client

Vous trouverez ci-dessous une liste des commandes du client Fail2ban :

  • start : utilisé pour démarrer le serveur fail2ban et les prisons
  • reload : utilisé pour recharger la configuration Fail2ban
  • stop : arrête le serveur
  • statut : utilisé pour vérifier l'état du serveur et activer les prisons
  • status JAIL : Affiche l'état des prisons et les IP actuellement bannies

Exemples:

  1. Statut du client Fail2ban
$ sudo fail2ban-client status
Status
|- Number of jail:	6
`- Jail list:	dovecot, postfix, postfix-sasl, proftpd, sshd, webmin-auth

2. Statut du client Fail2ban sshd

$ sudo fail2ban-client status sshd
Status for the jail: sshd
|- Filter
|  |- Currently failed:	0
|  |- Total failed:	22
|  `- Journal matches:	_SYSTEMD_UNIT=sshd.service + _COMM=sshd
`- Actions
   |- Currently banned:	0
   |- Total banned:	4
   `- Banned IP list:	

3. IP interdites :

Pour supprimer une IP d'une prison, vous pouvez le faire via la commande suivante :

$ sudo fail2ban-client set <jailname> unbanip <IP>

Exemple :

$ sudo fail2ban-client set sshd unbanip 192.168.100.12

Dans l'exemple ci-dessus, nous avons supprimé l'IP 192.168.100.12 de la prison sshd.

Conclusion

Nous avons parcouru un guide sur la façon de configurer Fail2ban sur CentOS/RHEL 8. L'outil est utile pour la détection des intrusions et la prévention des attaques telles que la force brute sur un système RHEL/CentOS 8.

Consultez d’autres articles connexes sur notre site Web ;

  • Automatisez les opérations de tests d’intrusion avec Infection Monkey
  • Faraday – IDE de tests d’intrusion et plateforme de gestion des vulnérabilités

Articles connexes: