Wie kann ich alle fail2ban-Bans in Ubuntu löschen? Ich habe alles versucht, aber ich verstehe es nicht.
Ich möchte nur alle Sperren löschen, kenne aber keine IP-Adressen.
Wie kann ich alle fail2ban-Bans in Ubuntu löschen? Ich habe alles versucht, aber ich verstehe es nicht.
Ich möchte nur alle Sperren löschen, kenne aber keine IP-Adressen.
Antworten:
Ab Version 0.10.0 fail2ban-client
gibt es den unban
Befehl, der auf zwei Arten verwendet werden kann:
unban --all unbans all IP addresses (in all
jails and database)
unban <IP> ... <IP> unbans <IP> (in all jails and
database)
Darüber hinaus haben die Befehle restart <JAIL>
, reload <JAIL>
und reload
jetzt auch die --unban
Option.
fail2ban iptables
blockiert den Datenverkehr. Wenn Sie die derzeit gesperrten IP-Adressen sehen möchten, geben Sie ein
iptables -L -n
und suchen Sie nach den verschiedenen Ketten mit dem Namen fail2ban-something
, in denen something
auf das fail2ban-Gefängnis verwiesen wird (zum Beispiel Chain f2b-sshd
auf das Gefängnis sshd
). Wenn Sie nur den Block für eine einzelne IP-Adresse <IP>
für ein bestimmtes Gefängnis entfernen möchten <JAIL>
, bietet fail2ban einen eigenen Client an:
fail2ban-client set <JAIL> unbanip <IP>
Alternativ können Sie Zeilennummern verwenden. Listen Sie zunächst die iptables
Regeln mit Zeilennummern auf:
iptables -L -n --line-numbers
Weiter können Sie verwenden
iptables -D fail2ban-somejail <linenumber>
um eine einzelne Zeile aus der Tabelle zu entfernen. Soweit ich weiß, gibt es keine Möglichkeit, einen Bereich von Zeilennummern auszuwählen, daher müssten Sie diesen Befehl in eine for-Schleife einschließen:
for lin in {200..1}; do
iptables -D fail2ban-somejail $lin
done
Hier habe ich die Nummer 200 erfunden. Überprüfen Sie Ihre eigene Ausgabe des Befehls mit --line-numbers
und beachten Sie, dass die letzte Zeile (mit RETURN
) bleiben soll. Siehe @ roaimas Kommentar unten für die Gründe für das Countdown.
echo {5..1}
wird ergeben 5 4 3 2 1
.
Die beste Möglichkeit, alle IP-Adressen zu entsperren, besteht darin, die Bantime-Zeit auf 1 Sekunde einzustellen. Anschließend werden alle IP-Adressen sofort freigegeben.
fail2ban-client set JailName bantime 1
Danach können Sie die korrekte Sperrzeit zurücksetzen.
Es ist besser, fail2ban das Unban für Sie erledigen zu lassen. Bearbeiten Sie iptables nicht manuell.
fail2ban-client status
Die neueste fail2ban-client
(0.10) hat einen unban -all
Befehl. Die Gefängnisse können auch einzeln "neu gestartet" werden, wodurch die Verbote wirksam aufgehoben werden.
Wenn Sie eine ältere Version haben, funktioniert dieser Trick möglicherweise für automatische temporäre Bans: Löschen Sie das Gefängnis, das das Verbot enthält, und starten Sie fail2ban neu, damit das (jetzt leere) Gefängnis neu erstellt wird.
$ fail2ban-client stop sshd
Jail stopped
$ systemctl restart fail2ban
Speichern Sie die iptable-Konfiguration in einer Datei
$ iptables-save > iptables.conf
Bearbeiten Sie es mit einem Editor, den Sie möchten, und laden Sie dann die Konfiguration zurück in iptables
$ iptables-restore < iptables.conf
Vergessen Sie nicht, die Konfiguration in iptables zu speichern, damit sie beim Neustart abgerufen wird
$ service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]
Hier ist ein einfacher Oneliner, um das gesamte Fail2Ban-Gefängnis auf die richtige Art und Weise zu entsperren:
iptables -L f2b-recidive -n | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' | grep -v 0.0.0.0 | xargs -n 1 fail2ban-client set recidive unbanip
HINWEIS: Der Befehl iptables nimmt das Präfix "f2b-" vor dem Namen des Gefängnisses an, während "fail2ban-client" den tatsächlichen Namen des Gefängnisses angibt
Aufgrund der Funktionsweise fail2ban
gibt es nur zwei mögliche Lösungen:
fail2ban
Jails und starten Sie die Firewall neu.Dies ist das Skript, das ich verwende, um alle IP-Adressen für ein SSH-Gefängnis aufzuheben (ersetzen Sie einfach SSHD-Vorkommen durch den Namen des Gefängnisses, den Sie benötigen ... zB mysqld-auth)
#!/bin/bash
j=$(iptables -L f2b-sshd | grep -c 'REJECT')
for ((i=1;i<=j;i++))
do
fail2ban-client set sshd unbanip $(fail2ban-client status sshd | grep 'Banned IP list:' | cut -c23-)
done