Ne manquez pas nos offres limitées !
In this article

Comment sécuriser votre serveur Linux avec la configuration Fail2Ban

Comment sécuriser votre serveur Linux avec la configuration Fail2Ban

Fail2Ban est sans doute le meilleur logiciel pour sécuriser un serveur Linux et le protéger contre les attaques automatisées. Lorsqu’il est activé, il offre de nombreuses règles personnalisables pour interdire les adresses sources qui pourraient tenter d’accéder à votre machine. Fail2Ban fonctionnant en parallèle avec un pare-feu, nous vous recommandons de les installer et de les activer en tant que couches de sécurité distinctes.

Dans cet article, nous expliquerons ce qu’est Fail2Ban et ses cas d’utilisation. Nous vous montrerons également comment installer et configurer Fail2Ban.

Qu’est-ce que Fail2Ban et à quoi sert-il ?

Fail2Ban est une application d’analyse de journaux qui protège les serveurs virtuels Linux contre de nombreuses menaces de sécurité, telles que les attaques par dictionnaire, DoS, DDoS et par force brute. Il surveille les journaux système à la recherche d’activités malveillantes et analyse les fichiers à la recherche d’entrées correspondant à des modèles identifiés.

Si Fail2Ban détecte un pic de tentatives de connexion infructueuses, il ajoutera automatiquement de nouvelles règles de pare-feu à votre iptables et bloquera l’adresse source pendant une durée déterminée ou indéfiniment.

L’installation de Fail2Ban permet aux propriétaires de serveurs de limiter automatiquement toute activité illégitime. Il les alerte également par courrier électronique lorsqu’une attaque se produit.

Un outil similaire à Fail2Ban est Suricata, un système de détection et de prévention des intrusions (IDS/IPS). Au lieu d’effectuer des tentatives de connexion, cet outil surveille votre réseau VPS et avertit les utilisateurs du trafic potentiellement malveillant.

Si vous souhaitez configurer l’outil, consultez notre autre tutoriel pour apprendre comment installer Suricata sur Ubuntu.

Comment installer Fail2Ban

Pour installer le service Fail2Ban, connectez-vous à votre serveur avec un accès root en utilisant un client SSH comme Terminal (macOS et Linux) ou PuTTY (Windows).

Ubuntu :

Voici comment installer Fail2Ban sur Ubuntu :

  1. Avant d’installer un nouveau paquet, il est recommandé de mettre à jour le référentiel et le logiciel du système. Exécutez la commande suivante :
apt-get update && apt-get upgrade
  1. Installez le package Fail2Ban en exécutant la commande ci-dessous :
apt-get install fail2ban
  1. Si vous souhaitez ajouter la prise en charge du courrier électronique pour le service Fail2Ban, insérez la commande suivante et appuyez sur Entrée :
apt-get install sendmail
  1. Vérifiez l’état de Fail2Ban à l’aide de la commande suivante :
sudo systemctl status fail2ban

Les clients Hostinger VPS peuvent également utiliser l’assistant IA Kodee pour confirmer l’état de Fail2ban après l’installation. Accédez-y via la barre latérale gauche de votre tableau de bord VPS et posez-lui une question comme dans l’exemple suivant :

Kodee répond à une question sur le statut de Fail2ban

Vous pouvez également demander à Kodee de redémarrer Fail2Ban en saisissant simplement : « Redémarrer Fail2Ban sur mon VPS. »

CentOS :

Suivez ces étapes pour installer Fail2Ban sur CentOS :

  1. Fail2Ban pour CentOS7 est inclus dans le dépôt Extra Packages for Enterprise Linux (EPEL). Téléchargez-le en exécutant la commande ci-dessous :
sudo yum install epel-release
  1. Une fois cela fait, installez Fail2Ban en entrant la commande suivante et en appuyant sur Entrée :
sudo yum install fail2ban
  1. Activez et démarrez le service en exécutant les commandes suivantes :
sudo systemctl enable fail2ban
sudo systemctl start fail2ban

Debian :

Voici comment installer Fail2Ban sur Debian :

  1. Mettez à jour et mettez à niveau le référentiel de votre système en tapant la commande ci-dessous et en appuyant sur Entrée :
apt-get update && apt-get upgrade -y
  1. Procédez à l’installation de Fail2Ban à l’aide de la commande suivante :
apt-get install fail2ban
  1. Si vous souhaitez ajouter la prise en charge du courrier électronique, installez Sendmail en exécutant la commande suivante :
apt-get install sendmail-bin sendmail
  1. Voici comment vérifier le statut de Fail2Ban :
systemctl status fail2ban

Fedora :

Suivez ces instructions pour installer Fail2Ban sur Fedora :

  1. Mettez à jour le référentiel de votre système en insérant la commande ci-dessous et en appuyant sur Entrée :
dnf update
  1. Installez Fail2Ban à l’aide de cette commande :
dnf install fail2ban
  1. Si vous souhaitez installer Sendmail, tapez la commande suivante et appuyez sur Entrée :
dnf install sendmail
  1. Démarrez et activez le service Fail2Ban en exécutant les commandes suivantes :
systemctl start fail2ban
systemctl enable fail2ban
  1. Si vous avez ajouté Sendmail, exécutez la commande suivante pour le démarrer et l’activer :
systemctl start sendmail
systemctl enable sendmail

Comment configurer Fail2Ban

Après avoir installé Fail2Ban, pensez à le configurer. Dans cette section, nous allons voir comment le faire en utilisant les fichiers fail2ban.local et jail.local.

Modifier les paramètres par défaut avec fail2ban.local (Facultatif)

Le fichier fail2ban.conf contient la configuration de base de Fail2Ban. Il contient les paramètres globaux qui ne doivent pas être modifiés.

Si vous souhaitez apporter des modifications, nous vous recommandons de créer un fichier local. Faites une copie de fail2ban.conf et renommez-le en fail2ban.local pour remplacer le profil de configuration par défaut.

Voici comment changer le nom de la copie et définir les paramètres du fichier fail2ban.local :

  1. Renommez le fichier en fail2ban.local en exécutant la commande ci-dessous. Gardez à l’esprit qu’il ne produira aucun résultat :
cp /etc/fail2ban/fail2ban.conf /etc/fail2ban/fail2ban.local
  1. Tapez la commande suivante et appuyez sur Entrée pour ouvrir le fichier :
sudo nano /etc/fail2ban/fail2ban.local
  1. Vous pouvez maintenant modifier les définitions contenues dans le fichier.

Passons en revue les options et les valeurs qu’elles peuvent prendre.

loglevel = INFO

Définissez le niveau de sortie du journal comme suit :

  • CRITICAL – conditions d’urgence qui doivent être examinées immédiatement.
  • ERROR – quelque chose ne va pas mais n’est pas critique.
  • WARNING – une condition potentiellement dangereuse.
  • NOTICE – une condition normale mais significative.
  • INFO – messages d’information qui peuvent être ignorés.
  • DEBUG – messages de niveau débogage.
logtarget = STDERR

Enregistrez les actions dans un socket cible spécifique, qui peut être :

  • FILE – sortie vers un fichier socket.
  • SYSLOG – sortie dans un fichier journal basé sur des messages.
  • STDERR – sortie en tant qu’erreur standard.
  • STDOUT – sortie standard.
syslogsocket = auto

Définissez le fichier de socket syslog à auto ou file (si vous avez défini logtarget comme SYSLOG).

socket = /var/run/fail2ban/fail2ban.sock

Définit le fichier de socket pour communiquer avec le démon. L’emplacement par défaut est /var/run/fail2ban/fail2ban.sock.

pidfile = /var/run/fail2ban/fail2ban.pid

Définissez le fichier PID pour stocker l’ID du processus du serveur Fail2Ban. L’emplacement par défaut est /var/run/fail2ban/fail2ban.pid.

Configuration du fichier de configuration jail.local

Fail2Ban dispose d’un autre fichier de configuration nommé jail.conf qui comprend des jails – des filtres avec des actions. Cependant, les utilisateurs ne doivent pas modifier directement ce fichier, car il contient l’ensemble des règles de base du logiciel.

Au lieu de cela, faites une copie du fichier original et nommez-le jail.local. En l’utilisant, vous pourrez personnaliser et configurer des filtres et des actions, tels que ignoreip, bantime, findtime, maxretry, et backend.

ignorerip

Cette fonction vous permet de spécifier des adresses IP, des hôtes DNS ou des masques CIDR fiables que Fail2Ban doit ignorer. Ce paramètre autorise tout le trafic provenant des sources spécifiées. Vous pouvez ajouter plusieurs adresses et les séparer par un espace.

bantime

Ce paramètre définit la durée pendant laquelle un client sera interdit après un échec d’authentification. La période d’interdiction est mesurée en secondes et le nombre par défaut est 600 ou 10 minutes.

findtime

Ce paramètre détermine la période de temps pour les tentatives de connexion qui échouent. Si un hôte échoue à l’authentification un certain nombre de fois (en fonction du paramètre maxretry) au cours de la période définie, son adresse IP sera bannie.

maxretry

maxretry fonctionne avec findtime – il définit le nombre maximum de tentatives de connexion infructueuses dans la fenêtre de temps définie. La valeur par défaut est 5.

backend

Cette fonctionnalité vous permet de spécifier la configuration du backend pour la modification des fichiers. La valeur par défaut est auto, mais si vous utilisez CentOS ou Fedora, il faut que ce soit systemd.

Voici les valeurs disponibles parmi lesquelles vous pouvez choisir :

  • pynotify – surveille les modifications du système de fichiers en temps réel et nécessite l’installation d’un moniteur d’altération de fichiers.
  • gamin – identique à pynotify mais nécessite un outil Gamin.
  • polling – utilise un algorithme de polling qui ne nécessite pas de bibliothèques externes.
  • systemd – utilise la bibliothèque python systemd pour accéder au journal systemd.
  • auto – utilise les valeurs précédentes dans l’ordre suivant : pyinotify, gamin et polling.

Vous pouvez également définir des configurations supplémentaires dans le fichier jail.local, y compris les paramètres SSH et iptables. Les options disponibles sont les suivantes :

  • banaction – définit l’action par défaut à utiliser lorsque le seuil maxretry est atteint. Si vous utilisez firewalld, définissez la valeur à firewallcmd-ipset. Cependant, si vous avez configuré UFW comme pare-feu, remplacez-le par ufw.
  • banaction_allports – permet d’étiqueter et de bloquer les adresses IP sur chaque port. Si vous utilisez firewalld, définissez la valeur à firewallcmd-ipset.
  • port – la valeur doit correspondre au service défini. Si vous utilisez le port par défaut, remplacez la valeur par le nom du service. Si vous utilisez un port non traditionnel, entrez son numéro ici.
  • filter – le nom du fichier situé dans /etc/fail2ban/filter.d contient les informations failregex utilisées pour analyser les fichiers journaux.

Conclusion

Fail2Ban est un logiciel d’analyse des journaux qui aide à protéger les serveurs web basés sur Linux contre les cyberattaques.

Cet article a montré comment installer Fail2Ban sur les systèmes d’exploitation les plus courants, tels qu’Ubuntu, CentOS, Debian et Fedora. Nous avons également expliqué comment éditer fail2ban.local et jail.local, les fichiers de configuration du logiciel.

Nous espérons que cet article vous a aidé à configurer Fail2Ban sur votre serveur Linux. Si vous avez des questions ou des suggestions, n’hésitez pas à les partager dans la section des commentaires ci-dessous.

Configuration de Fail2Ban – FAQ

Ai-je besoin de Fail2Ban ?

Oui, c’est un élément essentiel de l’infrastructure de sécurité de votre serveur. Fail2Ban vous aidera à protéger votre machine contre les cyberattaques visant à compromettre vos identifiants de connexion.

Fail2Ban fonctionne-t-il avec UFW ?

UFW est une couche de sécurité supplémentaire destinée à protéger votre VPS contre les attaques par balayage de ports. Bien que Fail2Ban utilise iptables comme système de pare-feu par défaut, vous pouvez personnaliser le logiciel et activer UFW à la place.

Fail2Ban empêche-t-il les attaques DDoS ?

Une attaque DDoS est une tentative malveillante visant à interrompre le fonctionnement d’un serveur ou d’un service ciblé en l’inondant de fausses requêtes. À l’aide du fichier de configuration « jail » de Fail2Ban, vous pouvez créer des règles personnalisées pour détecter les requêtes excessives et bloquer leurs sources.

Fail2Ban fonctionne-t-il dès son installation ?

Fail2Ban est actif et fonctionne dès que vous l’activez. Les utilisateurs n’ont pas besoin de modifier sa configuration, car le logiciel offre une protection raisonnable dès le départ.

Tout le contenu des tutoriels de ce site est soumis aux normes éditoriales et aux valeurs rigoureuses de Hostinger.

Author
L'auteur

Chaimaa Chakir

Chaimaa est une spécialiste du référencement et du marketing de contenu chez Hostinger. Elle est passionnée par le marketing digital et la technologie. Elle espère aider les gens à résoudre leurs problèmes et à réussir en ligne. Chaimaa est une cinéphile qui adore les chats et l'analyse des films.

Ce que disent nos clients

Laissez une réponse

Veuillez remplir les champs obligatoires.Veuillez cocher la case de la confidentialité.Veuillez remplir les champs obligatoires et accepter la case de confidentialité.

Thank you! Your comment has been successfully submitted. It will be approved within the next 24 hours.