GNU/Linux >> Tutoriels Linux >  >> Debian

Comment installer Fail2ban sur Debian 10 ou 11 Bullseye

fail2ban est un package de fichiers client, serveur et de configuration utilisé pour protéger le système contre diverses attaques malveillantes. Il sécurise également les services du serveur Linux contre le déni de service (DoS). Tandis que les autres fonctions de base sont la surveillance des fichiers journaux, la recherche de modèles prédéfinis et le blocage temporaire des adresses IP. Il est publié sous la licence publique générale GNU version 2 et est basé sur Python.

Il peut fonctionner en arrière-plan (comme un démon) ainsi qu'au premier plan. Le programme est utile, par exemple, dans le serveur ssh, vous souhaitez limiter le nombre de tentatives de connexion. Le programme fail2ban examine les fichiers journaux du système à la recherche d'échecs de connexion, puis bloque l'adresse Internet (IP) de l'attaquant pendant un certain temps.

Ici, nous apprenons les étapes pour installer Fail2ban sur Debian 11 Bulleyes et son processus de configuration.

Installation de Fail2ban sur Debian 11

Les packages pour installer et configurer le Fail2ban sont disponibles dans le dépôt officiel Debian 11, il suffit donc d'utiliser la commande apt pour son installation.

Tout d'abord, exécutez la commande de mise à jour pour reconstruire le cache du référentiel-

sudo apt update

Et puis la commande principale pour obtenir cet outil de sécurité-

sudo apt install fail2ban

Avec l'exécution de la commande ci-dessus, les programmes suivants seront disponibles après l'installation :

  • fail2ban-server – le serveur
  • fail2ban-client – ​​Programme client pour la configuration et l'évaluation du serveur
  • fail2ban-regex- Programme pour tester les expressions régulières

Activer et vérifier l'état de ses services-

sudo systemctl enable fail2ban
sudo systemctl status fail2ban

Configuration sur Debian 10/11

fail2ban lit les types de fichiers de configuration avec les extensions .conf et .local . Fichiers avec l'extension .conf sont créés lors de l'installation et seront écrasés lors d'une mise à niveau du package, donc toutes les modifications doivent être faites dans le .local correspondant des dossiers. Ainsi, ajoutez ou modifiez uniquement les valeurs de ce fichier qui sont différentes des paramètres par défaut ou globaux.

Fail2ban a trois types de fichiers de configuration :

/etc/fail2ban/action.d/*.conf/*
/etc/fail2ban/filter.d/*.conf/*
/etc/fail2ban/jail.conf
/etc/fail2ban/jail.d/*.conf

Actions.d

Les fichiers du répertoire /etc/fail2ban/action.d/ contiennent les commandes pour (débloquer) les adresses IP. Les fichiers d'action contiennent deux sections : [Definition] et [Init] . Les entrées dans [Init] section est utilisée pour écraser les règles définies dans la prison. Les exemples du tableau suivant sont tirés de iptables-multiport-conf action. Toutes les commandes sont exécutées avec les droits d'utilisateur fail2ban.

Aperçu des options
entrée description exemple
[Definition]
actionstart Commandes exécutées au démarrage de fail2ban. actionstart = iptables -N fail2ban-<name>
iptables -A fail2ban-<name> -j RETURN
iptables -I <chain> -p <protocol> -m multiport --dports <port> -j fail2ban-<name>
actionstop Commandes exécutées lors de la sortie de fail2ban. actionstop = iptables -D <chain> -p <protocol> -m multiport --dports <port> -j fail2ban-<name>
iptables -F fail2ban-<name>[[BR]]iptables -X fail2ban-<name>
actioncheck Commandes exécutées avant chaque actionban. Ceux-ci sont utilisés pour vérifier la fonctionnalité de l'environnement actuel. actioncheck = iptables -n -L <chain> | grep -q 'fail2ban-<name>[ \t]'
actionban Commandes exécutées lorsqu'une IP est bannie. La condition est toujours maxretry doit être dépassé et findtime tombé à court de. actionban = iptables -I fail2ban-<name> 1 -s <ip> -j <blocktype>
actionunban Commandes à utiliser pour débannir. actionunban = iptables -D fail2ban-<name> -s <ip> -j <blocktype>
[Init]
name Le nom par défaut de la chaîne name = default
port port port = ssh
protocol Est utilisé en interne par le lecteur de configuration. Valeurs possibles : tcpudpicmpall . protocol = tcp
chain La chaîne iptables à laquelle les règles fail2ban doivent être ajoutées. La norme est INPUT . chaîne =INPUT
Balises d'action Les balises d'action sont des espaces réservés qui peuvent être utilisés dans actionbanactionunban et actioncheck .
ip L'adresse IPv4 à bannir.
failures Le nombre de tentatives infructueuses compté.
time L'horodatage Unix (secondes) de l'interdiction.
matches Les entrées chaînées des lignes du fichier journal qui ont conduit au bannissement. De nombreux caractères shell sont échappés.

Filtre.d 

Les fichiers du répertoire /etc/fail2ban/filter.d/ contient les expressions régulières pour analyser les fichiers journaux et pour extraire l'adresse IP ou si usedns est utilisé, le nom d'hôte. Il n'y a que deux sections dans ces fichiers : [Definition] et [Includes] . Ce dernier peut être utilisé pour lire dans d'autres fichiers de configuration.

Les exemples du tableau suivant sont tirés de iptables-multiport-conf action. Toutes les commandes sont exécutées avec les droits d'utilisateur fail2ban.

Aperçu des options
entrée description exemple
[Definition]
failregex A l'aide de cette expression régulière, les fichiers journaux sont recherchés pour les résultats. La balise est HOST disponible ici,
qui est utilisé dans le cadre de la regex et contient le nom d'hôte ou l'adresse IP.
La distinction entre l'adresse IP et le nom d'hôte est déterminée automatiquement par fail2ban.
failregex =^%(__prefix_line)sFAIL :\S+ adresse de=$
^%(__prefix_line)sFAIL :\S+ libwrap from=$
ignoreregex Des exceptions peuvent être définies ici, même si elles étaient valides pour
le failregex ci-dessus. ignoreregex prend en charge l'interpolation de chaîne
afin que vous puissiez utiliser vos propres variables avec %(variablenname)s .
ignoreregex =
[INCLUDES]
before Utiliser pour faire en sorte qu'un fichier soit lu avant celui défini.
Un exemple est common.conf
avant =common.conf
after Le fichier est lu après celui défini après =example_after.local
exemple Après avoir intégré le common.conf est _daemon disponible.
Voir /etc/fail2ban/filter.d/common.conf pour plus de détails.
_daemon =xinetd

Jail.conf

Alors que le jail.conf le fichier combine des actions et créé un filtre dans une prison. L'utilisateur doit enregistrer ce fichier avec l'extension .loca l pour commencer à ajouter ses propres règles ou à les personnaliser.

Le jail.conf et le tableau suivant donne un aperçu des valeurs possibles par défaut.


Aperçu des options
entrée description exemple
[DEFAULT]
ignoreip Liste des adresses IP ou des réseaux à ignorer, séparés par des espaces. ignoreip = 127.0.0.1/8 192.168.1.33
bantime Temps d'interdiction en secondes. Une valeur négative est un ban permanent. bantime = 86400
findtime Le nombre de secondes après lesquelles le compteur de maxretry est réinitialiser. findtime = 660
maxretry Le nombre maximum de tentatives infructueuses avant que fail2ban bannisse l'IP. maxretry = 2
backend Le backend, tel que systemd, peut être défini ici. La valeur par défaut est auto (recommandé). backend = systemd
usedns Paramètre pour le comportement de recherche inversée de fail2ban. Les valeurs possibles sont yesno et warn .
Ce dernier signifie que les entrées avec des noms d'hôte donnent un avertissement dans le fichier journal, ce qui peut entraîner un grand nombre d'entrées.
usedns = warn
[myJail] Le nom de la prison peut être attribué ici. [ssh]
enabled (Dé-) active la prison enabled = true
port Définition du port, peut être numérique. Les valeurs multiples sont séparées par des virgules. port = ssh
filter = sshd Nom du fichier filtre /etc/fail2ban/filter.d/sshd.conf
logpath Le fichier journal à surveiller, qui est vérifié pour le filtre. logpath = /var/log/auth.log
maxretry, bantime,... Des valeurs différentes pour les options par défaut peuvent également être définies. maxretry = 3


Créez votre propre fichier de configuration Jail


Ainsi, copions maintenant le jail.conf fichier pour créer un jail.local fichier pour ajouter tous les paramètres personnalisés qui y resteront même après la mise à niveau de fail2ban.

sudo cp /etc/fail2ban/jail.{conf,local}

Pour configurer divers paramètres, modifiez les fichiers jail locaux créés

sudo nano /etc/fail2ban/jail.local

Quelques exemples-

Mettre en liste blanche certaines adresses IP, plages d'adresses IP ou hôtes

Maintenant, lorsque le fichier s'ouvre, disons que vous souhaitez mettre sur liste blanche certaines adresses IP, plages d'adresses IP ou hôtes pour qu'ils ne soient pas bloqués par le service File2ban. Pour cela, nous définissons la même chose dans le nouveau Jail.local fichier.
Voir :Comment vérifier l'adresse IP sur le terminal de commande Linux

Dans le fichier, recherchez le #igonreip ligne et supprimez le # à partir de cela. Après cela, ajoutez l'adresse IP ou la plage que vous souhaitez ajouter à la liste blanche.

Bantime, findtime et maxretry

De même, nous pouvons également augmenter ou diminuer le temps d'interdiction de l'adresse IP en modifiant les valeurs de l'option bantime indiquées dans le fichier.

[Default]

bantime = 10m

Pour réduire ou augmenter la période de temps, changez simplement les 10 minutes par défaut en ce que vous voulez. Alors que pour bloquer l'adresse IP de manière permanente, utilisez une valeur négative.

maxretry

Combien de tentatives maximales une adresse IP doit-elle avoir effectuées pour être bloquée ? Par défaut, il est de cinq et déclaré en utilisant le maxretry option dans jail.local dossier. Si vous voulez le réduire, disons seulement après deux tentatives malveillantes, l'adresse IP devrait être bloquée, puis changez le nombre de 5 à 2. De la même manière, vous pouvez également augmenter le nombre d'essais maximum.

maxretry = 5

trouver le temps

C'est le temps entre la tentative maximale qui devrait se produire pour tout malware ou connexion sur le système avant que Fail2Ban ne bloque l'adresse IP particulière. Par exemple , quelqu'un essaie de se connecter, s'il a fait 5 tentatives en 10 minutes, son adresse IP est bloquée. Cependant, vous pouvez modifier le findtime valeur pour augmenter ou diminuer cette période de temps.

findtime = 10m

Fail2ban peut envoyer des alertes par e-mail

Oui, si certaines adresses IP sont interdites, vous pouvez recevoir la notification par courrier électronique pour la même chose. Cependant, vous devez activer et définir l'adresse e-mail que vous souhaitez utiliser pour recevoir la notification.

Installer Sendmail- Un agent de transfert de courrier (MTA) open source

sudo apt install sendmail

Maintenant, il y a deux paramètres clés que nous devons effectuer dans le jail.local fichier pour recevoir une notification par e-mail.

  1. dégagement – adresse e-mail qui sera utilisée pour recevoir une notification.
  2. expéditeur – adresse e-mail à partir de laquelle fail2ban enverra les e-mails.

Donc, dans le fichier, recherchez les deux paramètres ci-dessus et ajoutez votre adresse e-mail-

Ensuite, recherchez la ligne ci-dessous

action = %(action_)s

Et changez-le avec l'un des suivants-

action = %(action_)s – Celui-ci enverra une notification par e-mail lorsqu'une adresse IP sera bannie.

ou

action = %(action_mwl)s – Si vous souhaitez recevoir une notification par e-mail pour l'adresse IP de l'hôte banni, y compris les informations de journalisation, utilisez cette option d'action.
De plus, vous pouvez consulter notre liste des meilleures applications client de messagerie pour Ubuntu ou Debian Linux.

Activer les services dans le fichier de prison Fail2ban

Comme je l'ai mentionné plus tôt, cela crée jail.local comprend les deux Actions et Filtres qui peut être utilisé pour désactiver/activer les services autorisés par défaut ou créer les vôtres.

Par exemple – Par défaut, SSH est activé dans Jail.local de Fail2ban.

En fait, dans le fichier Fail2ban Jail, vous verrez qu'il y a beaucoup de services qui l'accompagnent. Cependant, vous devez les activer pour les utiliser. OU bien vous pouvez créer le vôtre.

Sous /etc/fail2ban/filters.d dossier, vous pouvez voir toute la configuration filter fichiers pour chaque service Fai2ban Jail disponible ici.

Avant de montrer comment les activer, vérifions quels sont les services jails activés-

sudo fail2ban-client status

La sortie sera comme ceci-

Status
|- Number of jail: 1
`- Jail list: sshd

Maintenant, si nous voulons activer un service Jail, nous devons ajouter enabled = true dans le jail.conf fichier après le titre de service pénitentiaire. L'exemple suivant montre comment activer le apache-auth prison :

Exemple :Activons le service Fail2ban Apache-auth

Modifier jail.local et trouvez Apache-Auth  prédéfini Service pénitentiaire

Enregistrer le fichier en utilisant Ctrl+X , O, et en appuyant sur Entrée Clé.

Redémarrer le serveur Fail2ban

sudo systemctl restart fail2ban

Maintenant , utilisez à nouveau leclient Fail2ban pour vérifier combien de services Jail sont activés-

sudo fail2ban-client status

Cette fois, la sortie sera-

Status
|- Number of jail: 2
`- Jail list: apache-auth, sshd

Pour en savoir plus à propos du service, utilisez son nom avec la commande ci-dessus-

sudo fail2ban-client status apache-auth

Sortie :

Status for the jail: apache-auth
|- Filter
| |- Currently failed: 0
| |- Total failed: 0
| `- File list: /var/log/apache2/error.log
`- Actions
|- Currently banned: 0
|- Total banned: 0
`- Banned IP list:

Erreur :

Si vous obtenez les erreurs suivantes, cela signifie que le service particulier que vous souhaitez activer n'est pas encore installé sur votre système ou votre serveur. Par exemple, Si j'ai activé Apache Jail mais qu'Apache lui-même n'est pas disponible sur mon serveur, ce type d'erreur apparaîtra.

fail2ban.service: Main process exited, code=exited, status=255/EXCEPTION

[6613]: ERROR Failed to access socket path: /var/run/fail2ban/fail2ban.sock. Is fail2ban running?

Utilisation du client Fail2ban

Même nous pouvons utiliser l'outil de commande client de Fail2ban pour gérer ses différents services- pour voir toutes les commandes qui s'y rapportent, vous pouvez utiliser l'indicateur d'aide-

fail2ban-client -h

Par exemple pour interdire ou débannir une adresse IP pour un service, utilisez la syntaxe suivante

À interdire

fail2ban-client set <JAIL-service> banip <IP>

Pour débannir

fail2ban-client set <JAIL-service> unbanip <IP>

Exemple-

sudo fail2ban-client set sshd banip 192.168.0.6

Note de fin-

Voici donc un aperçu rapide de l'installation et de la configuration de Fail2ban sur Debian 11 Bullseye ou 10 Buster. Bien que la documentation de l'outil Fail2ban ne soit pas vaste, si certains veulent regarder, consultez son site officiel. Voici les liens :page du projet, documentation, page GitHub pour le code source


Debian
  1. Comment installer R sur Debian 9

  2. Comment installer R sur Debian 10

  3. Comment installer Debian 11 (Bullseye) étape par étape

  4. Comment installer Python 3.8 sur Debian 11 Bullseye

  5. Comment installer Python 3.9 sur Debian 11 Bullseye

Comment installer PHP 7.4 sur Debian 11 Bullseye

Comment installer VidCutter sur Debian 11 Bullseye

Comment installer PuTTY sur Debian 11 Bullseye

Comment installer Fail2Ban sur Debian 8

Comment installer Fail2Ban sur Debian 10

Comment installer Fail2Ban sur Debian 11