fail2ban-gitrust-ssh-guard.conf
50 lignes · 2371 octets
# ============================================================================= # fail2ban — jail + filtre prêts à l'emploi pour le flux JSON ssh-guard # ============================================================================= # Ce fichier contient deux blocs distincts à placer à des emplacements # différents sur l'hôte fail2ban. Voir aussi : # administration_manual/how-to/durcir-avec-fail2ban.md # administration_manual/reference/ssh-guard-evenements.md # # Prérequis dans /opt/gitrust/.env : # SSH_GUARD_LOG_TARGET=both (ou file) # SSH_GUARD_LOG_FILE=/var/log/gitrust-ssh-guard.json # # Tester le filtre avant de redémarrer fail2ban : # sudo fail2ban-regex /var/log/gitrust-ssh-guard.json \ # /etc/fail2ban/filter.d/gitrust-ssh.conf # ----------------------------------------------------------------------------- # 1) JAIL — à concaténer dans /etc/fail2ban/jail.local sous [DEFAULT] # ----------------------------------------------------------------------------- # [gitrust-ssh] # enabled = true # port = 22,2222 # filter = gitrust-ssh # logpath = /var/log/gitrust-ssh-guard.json # maxretry = 1 # findtime = 10m # bantime = 1h # ----------------------------------------------------------------------------- # 2) FILTRE — à placer dans /etc/fail2ban/filter.d/gitrust-ssh.conf # ----------------------------------------------------------------------------- [Definition] # Capture <HOST> depuis le champ "ip" du JSON émis par gitrust-ssh-guard. # Le « signal fort » ip_banned est privilégié : ssh-guard a déjà corrélé # brute-force / énumération / scan de clés ; fail2ban relaye le ban au # firewall (UFW/iptables) pour bloquer aussi les autres ports si la jail # le souhaite (banaction = ufw, banaction_allports = ufw). failregex = ^.*"event":"ip_banned".*"ip":"<HOST>".*$ ^.*"event":"brute_force_detected".*"ip":"<HOST>".*$ ^.*"event":"user_enumeration_detected".*"ip":"<HOST>".*$ ^.*"event":"key_scanning_detected".*"ip":"<HOST>".*$ ^.*"event":"connection_dropped".*"ip":"<HOST>".*"reason":"untrusted_proxy".*$ ^.*"event":"connection_dropped".*"ip":"<HOST>".*"reason":"proxy_header_invalid".*$ ignoreregex = # Date au format ISO 8601 UTC produit par ssh-guard (champ "ts") datepattern = "ts":"%%Y-%%m-%%dT%%H:%%M:%%S
GitRust