fail2ban ist ein tolles Werkzeug um ungebetene Gäste von seinem Server fern zu halten. Nach vordefinierten Regeln überwacht fail2ban in Echzeit die Logfiles nach verdächtigen Angriffsmustern. Nach einer frei definierbaren Anzahl an Fehlversuchen wird die verursachende IP-Adresse für eine ebenfalls frei definierbare Zeit durch iptables geblockt. Die häufigesten Angriffsversuche sind mit brute-force-Angriffen auf den ssh-Daemon Angriffe auf WordPress oder Postfix bzw. Dovecot, also das Mailsystem. Nun kann es vorkommen, dass man sich bzw. seine IP-Adresse unbeabsichtigt selber aussperrt. Das kann durch Schusseligkeit aber auch durch einen fehlkonfigurierten Email-Client oder ähnlichem vorkommen. fail2ban bzw. iptables macht keinen Unterschied zwischen den Diensten beim Sperren von IP-Adressen. Das hat nun den blöden Nebeneffekt, dass man für eine bestimmte Zeit keinen Zugriff mehr auf seinen Server hat.
Zunächst muss man seine eigene öffentliche IP-Adresse heraus bekommen. Da die meisten Menschen heutzutage über einen Router mit NAT im Internet sind entspricht die IP-Adresse im lokalen Netzwerk nicht seiner öffentlichen IP-Adresse. Die öffentliche IP-Adresse ist meist die internetseitige IP-Adresse des Routers. In der Shell kann man seine öffentliche IP-Adresse einfach ermitteln:
$ host myip.opendns.com resolver1.opendns.com | grep "myip.opendns.com has" | awk '{print $4}' 123.456.789.123
Nachdem man diese ermittelt hat brauchen wir wieder einen Shellzugang zum Server. Da gibt es im Gunde nur die eine Möglichkeit, dass man sich von einer anderen und ungesperrten IP-Adresse beim Server anmeldet. Das geht zum Einen, dass man seinen Router neu startet denn der erhält oft bei neuer Einwahl eine neue IP-Adresse. Zum Anderen gibt es noch die Möglichkeit, dass man einen anderen fremden SSH-Zugang benutzt. Da gibt es z.b. mit freeshell.de einen freien Anbieter für einen Shell-Zugang.
Nachdem man nun eine Shell seines Servers hat muss man nur noch seine IP-Adresse in fail2ban löschen. Zunächst kann man kontrollieren ob die IP-Adresse tatsächlich von fail2ban geblockt wurde:
# grep 123.456.789.123 /var/log/fail2ban.log 2021-03-24 17:10:42,220 fail2ban.actions [665]: NOTICE [sshd] Ban 123.456.789.123
Sollte die tatsächlich geblockt sein wie im obigen Beispiel, so kann man diese nun mit fail2ban-client entsperren:
# fail2ban-client unban 123.456.789.123 1
Nun sollte man wieder über seine ursprüngliche IP-Adresse anmelden können denn diese wurde nun entsprerrt.
Sollte man bereits vor dem Ban durch fail2ban am Server angemeldet sein so wird die Verbindung durch den ban nicht beendet und man kann den unban-Befehl direkt absetzen.