Dans l’univers numérique actuel, la sécurisation de votre serveur contre les tentatives de connexion malveillantes et les attaques par force brute est d’une importance primordiale. Un outil efficace pour les serveurs Linux est Fail2ban, un logiciel gratuit et open-source de prévention des intrusions (IPS). Fail2ban est écrit en Python et offre des filtres pour divers services tels que Apache2, SSH, FTP, et plus encore.

Prérequis

Avant de plonger dans le processus d’installation, assurez-vous que vous disposez des prérequis suivants :

  1. Un serveur Ubuntu 22.04
  2. Un utilisateur non-root avec des privilèges sudo

Mise en place du pare-feu UFW

Avant d’installer Fail2ban, il est essentiel de mettre en place le pare-feu UFW sur votre serveur Ubuntu. Le pare-feu UFW est le pare-feu par défaut pour Ubuntu, offrant une interface conviviale pour la gestion des règles de pare-feu.

Pour vérifier l’état de votre pare-feu UFW, exécutez la commande suivante :

sudo ufw status

Si l’état est affiché comme “inactif”, cela signifie que votre pare-feu UFW n’est pas encore démarré. Dans ce cas, vous pouvez l’installer en exécutant la commande suivante :

sudo apt install ufw -y

Une fois l’installation terminée, vous pouvez ajouter le service SSH au pare-feu UFW en utilisant la commande :

sudo ufw allow ssh

Pour démarrer et activer le pare-feu UFW, utilisez la commande suivante :

sudo ufw enable

Confirmez votre action en tapant “y” et en appuyant sur Entrée. Vous pouvez ensuite vérifier l’état du pare-feu UFW en exécutant :

sudo ufw status

Vous devriez voir un message indiquant “Status: active” avec le port SSH 22 ajouté aux règles du pare-feu.

Installation de Fail2ban sur Ubuntu 22.04

Maintenant que le pare-feu UFW est configuré, vous pouvez procéder à l’installation de Fail2ban. Commencez par mettre à jour et rafraîchir votre dépôt Ubuntu :

sudo apt update

Une fois la mise à jour terminée, installez le paquet Fail2ban en exécutant la commande suivante :

sudo apt install fail2ban -y

Après la fin de l’installation, activez et démarrez le service Fail2ban avec les commandes suivantes :

sudo systemctl enable fail2ban
sudo systemctl start fail2ban

Pour vérifier l’état du service Fail2ban, utilisez la commande :

sudo systemctl status fail2ban

Vous devriez voir un message indiquant que le service Fail2ban est en cours d’exécution sur votre serveur Ubuntu 22.04.

Configuration de Fail2ban

Avec Fail2ban installé avec succès, il est temps de configurer le logiciel pour répondre à vos besoins spécifiques. Tous les fichiers de configuration de Fail2ban sont stockés dans le répertoire /etc/fail2ban. Examinons les principaux fichiers de configuration et paramètres.

  • fail2ban.conf : Le fichier de configuration principal de Fail2ban.
  • jail.conf : Un exemple de configuration de la prison Fail2ban.
  • action.d : Contient les paramètres d’action de Fail2ban, tels que les paramètres de messagerie et de pare-feu.
  • jail.d : Contient une configuration supplémentaire pour les prisons Fail2ban.

Pour commencer le processus de configuration, faites une copie du fichier de configuration de prison par défaut (jail.conf) et nommez-le jail.local :

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

Ensuite, ouvrez le fichier de configuration jail.local à l’aide de l’éditeur nano :

sudo nano /etc/fail2ban/jail.local

À l’intérieur de ce fichier, vous pouvez effectuer divers ajustements pour personnaliser Fail2ban selon vos besoins. Examinons certaines configurations importantes que vous devriez envisager.

Liste blanche d’IP

En décommentant l’option ignoreip et en ajoutant votre adresse IP, vous pouvez vous assurer que Fail2ban ne bloquera pas votre propre IP. Par exemple :

ignoreip = 127.0.0.1/8::1 192.168.1.0/24 192.168.10.20

Remplacez les adresses IP d’exemple par les vôtres.

Paramètres de bannissement

Vous pouvez personnaliser les paramètres de bannissement pour répondre à vos besoins. Par exemple, vous pouvez ajuster les options bantime, findtime, et maxretry. Voici une configuration d’exemple :

bantime = 1d
findtime=  10m
maxretry = 5

Dans cet exemple, le bantime est réglé sur 1 jour, le findtime est réglé sur 10 minutes, et le maxretry est réglé sur 5 tentatives.

Notification par courrier électronique

Fail2ban peut être configuré pour envoyer des notifications par courrier électronique chaque fois qu’une adresse IP est bannie. Pour activer cette fonctionnalité, modifiez l’option action dans le fichier de configuration. Vous pouvez également spécifier les adresses de courrier électronique de l’expéditeur et du destinataire :

action = %(action_mw)s
destemail = test@example.com
sender= test@example.com

Remplacez les adresses électroniques d’exemple par les vôtres.

Intégration du pare-feu

Fail2ban prend en charge plusieurs backends de pare-feu, y compris iptables, UFW, et firewalld. Pour intégrer Fail2ban avec UFW, changez l’option banaction en ufw :

banaction = ufw

Configuration des prisons

La section des prisons dans le fichier de configuration vous permet de sécuriser des services spécifiques en utilisant Fail2ban. Par exemple, pour activer la prison SSH, utilisez la configuration suivante :

[sshd]
enabled = true
maxretry = 3
findtime = 1d
bantime = 1w
port = ssh
logpath = %(sshd_log)s
backend = %(sshd_backend)s

Dans cet exemple, la prison SSH est activée, avec un nombre maximum de tentatives de 3, un findtime de 1 jour, et un bantime de 1 semaine.

Enregistrez et fermez le fichier de configuration lorsque vous avez terminé. Pour appliquer les modifications, redémarrez le service Fail2ban :

sudo systemctl restart fail2ban

Vérification de l’état de Fail2ban à l’aide de fail2ban-client

L’outil en ligne de commande fail2ban-client vous permet d’interagir avec le service Fail2ban et de gérer ses prisons. Vous pouvez utiliser cet outil pour vérifier l’installation et la configuration de Fail2ban.

Pour vérifier si Fail2ban fonctionne sans erreurs, faites un ping au serveur Fail2ban :

sudo fail2ban-client ping

Si le serveur répond par “pong”, cela signifie que Fail2ban fonctionne correctement.

Pour afficher l’état d’une prison spécifique, comme la prison SSH, utilisez la commande suivante :

sudo fail2ban-client status sshd

Cette commande fournit des informations détaillées sur la prison, y compris le fichier journal pour le service et la liste des adresses IP bannies.

Vous pouvez également utiliser la commande fail2ban-client pour récupérer des valeurs de configuration spécifiques. Par exemple, pour vérifier la configuration bantime pour la prison SSH, utilisez :

sudo fail2ban-clientget sshd bantime

La sortie affichera la valeur bantime en secondes.

De même, vous pouvez récupérer d’autres valeurs de configuration telles que maxretry, banaction, findtime, et ignoreip en utilisant les commandes appropriées de fail2ban-client.

Bannissement et débannissement des adresses IP

L’une des caractéristiques les plus importantes de Fail2ban est la possibilité de bannir et de débannir des adresses IP. Vous pouvez également utiliser la commande fail2ban-client pour ces opérations.

Pour bannir manuellement une adresse IP dans la prison SSH, utilisez la commande suivante :

sudo fail2ban-client set sshd banip ADRESSE-IP

Remplacez “ADRESSE-IP” par l’adresse IP réelle que vous souhaitez bannir.

Pour débannir une adresse IP de la prison SSH, utilisez la commande :

sudo fail2ban-client set sshd unbanip ADRESSE-IP

Encore une fois, remplacez “ADRESSE-IP” par l’adresse IP que vous souhaitez débannir.

Pour vérifier si une adresse IP a été bannie ou débannie avec succès, utilisez la commande suivante :

sudo fail2ban-client status sshd

Assurez-vous que l’adresse IP apparaît dans la liste des adresses IP bannies lors du bannissement, et disparaît lors du débannissement.

Pour des solutions d’hébergement cloud fiables et évolutives, envisagez les services Linux SSD VPS de Shape.host. Avec Shape.host, vous pouvez vous concentrer sur votre entreprise tout en confiant la sécurité et les performances de votre serveur à un fournisseur d’hébergement cloud fiable.