L’amélioration de la sécurité de votre serveur devrait être l’une de vos principales priorités lorsqu’il s’agit de gérer un serveur Linux . En examinant les journaux de votre serveur, vous pouvez souvent trouver différentes tentatives de connexion par force brute, d’inondations Web, de recherche d’exploits et bien d’autres.
Avec un logiciel de prévention des intrusions tel que fail2ban, vous pouvez examiner les journaux de votre serveur et ajouter des règles iptables supplémentaires pour bloquer les adresses IP problématiques.
Qu’est-ce que Fail2Ban et à quoi sert-il ?
Fail2ban est un service Linux qui analyse les logs pour bannir les adresses IP ayant un comportement malveillants.
Il analyse les logs pour détecter trop d’échecs de mot de passe, recherche d’exploits, etc.
Lorsqu’une machine distante correspond à ces critères, il créé créé automatiquement une règle de blocage sur le pare-feu firewall iptables, ipset, shorewall ou ufw.
Ainsi les bots, machines compromises sont automatiquement bloqués sur votre serveur.
De ce fait, fail2ban aide à sécuriser et protéger son serveur des attaques par déni de service (DoS) et Bruteforce comme WordPress, serveur mail Postifx, SSH et autres.
Comment installer Fail2Ban
Pour installer le service Fail2Ban, connectez-vous à votre serveur avec un accès root à l’aide d’un client SSH comme Terminal (macOS et Linux) ou PuTTY (Windows).
Ubuntu
Voici comment installer Fail2Ban sur Ubuntu :
Avant d’installer un nouveau package, nous vous recommandons de mettre à jour le référentiel système et le logiciel. Exécutez la commande suivante :
apt-get update && apt-get upgrade
Installez le package Fail2Ban en exécutant la commande ci-dessous
apt-get install fail2ban
Si vous souhaitez ajouter le support par e-mail pour le service Fail2Ban, insérez la commande suivante et appuyez sur Entrée
apt-get install sendmail
Vérifiez l’état de Fail2Ban à l’aide de la commande suivante
statut sudo systemctl fail2ban
CentOS
Suivez ces étapes pour installer Fail2Ban sur CentOS
Fail2Ban pour CentOS7 est inclus dans le référentiel Extra Packages for Enterprise Linux (EPEL). Téléchargez-le en exécutant la commande ci-dessous
sudo yum installer epel-release
Une fois cela fait, installez Fail2Ban en saisissant la commande suivante et en appuyant sur Entrée
sudo yum installer fail2ban
Activez et démarrez le service en exécutant ces commandes
sudo systemctl activer fail2ban
sudo systemctl démarrer fail2ban
Débian
Voici comment installer Fail2Ban sur Debian
Mettez à jour et mettez à niveau votre référentiel système en tapant la commande ci-dessous et en appuyant sur Entrée
apt-get update && apt-get upgrade -y
Procédez à l’installation de Fail2Ban à l’aide de la commande suivante
apt-get install fail2ban
Si vous souhaitez ajouter la prise en charge des e-mails, installez Sendmail en exécutant cette commande
apt-get install sendmail-bin sendmail
Voici comment vérifier le statut de Fail2Ban
statut systemctl fail2ban
Comment configurer Fail2Ban
Après avoir installé Fail2Ban, pensez à le configurer. Dans cette section, nous allons explorer comment le faire en utilisant les fichiers fail2ban.local et jail.local .
Configuration du fichier de configuration jail.local
Fail2Ban a un autre fichier de configuration nommé jail.conf qui inclut des jails – des filtres avec des actions. Cependant, les utilisateurs ne doivent pas modifier directement ce fichier car il contient l’ensemble de règles de base pour le logiciel.
Au lieu de cela, faites une copie du fichier d’origine et nommez-le jail.local . En l’utilisant, vous pourrez personnaliser et configurer des filtres et des actions, telles que ignoreip , bantime , findtime , maxretry et backend .
ignoreip
Cette fonctionnalité vous oblige à spécifier des adresses IP de confiance, des hôtes DNS ou des masques CIDR 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 banni après un échec d’authentification. La période d’interdiction est mesurée en secondes et le nombre par défaut est de 600 ou 10 minutes.
trouver le temps
Ce paramètre détermine la période de temps pour les tentatives de connexion infructueuses. Si un hôte échoue à s’authentifier un certain nombre de fois (basé sur le paramètre maxretry ) pendant 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, elle doit être 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 de modification de fichiers.
- gamin – identique à pynotify mais nécessite un outil Gamin.
- polling – utilise un algorithme d’interrogation qui ne nécessite pas de bibliothèques externes.
- systemd – utilise la bibliothèque python systemd pour accéder au journal systemd .
- auto – utilisera les valeurs précédentes dans cet ordre – pyinotify , gamin et polling .
Vous pouvez également configurer des configurations supplémentaires dans le fichier jail.local , y compris les paramètres SSH et iptables . Les options disponibles incluent :
- banaction – définit l’action par défaut à utiliser lorsque le seuil maxretry est atteint. Si vous utilisez firewalld , définissez la valeur sur firewallcmd-ipset . Cependant, si vous avez configuré UFW comme pare-feu, remplacez-le par ufw .
- banaction_allports – vous permet d’étiqueter et de bloquer les adresses IP sur chaque port. Si vous utilisez firewalld , définissez la valeur sur 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 de fichier situé dans /etc/fail2ban/filter.d contient les informations failregex utilisées pour analyser les fichiers journaux.
Adresse IP de la liste blanche
Bien sûr, vous souhaiterez ajouter certaines adresses IP à la liste blanche. Pour configurer de telles adresses IP, ouvrez /etc/fail2ban/jail.local avec votre éditeur de texte préféré et décommentez la ligne suivante:
ignoreip = 127.0.0.1/8 :: 1
Ensuite, vous pouvez mettre les adresses IP que vous souhaitez ignorer. Les adresses IP doivent être séparées de l’espace ou de la virgule.
alertes courrier électronique
Si vous souhaitez recevoir des alertes par e-mail lors de l’événement, vous devrez configurer les paramètres suivants dans /etc/fail2ban/jail.local :
- destemail – adresse e-mail, où vous recevrez la notification.
- Nom de l’expéditeur – l’expéditeur que vous verrez lors de la réception du message.
- expéditeur – adresse e-mail à partir de laquelle fail2ban enverra les e-mails.
Le mta ( agent de transfert de courrier ) par défaut est défini sur sendmail .
Afin de recevoir des notifications par e-mail, vous devrez également modifier le paramètre “action” de :
Action = %(action_)s
A l’un d’entre eux :
action = %(action_mw)s
action = %(action_mwl)s
- %(action_mw)s – bannira l’hôte et enverra un e-mail avec un rapport whois.
- %(action_mwl)s – bannira l’hôte, fournira des informations whois et toutes les informations pertinentes du fichier journal.
Utiliser fail2ban-client
Fail2ban est livré avec un client qui peut être utilisé pour revoir et modifier la configuration actuelle. Comme il propose de nombreuses options, vous pouvez parcourir son manuel avec
# homme fail2ban-client
Ici, vous verrez certaines des commandes de base que vous pouvez utiliser. Pour revoir l’état actuel de fail2ban ou pour une prison spécifique, vous pouvez utiliser
# état du client fail2ban
Conclusion
Fail2ban est un excellent système de prévention des intrusions bien documenté, qui offre une sécurité supplémentaire à votre système Linux. Il faut un certain temps pour s’habituer à sa configuration et à sa syntaxe, mais une fois que vous vous serez familiarisé avec lui, vous vous sentirez libre de modifier et d’étendre ses règles.
Cet Article est utile ? Votez