Comment protéger votre serveur avec Fail2Ban sous Linux

La sécurité des serveurs est une priorité absolue pour toute entreprise ou organisation. Fail2Ban est l'un des outils les plus importants de la boîte à outils d'un administrateur système. Ce guide explique ce qu'est Fail2Ban et comment vous pouvez protéger votre serveur avec Fail2Ban dans votre Linux contre les attaques.

Comment protéger votre serveur avec Fail2Ban sous Linux - %categories

Qu'est-ce que Fail2Ban ?

Fail2Ban est un outil de prévention des intrusions qui surveille les fichiers journaux et bloque les adresses IP qui montrent des signes d'activité malveillante. Pour ce faire, il crée des "filtres" qui correspondent à certains modèles dans les fichiers journaux et effectuent des actions, telles que le blocage de l'adresse IP incriminée.

Pourquoi utiliser Fail2Ban sous Linux ?

Il existe plusieurs raisons d'utiliser Fail2Ban sous Linux. peut être:

  • Il vous fait gagner du temps en bloquant automatiquement les adresses IP malveillantes.
  • Sécurisez votre serveur en réduisant les chances de réussite d'une attaque.
  • Cela vous donne la tranquillité d'esprit de savoir que votre serveur est surveillé et protégé.

Installer Fail2Ban sous Linux

Par défaut, Fail2Ban est disponible dans les référentiels Ubuntu. Installez-le en utilisant apt.

sudo add-apt-repository univers sudo apt update && sudo apt install fail2ban -y

Comment protéger votre serveur avec Fail2Ban sous Linux - %categories

Fail2Ban définira son service en arrière-plan, mais systemd le désactivera par défaut. Vous pouvez le démarrer et l'activer avec les commandes suivantes :

sudo systemctl démarrer fail2ban sudo systemctl activer fail2ban

Vérifiez que Fail2Ban est en cours d'exécution avec la commande suivante :

état sudo systemctl fail2ban

Vous verrez une sortie similaire à l'image ci-dessous.

Comment protéger votre serveur avec Fail2Ban sous Linux - %categories

Configurer Fail2Ban sous Linux

Le répertoire « /etc/fail2ban » contient les fichiers de configuration de Fail2Ban. Par défaut, Fail2Ban est livré avec un fichier "jail.conf" qui contient des paramètres qui seront appliqués à tous les services.

Comment protéger votre serveur avec Fail2Ban sous Linux - %categories

Cependant, il est recommandé de créer un fichier local "jail.local" et de remplacer les paramètres dans "jail.conf", car toute modification apportée à "jail.conf" sera perdue à chaque mise à jour du logiciel.

Vous pouvez créer votre fichier « jail.local » avec les commandes suivantes :

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

Ouvrez le fichier jail.local pour le modifier :

sudo nano /etc/fail2ban/jail.local

Comment protéger votre serveur avec Fail2Ban sous Linux - %categories

Bon à savoir : apprenez Comment activer les connexions d'entrée via SSH sans mot de passe sur un système LINUX.

Explorer le fichier jail.local

Vous verrez une sortie similaire à celle illustrée ci-dessous et vous serez peut-être dépassé par le nombre d'options disponibles. Mais ne vous inquiétez pas, nous vous expliquons les options les plus importantes.

Comment protéger votre serveur avec Fail2Ban sous Linux - %categories

Vous verrez une icône "#" en début de ligne, indiquant qu'il s'agit d'un commentaire. Fail2Ban les utilise pour expliquer ce que fait un paramètre particulier. Vous pouvez activer certains paramètres ici en supprimant cette icône.

La section contient "[DÉFAUT]" sur les options applicables à toutes les prisons. C'est la configuration générale de Fail2Ban. La capture d'écran suivante montre un exemple.

Comment protéger votre serveur avec Fail2Ban sous Linux - %categories

Il existe également d'autres sections qui commencent par le nom du service. Cette prison s'applique à un service spécifique au-dessus des prisons du monde.

Lisez aussi:  J'ai fait croire à mes amis que j'étais un hacker Linux avec ces 5 commandes amusantes

Par exemple, il y a une section pour une prison "sshd". Cette section contient les options du service sshd.

Comment protéger votre serveur avec Fail2Ban sous Linux - %categories

Conseil : Vous pouvez également en savoir plus sur le renforcement des serveurs en Sécurisez votre serveur SSH.

Activer la fonctionnalité d'interdiction automatique

Aller au réglage "temps ban = 1het supprimer le code "#" au début de la ligne pour l'activer. Cette ligne définit le temps que prendra Fail2Ban pour désactiver l'adresse IP. L'unité par défaut est XNUMX heure. Vous pouvez également utiliser d'autres unités, telles que les minutes (M) ou jours (D) voire des semaines (w).

Comment protéger votre serveur avec Fail2Ban sous Linux - %categories

Vous pouvez augmenter ou diminuer cette valeur comme bon vous semble. Par exemple, vous pouvez modifier cette valeur à 30 mètres pour réduire la durée du blocage à 30 minutes.

Comment protéger votre serveur avec Fail2Ban sous Linux - %categories

Modifier la longueur par défaut de la fenêtre d'enregistrement Entrée

Les paramètres suivants sont "maxretry" et "findtime". Ils limitent le nombre de tentatives d'enregistrement Entrée qu'un attaquant peut effectuer avant que Fail2Ban ne bloque son adresse IP.

Les valeurs par défaut pour "maxretry" et "findtime" sont 5 et 10 m. Si une adresse IP ne parvient pas à s'authentifier cinq fois en dix minutes, Fail2Ban la bloquera pendant la durée spécifiée par le paramètre bantime.

Comment protéger votre serveur avec Fail2Ban sous Linux - %categories

Vous pouvez modifier ces valeurs comme bon vous semble. Par exemple, vous pouvez définir "maxretry" sur 3 et "findtime" sur 5m : Fail2Ban désactivera une adresse IP si elle ne parvient pas à s'authentifier trois fois en cinq minutes.

Comment protéger votre serveur avec Fail2Ban sous Linux - %categories

Activer la fonctionnalité de notification Fail2Ban sous Linux

Les paramètres suivants sont destemail, sendername et mta. Ces paramètres sont ce que Fail2Ban utilisera pour configurer les notifications par e-mail.

  • Le paramètre e-mail est l'adresse e-mail à laquelle le programme enverra ses notifications.
  • Le nom de l'expéditeur est le nom qui apparaîtra dans le champ De de l'e-mail de notification.
  • mta est l'agent de transfert de courrier que Fail2Ban utilisera pour envoyer des e-mails. mta par défaut est sendmail , mais vous pouvez le changer en quelque chose d'autre comme mail.

Si vous souhaitez recevoir des notifications par e-mail, vous devez décommenter ces lignes et saisir les valeurs appropriées, comme indiqué.

Comment protéger votre serveur avec Fail2Ban sous Linux - %categories

Lorsqu'une interdiction se produit, vous recevrez une notification par e-mail avec des détails sur l'interdiction, comme indiqué.

Comment protéger votre serveur avec Fail2Ban sous Linux - %categories

Créer des commandes en bloc personnalisées

Le paramètre suivant est "action_=". Ceci spécifie l'action que Fail2ban prend lorsqu'il bloque une adresse IP. La valeur par défaut consiste à utiliser iptables pour bloquer l'adresse IP jusqu'à l'expiration du "bantime".

Vous pouvez également utiliser d'autres procédures, comme indiqué ci-dessous. Ce didacticiel s'en tient au paramètre par défaut pour des raisons de simplicité.

  • action_mw : Envoie une notification par e-mail lorsqu'une adresse IP est bloquée, ainsi que les informations WHOIS pertinentes.
  • action_mwl : Envoie une notification par e-mail lorsqu'une adresse IP est bloquée, ainsi que les informations WHOIS pertinentes et les entrées du fichier journal qui ont conduit au blocage.
  • action_xarf : Envoie une notification par e-mail X-ARF lorsqu'une adresse IP est bloquée avec les entrées du fichier journal qui ont déclenché le blocage.
Lisez aussi:  Comment installer et configurer PipeWire sous Linux

De nombreuses autres procédures sont disponibles, mais il est impossible de toutes les couvrir dans ce tutoriel. Vous pouvez Découvrez toutes les procédures disponibles Dans la documentation Fail2ban.

Comment protéger votre serveur avec Fail2Ban sous Linux - %categories

Activer la configuration du service

Outre la configuration du comportement par défaut de Fail2ban, il est également possible d'utiliser des fichiers de filtre prédéfinis pour certains services Internet populaires. Ce sont de petits fichiers écrits par les développeurs pour rechercher des sorties de journal spécifiques pour un serveur particulier.

Par exemple, le fichier « apache-shellshock.conf » contient tous les paramètres nécessaires pour permettre à Fail2ban de vérifier toute tentative malveillante de générer une erreur shellshock.

Comment protéger votre serveur avec Fail2Ban sous Linux - %categories

Vous pouvez trouver tous les fichiers de filtre disponibles pour votre système en listant le répertoire "/etc/fail2ban/filter.d":

ls /etc/fail2ban/filter.d

Comment protéger votre serveur avec Fail2Ban sous Linux - %categories

Une fois que vous connaissez les filtres que vous souhaitez utiliser, dites à Fail2ban de les charger au démarrage en ouvrant votre fichier « jail.local » :

sudo nano /etc/fail2ban/jail.local

Créez un espace dans "jail.local" où vous pourrez activer vos nouveaux filtres. Je crée le mien entre le titre du commentaire et le bloc [INCLUDES].

Comment protéger votre serveur avec Fail2Ban sous Linux - %categories

Ajoutez les filtres que vous souhaitez activer. Par exemple, voici un extrait que j'utilise dans ma configuration :

# Commentaires : utilisez '#' pour les lignes de commentaire et ';' (après un espace) pour les commentaires en ligne [sshd] activé = vrai [nginx-bad-request] activé = vrai [bitwarden] activé = vrai [INCLUDES]

Comment protéger votre serveur avec Fail2Ban sous Linux - %categories

Une fois terminé, enregistrez et fermez le fichier. Redémarrez fail2ban pour appliquer les modifications.

sudo systemctl redémarrer fail2ban

Testez votre configuration

Maintenant que vous avez configuré Fail2Ban sous Linux, il est temps de le tester.

La façon la plus simple de tester votre configuration est d'essayer votre entrée avec un mot de passe incorrect plusieurs fois de suite. Vous pouvez utiliser une connexion SSH pour ce faire.

Sur la machine d'élimination, essayez de vous connecter en SSH à votre serveur Fail2ban en utilisant le nom d'utilisateur "admin". Remplacez "your_server_ip_address" par l'adresse IP réelle de votre serveur Fail2ban.

ssh admin@votre_adresse_ip_serveur

Entrez un mot de passe aléatoire lorsque vous y êtes invité et répétez-le plusieurs fois. Après plusieurs tentatives, vous verrez un message indiquant que le serveur a rejeté votre tentative de connexion.

Comment protéger votre serveur avec Fail2Ban sous Linux - %categories

Outre l'utilisation de ssh, vous pouvez également tester d'autres fichiers de filtre dans Fail2ban en exécutant Fail Status. Dans mon cas, j'utilise le filtre "nginx-bad-request" qui détecte si un hôte inonde le serveur de requêtes invalides.

Lisez aussi:  Comment créer un fichier texte sous Linux

Comment protéger votre serveur avec Fail2Ban sous Linux - %categories

Sachant cela, vous pouvez tester cette fonctionnalité en envoyant intentionnellement des requêtes vides à votre serveur Web à l'aide de curl :

curl -H "User-Agent :" -H "Hôte :" https://votresiteweb.com -v

Comment protéger votre serveur avec Fail2Ban sous Linux - %categories

Vérification des routines Fail2Ban sous Linux

Enfin, exécutez la commande suivante sur le serveur Fail2ban pour vérifier que fail2ban a ajouté les règles nécessaires à iptables.

La commande grep filtre la sortie de la commande iptables. L'option -S indique à iptables d'imprimer les règles dans un format facilement analysable.

sudo iptables-S | grep f2b

Vous verrez une sortie similaire à l'image ci-dessous. L'argument « –reject-with icmp-port-unreachable » indique à iptables d'envoyer un message indiquant que le port ICMP est inaccessible au client lorsqu'il tente de se connecter. Vous pouvez également voir les adresses IP des appareils que le serveur a bloqués.

Comment protéger votre serveur avec Fail2Ban sous Linux - %categories

Astuce : Vous devez également utiliser SELinux pour sécuriser votre serveur Linux.

Foire Aux Questions

Q1 : Pourquoi est-ce que je reçois une notification par e-mail vide lorsque Fail2ban bloque une adresse IP ?
Répondre: Si vous recevez une notification par e-mail vide, il est probable que vous n'ayez pas correctement configuré votre serveur de messagerie. Vérifiez la configuration de votre serveur de messagerie et assurez-vous qu'il peut envoyer des e-mails.

Q2 : Comment puis-je débloquer une adresse IP ?
Répondre: Tout d'abord, recherchez la prison où l'adresse IP est actuellement bloquée : sudo fail2ban-client status , puis débloquez l'adresse IP en exécutant la commande suivante : sudo fail2ban-client set décoincer .

Q3 : Comment afficher le fichier journal fail2ban ?
Répondre: Vous pouvez consulter le fichier journal fail2ban pour résoudre des problèmes ou pour savoir pourquoi l'adresse IP a été bloquée. Le fichier « /var/log/fail2ban.log » contient tous les logs générés par fail2ban. Utilisez la commande cat pour afficher le fichier journal fail2ban : cat /var/log/fail2ban.log.

Q4 : J'ai activé plusieurs fichiers de filtre. Pourquoi ne fonctionnent-ils pas tous ?
Répondre: Ce problème se produit très probablement parce qu'un filtre écrase un autre fichier qui l'a précédé. Une façon de résoudre ce problème consiste à créer votre propre fichier de filtre en combinant plusieurs filtres ensemble.

Q5 : Fail2ban protégera-t-il mon serveur d'une attaque DoS ?
Répondre: Oui et non. Dans la plupart des cas, Fail2ban pourra bloquer toute adresse IP qui envoie des requêtes invalides à votre serveur. Cependant, l'une des plus grandes limitations de ce programme est qu'il ne peut pas agir sur des événements qui ne produisent pas d'entrée de journal. En tant que tel, il est toujours important de sécuriser votre serveur Linux à l'aide d'autres outils pour ces formes d'attaques.

Vous pourriez l'aimer aussi