Fail2Ban
Fail2ban est un service de surveillance des journaux qui détecte les comportements suspects, comme les échecs répétés d’authentification, et bloque automatiquement les adresses IP fautives.
Apprise s’intègre à Fail2ban comme action de notification, ce qui vous permet de recevoir des alertes via n’importe lequel des services pris en charge par Apprise, y compris l’e-mail, les notifications push, les plateformes de discussion et les webhooks.
Ce guide suppose :
- Une installation récente de Fail2ban
- systemd est disponible
- Une configuration sur un seul hôte
- sshd est le premier service surveillé
Les chemins propres à chaque distribution et les configurations avancées de prison sont volontairement laissés de côté.
Prérequis
Section intitulée « Prérequis »Avant de commencer, assurez-vous que les éléments suivants sont installés :
- Fail2ban
- Apprise (CLI)
- API Apprise est facultative (si la configuration est centralisée)
Vérifiez que les deux sont disponibles :
fail2ban-client --versionapprise --versionInstaller Fail2ban
Section intitulée « Installer Fail2ban »Sur la plupart des systèmes, Fail2ban est disponible via le gestionnaire de paquets du système.
Activez et démarrez le service :
sudo systemctl enable fail2bansudo systemctl start fail2banVérifiez qu’il est en cours d’exécution :
sudo systemctl status fail2banConfigurer Apprise
Section intitulée « Configurer Apprise »Assurez-vous d’être à l’aise avec les fichiers de configuration Apprise et de savoir quels services vous comptez utiliser. Ici, nous choisissons d’attribuer le tag fail2ban à tous les points de terminaison que nous souhaitons notifier lorsqu’un événement se produit :
# Définissez ici le tag de configuration fail2ban et assignez-le, par exemple,# à un webhook Discord pour les besoins de ce guide. Vous pouvez toutefois# utiliser n'importe quel service de notification pris en charge.fail2ban=discord://4174216298/JHMHI8qBe7bk2ZwO5U711o3dV_js:::
Configurer Apprise pour Fail2ban
Section intitulée « Configurer Apprise pour Fail2ban »Ajoutez ce qui suit à /etc/fail2ban/jail.local
[DEFAULT]
# ignoreip agit comme une liste d'autorisation ; les requêtes provenant de ces# IP ne seront pas surveillées par Fail2Ban. Chaque entrée est séparée par un# espace (' ').# Indiquez uniquement des points d'accès de confiance :# - 127.0.0.1/8 : localhost (ce poste) ; cela évite que Fail2Ban ne bloque# des requêtes internes. Le suffixe `/8` peut être conservé.# - YOUR_IP/32 : si vous accédez à distance au serveur exécutant Fail2Ban,# remplacez 'YOUR_IP/32' ci-dessous par votre adresse IP# réelle. Ajoutez `/32` pour une adresse IPv4 ou `/128` pour# une adresse IPv6.# IPv6 address.ignoreip = 127.0.0.1/8 YOUR_IP/32
# how far back to lookfindtime = 5m
# ban if we trigger on 4 failed authenticate within the findtimemaxretry = 4
# ban time; how long do we restrict this user from our system for?bantime = 1d
## Now we define our Apprise Action## - Read from /etc/fail2ban/apprise.conf# - Only notify end points tagged with 'fail2ban'#action = apprise[config="/etc/fail2ban/apprise.conf", args="--tag fail2ban"]
## Now we will define our jails#
[sshd]enabled = trueport = sshlogpath = %(sshd_log)sbackend = %(sshd_backend)s
# Optionally over-ride our defaults abovemaxretry = 5findtime = 10mbantime = 1h
# The below entry is not nessisary as it's defined in the [DEFAULT] section above# but this is to show that you could also define another entry here as well# and assign it a different set of tags.action = apprise[config="/etc/fail2ban/apprise.conf", args="--tag fail2ban"]Redémarrez Fail2ban :
sudo systemctl restart fail2banVérifiez que la prison est active :
sudo fail2ban-client status sshdTester votre Configuration
Section intitulée « Tester votre Configuration »Déclenchez un bannissement de test en dépassant le nombre de tentatives d’authentification, ou simulez-le manuellement :
sudo fail2ban-client set sshd banip 203.0.113.10Vous devriez recevoir une notification Apprise immédiatement.
Dépannage
Section intitulée « Dépannage »Affichez les journaux Fail2ban :
journalctl -u fail2banAugmentez la verbosité des actions Apprise (en ajoutant -vv) et testez pour voir ce qui se passe :
apprise -vv --tag fail2ban --config /etc/fail2ban/apprise.conf \ --body "fail2ban trigger test"Vérifiez les URL Apprise séparément avant de déboguer Fail2ban.
Conseils Utiles
Section intitulée « Conseils Utiles »Fail2ban est formidable, mais peut parfois être fastidieux à utiliser. Avoir quelques pense-bêtes sous la main peut aider au dépannage :
# See all jails:fail2ban-client status
# Look into the status of one of the specific jailsfail2ban-client status sshd
# quick and dirty way to unban an IP (regardless of which jail banned it)fail2ban-client unban 1.2.3.4 Questions ou commentaires ?
Documentation
Vous avez repéré une faute de frappe ou une erreur ? Signalez-la ou proposez une correction .
Problèmes Techniques
Vous rencontrez un problème avec le code ? Ouvrez un ticket sur GitHub :