Die Sperrungen werden normalerweise für IP-Adressen über Ihre Firewall vorgenommen. Sie sollten sich daher die Firewall-Regeln ansehen.
Julie Pelletier
Ja, ich weiß. aber ich will alle Verbote löschen , ohne eine IP - Adresse zu sagen
Patrick
Antworten:
26
Aktualisierte Antwort
Ab Version 0.10.0 fail2ban-clientgibt es den unbanBefehl, 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 reloadjetzt auch die --unbanOption.
Alte Antwort
fail2ban iptablesblockiert 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 somethingauf das fail2ban-Gefängnis verwiesen wird (zum Beispiel Chain f2b-sshdauf 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 iptablesRegeln 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-numbersund beachten Sie, dass die letzte Zeile (mit RETURN) bleiben soll. Siehe @ roaimas Kommentar unten für die Gründe für das Countdown.
Vielen Dank, @roaima! Ich werde die Antwort entsprechend aktualisieren.
ph0t0nix
1
@roaima Ja, es ist (zumindest in zsh und bash): echo {5..1}wird ergeben 5 4 3 2 1.
ph0t0nix
Du hast mich gerettet. Danke vielmals. Bitte fügen Sie einen vollständigen Befehl hinzu, da ich herausfinden musste, dass ich einen Fail2Ban-Client benötige, der nicht zu Ihrem Befehl gehört. (Weil ich ein Noob bin)
sebastian.roibu
Die alte Antwort ist immer noch auf DuckDuckGo zwischengespeichert, kam, um dasselbe zu sagen wie @roaima - snipboard.io/0oZkXy.jpg
Ari
14
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.
Dies ist die einzig richtige Antwort. Fail2ban unterhält eine eigene Ban-Datenbank, die unabhängig gelöscht werden muss. Bei jeder Antwort auf das Löschen von iptables-Regeln wird ignoriert, dass fail2ban nach dem Start die soeben gelöschten Regeln wieder zu iptables hinzufügt. Außerdem verwendet nicht jede fail2ban-Konfiguration iptables, um Sperren zu implementieren.
Cliff Armstrong
3
Finde alle Gefängnisse mitfail2ban-client status
Flion
Ich habe gerade diesen Befehl ausgegeben und beobachte, wie die Anzahl der IPs in meinem Gefängnis gegen Null sinkt, während fail2ban das Gefängnis bearbeitet. Es passiert nicht wirklich sehr schnell, aber das ist in Ordnung, es gab über fünftausend Einträge im Gefängnis. Gute Antwort!
Eric M
4
Die neueste fail2ban-client(0.10) hat einen unban -allBefehl. 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.
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
Dies ist die beste Antwort für Fail2Ban-Versionen unter 0.10. Sie können einen Alias in .bashrc wie fail2ban-purge mit einem Parameter erstellen, um ein ganzes Gefängnis zu bereinigen. Ersetzen Sie einfach das obige Wort durch $ 1 und verwenden Sie den Alias als fail2ban-purge <JAIL_NAME>.
ADDISON74
2
Aufgrund der Funktionsweise fail2bangibt es nur zwei mögliche Lösungen:
Erstellen Sie ein Firewall-Konfigurationsskript mit fail2banJails und starten Sie die Firewall neu.
Entfernen Sie die Firewall-Regeln, die die IP-Adressen blockieren, deren Sperrung Sie aufheben möchten.
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
Antworten:
Aktualisierte Antwort
Ab Version 0.10.0
fail2ban-client
gibt es denunban
Befehl, der auf zwei Arten verwendet werden kann:Darüber hinaus haben die Befehle
restart <JAIL>
,reload <JAIL>
undreload
jetzt auch die--unban
Option.Alte Antwort
fail2ban
iptables
blockiert den Datenverkehr. Wenn Sie die derzeit gesperrten IP-Adressen sehen möchten, geben Sie einund suchen Sie nach den verschiedenen Ketten mit dem Namen
fail2ban-something
, in denensomething
auf das fail2ban-Gefängnis verwiesen wird (zum BeispielChain f2b-sshd
auf das Gefängnissshd
). 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:Alternativ können Sie Zeilennummern verwenden. Listen Sie zunächst die
iptables
Regeln mit Zeilennummern auf:Weiter können Sie verwenden
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:
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 (mitRETURN
) bleiben soll. Siehe @ roaimas Kommentar unten für die Gründe für das Countdown.quelle
echo {5..1}
wird ergeben5 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.
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.
quelle
fail2ban-client status
Die neueste
fail2ban-client
(0.10) hat einenunban -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.
quelle
Speichern Sie die iptable-Konfiguration in einer Datei
Bearbeiten Sie es mit einem Editor, den Sie möchten, und laden Sie dann die Konfiguration zurück in iptables
Vergessen Sie nicht, die Konfiguration in iptables zu speichern, damit sie beim Neustart abgerufen wird
quelle
1. Wenn Sie den Dienst beenden, werden alle von fail2ban hinzugefügten Regeln gelöscht
service fail2ban stop
2. Wenn Sie keine anderen Iptables-Regeln haben, können Sie sie löschen
iptables -F
seien sie vorsichtig: dies löscht alle anderen regeln in ihren iptables.
quelle
Hier ist ein einfacher Oneliner, um das gesamte Fail2Ban-Gefängnis auf die richtige Art und Weise zu entsperren:
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
quelle
Aufgrund der Funktionsweise
fail2ban
gibt es nur zwei mögliche Lösungen:fail2ban
Jails und starten Sie die Firewall neu.quelle
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)
quelle