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 :
- Un serveur Ubuntu 22.04
- 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.