Moin!
... wobei die Zeit zum Erraten vermutlich falsch berechnet wurde. Statistisch gesehen, darf nur die Hälfte der Zeit angesezt werden, also nur 225 Jahre ;-)
Und jetzt rechne nach, was passiert, wenn der Angreifer 254 Hosts hat und nach 5 Fehlversuchen mit einer Zwangspause bedacht wird, die sich nach 3 Wiederholungen (recidiver Ban, bei dem fail2ban die eigene Logdatei untersucht) auf eine Woche ausdehnt...
/etc/fail2ban/jail.conf (Auszug)
[ssh_root]
enabled = true
port = all
filter = sshd_root
logpath = /var/log/auth.log
maxretry = 2
bantime = 3600
[recidive]
enabled = true
port = all
filter = recidive
logpath = /var/log/fail2ban.log
action = iptables-allports[name=recidive]
sendmail-whois-lines[name=recidive, logpath=/var/log/fail2ban.log]
bantime = 604800 ; 1 week
findtime = 86400 ; 1 day
maxretry = 3
/etc/fail2ban/filter.d/sshd_root.conf
[INCLUDES]
before = common.conf
[Definition]
_daemon = sshd
failregex = ^%(__prefix_line)sFailed password for root from <HOST> port \d+ ssh2$
^%(__prefix_line)sFailed password for admin from <HOST> port \d+ ssh2$
^%(__prefix_line)sFailed password for invalid user .* from <HOST> port \d+ ssh2$
ignoreregex =
/etc/fail2ban/filter.d/recidive.conf
[INCLUDES]
before = common.conf
[Definition]
_daemon = fail2ban\.actions
_jailname = recidive
failregex = ^(%(__prefix_line)s|,\d{3} fail2ban.actions:\s+)WARNING\s+\[(?!%(_jailname)s\])(?:.*)\]\s+Ban\s+<HOST>\s*$
ignoreregex =
Jörg Reinholz