Ich setze Fail2ban ein, um SSH Brute-force Loginversuche auf 3 Stück pro IP-Adresse pro 10 Stunden zu limitieren. Heute ist es mir jedoch passiert, dass ich bei der Passwort-Eingabe dicke Finger hatte und meine eigene IP gesperrt war.
Dank serieller Console komme ich zwar auch dann noch auf meinen Rechner, aber so ein funktionierender SSH-Zugang ist dann doch eine schöne Sache. Also wie bekomme ich meine eigene IP wieder entsperrt, wenn ich nicht 10 Stunden bis zum automatischen unban warten möchte?
Zum Glück geht das recht einfach:
Zunächst einmal muss ich den Namen des von Fail2ban verwendeten Jails herausfinden. Hierzu reicht ein schlichtes iptables -L -n
:
root@mail:~# iptables -L -n
Chain INPUT (policy ACCEPT)
target prot opt source destination
fail2ban-ssh tcp -- 0.0.0.0/0 0.0.0.0/0 multiport dports 22
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain fail2ban-ssh (1 references)
target prot opt source destination
REJECT all -- 103.99.0.206 0.0.0.0/0 reject-with icmp-port-unreachable
REJECT all -- 217.182.66.17 0.0.0.0/0 reject-with icmp-port-unreachable
REJECT all -- 78.229.158.27 0.0.0.0/0 reject-with icmp-port-unreachable
REJECT all -- 5.188.10.179 0.0.0.0/0 reject-with icmp-port-unreachable
REJECT all -- 125.71.216.103 0.0.0.0/0 reject-with icmp-port-unreachable
REJECT all -- 116.36.76.123 0.0.0.0/0 reject-with icmp-port-unreachable
REJECT all -- 189.208.166.20 0.0.0.0/0 reject-with icmp-port-unreachable
RETURN all -- 0.0.0.0/0 0.0.0.0/0
Das richtige Jail lautet in meinem Fall also ssh.
Um z.B. die oben gelistete IP 5.188.10.179 zu entsperren, bringt Fail2Ban ein entsprechendes Tool mit:
root@mail:~# fail2ban-client set ssh unbanip 5.188.10.179
5.188.10.179
Nun steht einem SSH-Login zumindest bei korrektem Passwort nichts mehr im Wege. Achso, liebe Script-kiddies, der root-Zugang ist selbstverständlich für SSH gesperrt, aber probiert gerne weiter.