fail2ban hat maxretry von 3, aber ich sehe fünfmal wiederholte Authentifizierungsfehler

1082
Bucket Mouse

Ich verwende Ubuntu 16.04 mit aktiviertem ssh über ufw und habe fail2ban so konfiguriert, dass die [sshd] - und [sshd-ddos] -Jails mit einer maxretry von 3 aktiviert werden (dh ich möchte alle ips verbieten, die sich 3-mal nicht authentifizieren). Wenn ich mir das Auth Log anschaue, sehe ich ein paar verschiedene ips, die sich fünfmal nicht authentifiziert haben und daher für zu viele Authentifizierungsfehler getrennt wurden. Warum werden diese IPS nicht verboten? Ich gehe davon aus, dass ich entweder fail2ban falsch konfiguriert habe oder dass ich das beabsichtigte Verhalten falsch verstanden habe, aber aus den Tutorials, die ich gelesen habe (Digitalocean, andere Suchergebnisse), sollte diese Konfiguration das tun, was ich erwartet habe. Bitte beachten Sie auch, dass fail2ban erfolgreich einige IPS verbietet, da ich Verbote (und Unbans) im fail2ban-Protokoll sehen kann.

Hier sind die relevanten Protokollzeilen für eine der IP-Adressen mit dem Problem (IP und Host wurden korrigiert):

"/var/log/fail2ban.log"

2017-02-17 13:23:36,148 fail2ban.filter [24793]: INFO [sshd] Found [ip address] 2017-02-17 13:23:38,153 fail2ban.filter [24793]: INFO [sshd] Found [ip address] 

"/var/log/auth.log"

Feb 17 13:23:36 [host] sshd[15498]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=[ip address] us er=root Feb 17 13:23:38 [host] sshd[15498]: Failed password for root from [ip address] port 9498 ssh2 Feb 17 13:23:49 [host] sshd[15498]: message repeated 5 times: [ Failed password for root from [ip address] port 9498 ssh2] Feb 17 13:23:49 [host] sshd[15498]: error: maximum authentication attempts exceeded for root from [ip address] port 9498 ssh2 [preauth] Feb 17 13:23:49 [host] sshd[15498]: Disconnecting: Too many authentication failures [preauth] Feb 17 13:23:49 [host] sshd[15498]: PAM 5 more authentication failures; logname= uid=0 euid=0 tty=ssh ruser= rhost=[ip address] user=root Feb 17 13:23:49 [host] sshd[15498]: PAM service(sshd) ignoring max retries; 6 > 3 

Hier sind die relevanten (nicht kommentierten) Zeilen aus meiner fail2ban-Konfiguration, die meistens eine direkte Kopie von jail.conf ist, wobei die Standardeinstellungen für "Bantime", "findtime" und "maxretry" geändert wurden, und die [sshd] -, [sshd-ddos] - und [recidive] -Jails aktiviert:

"/etc/fail2ban/jail.local"

[DEFAULT]  ignoreip = 127.0.0.1/8 bantime = 21600 findtime = 3600 maxretry = 3 backend = auto usedns = warn logencoding = auto enabled = false filter = %(__name__)s destemail = root@localhost sender = root@localhost mta = sendmail protocol = tcp chain = INPUT port = 0:65535 banaction = iptables-multiport action_ = %(banaction)s[name=%(__name__)s, bantime="%(bantime)s", port="%(port)s", protocol="%(protocol)s", chain="%(chain)s"] action_mw = %(banaction)s[name=%(__name__)s, bantime="%(bantime)s", port="%(port)s", protocol="%(protocol)s", chain="%(chain)s"] %(mta)s-whois[name=%(__name__)s, dest="%(destemail)s", protocol="%(protocol)s", chain="%(chain)s"] action_mwl = %(banaction)s[name=%(__name__)s, bantime="%(bantime)s", port="%(port)s", protocol="%(protocol)s", chain="%(chain)s"] %(mta)s-whois-lines[name=%(__name__)s, dest="%(destemail)s", logpath=%(logpath)s, chain="%(chain)s"] action_xarf = %(banaction)s[name=%(__name__)s, bantime="%(bantime)s", port="%(port)s", protocol="%(protocol)s", chain="%(chain)s"] xarf-login-attack[service=%(__name__)s, sender="%(sender)s", logpath=%(logpath)s, port="%(port)s"] action_cf_mwl = cloudflare[cfuser="%(cfemail)s", cftoken="%(cfapikey)s"] %(mta)s-whois-lines[name=%(__name__)s, dest="%(destemail)s", logpath=%(logpath)s, chain="%(chain)s"] action_blocklist_de = blocklist_de[email="%(sender)s", service=%(filter)s, apikey="%(blocklist_de_apikey)s"] action_badips = badips.py[category="%(name)s", banaction="%(banaction)s"]  [sshd]  enabled = true port = ssh logpath = %(sshd_log)s  [sshd-ddos] # This jail corresponds to the standard configuration in Fail2ban. # The mail-whois action send a notification e-mail with a whois request # in the body. enabled = true port = ssh logpath = %(sshd_log)s  [recidive]  enabled = true logpath = /var/log/fail2ban.log banaction = iptables-allports bantime = 604800 ; 1 week findtime = 86400 ; 1 day maxretry = 5 

Weitere Untersuchung:

sudo fail2ban-regex /var/log/auth.log /etc/fail2ban/filter.d

Protokolldatei ist korrekt als /var/log/auth.log Zeilen: 1127 Zeilen, 0 ignoriert, 125 abgeglichen, 1002 verpasst [verarbeitet in 1,77 Sek.]

sudo iptables -L -n | Weniger

Ich sehe einige verbotene IPS (mit REJECT) unter "Chain f2b-sshd (1 Referenzen)" "

2

1 Antwort auf die Frage

2
Jakuje

Fail2ban sieht nur die Protokolle im Standardformat und zählt, wie viele Protokolle in einem bestimmten Zeitraum angezeigt wurden. Auch Ihr Syslog führt die gleichen Protokolle in aggregierter Form zusammen, wodurch diese Analyse verhindert wird:

Feb 17 13:23:49 [host] sshd[15498]: message repeated 5 times: [ Failed password for root from [ip address] port 9498 ssh2] 

Im Allgemeinen wird ein Authentifizierungsfehler als eine Verbindung betrachtet, die nicht authentifiziert werden konnte. Diese einzelne Verbindung kann jedoch aus mehreren "Kennwortauthentifizierungsversuchen" bestehen (wie viele davon hängen von der Konfiguration des Clients NumberOfPasswordPromptsund des Servers ab MaxAuthTries).

Bei der Einrichtung fail2banist es gut zu wissen, wie die Dinge funktionieren, und wenn Sie dort eine Richtlinie festlegen, sollten Sie wissen, was dies bedeutet. In diesem Fall ist dies ein erwartetes Verhalten. Wenn Sie die Authentifizierungsversuche weiter einschränken möchten, müssen Sie die Konfiguration von anpassen sshd.

Danke, das klärt meine Verwirrung auf :) Es war die aggregierte Form der Protokollierung, die das Parsen verhinderte, was mich störte - was beim Nachdenken offensichtlich erscheinen sollte, war es aber nicht! Teilweise weil (auf einem anderen Server) sich nach 3 fehlgeschlagenen Authentifizierungsversuchen selbst gesperrt hat. Bucket Mouse vor 7 Jahren 0