Wie kann ich alle Fail2ban-Verbote in Ubuntu löschen? Ich habe alles versucht, aber ich verstehe es nicht.

Ich möchte nur alle Verbote löschen – aber ich kenne keine IP-Adressen.

Kommentare

  • Die Verbote werden normalerweise für IP-Adressen über Ihre Firewall durchgeführt. Sie sollten sich daher die Firewall-Regeln ansehen.
  • Ja, ich weiß. Aber ich möchte alle Verbote aufheben, ohne eine IP-Adresse anzugeben.
  • Ich habe alles versucht “ nein du hast nicht ‚ t. Was haben Sie versucht?

Antwort

Aktualisierte Antwort

Ab Version 0.10. 0 fail2ban-client enthält den Befehl unban, 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) 

Außerdem haben die Befehle restart <JAIL>, reload <JAIL> und reload jetzt auch Die Option --unban.

Alte Antwort

fail2ban verwendet iptables, um den Datenverkehr zu blockieren. Wenn Sie die derzeit blockierten IP-Adressen anzeigen möchten, geben Sie

iptables -L -n 

ein und suchen Sie nach den verschiedenen Ketten mit dem Namen fail2ban-something, wobei something auf das fail2ban-Gefängnis verweist (z. B. Chain f2b-sshd bezieht sich auf das Gefängnis sshd). Wenn Sie den Block nur für eine einzelne IP-Adresse <IP> für ein bestimmtes Gefängnis <JAIL> entfernen möchten, 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 

Als Nächstes können Sie

iptables -D fail2ban-somejail <linenumber> 

, um eine einzelne Zeile aus der Tabelle zu entfernen. Soweit ich weiß, gibt es keine Option zum Auswählen eines Bereichs von Zeilennummern. Ich denke, Sie müssten 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 sollte. Siehe @roaimas Kommentar unten für die Gründe für das Herunterzählen.

Kommentare

  • Sie haben mich gerettet. Vielen Dank. Bitte fügen Sie einen vollständigen Befehl hinzu weil ich herausfinden musste, dass ich einen fail2ban-Client für Ihren Befehl brauche. (Weil ich ein Noob bin)

Antwort

Der beste Weg, um alle IPs aufzuheben, besteht darin, die Bantime auf 1 Sekunde zu setzen. Dann werden alle IPs sofort freigegeben.

fail2ban-client set JailName bantime 1 

Danach können Sie die richtige Sperrzeit zurücksetzen.

Es ist besser, fail2ban das Aufheben der Sperrung für Sie durchführen zu lassen. Bearbeiten Sie iptables nicht manuell.

Kommentare

  • Dies ist hier die einzig richtige Antwort. Fail2ban unterhält eine eigene Sperrdatenbank, die unabhängig gelöscht werden muss Bei jeder Antwort über das Löschen von iptables-Regeln wird ignoriert, dass beim erneuten Starten von fail2ban die soeben gelöschten Regeln wieder zu iptables hinzugefügt werden. Außerdem verwendet nicht jede fail2ban-Konfiguration iptables zum Implementieren von Verboten.
  • Finde alle Jails mit fail2ban-client status
  • Ich habe gerade diesen Befehl ausgegeben und beobachte, wie die Anzahl der IPs in meinem Gefängnis gegen Null abnimmt, während fail2ban das Gefängnis verarbeitet passiert wirklich sehr schnell, aber das ‚ ist in Ordnung, es gab über fünftausend Einträge im Gefängnis. Gute Antwort!

Antwort

Die neueste fail2ban-client (0.10) hat Ein unban -all Befehl. Gefängnisse können auch einzeln „neu gestartet“ werden Löschen Sie die Verbote.

Wenn Sie eine ältere Version haben, funktioniert dieser Trick möglicherweise für automatische temporäre Verbote: 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 

Kommentare

  • -all oder -all? Oder –all?

Antwort

  1. Durch das Stoppen des Dienstes werden alle hinzugefügten Regeln bereinigt von fail2ban

    service fail2ban stop 
  2. Wenn Sie keine anderen iptables-Regeln haben, können Sie diese leeren

    iptables -F 

Seien Sie vorsichtig: Dadurch werden alle anderen Regeln in Ihren iptables gelöscht. .

Kommentare

  • Nur anzuhalten und dann erneut zu starten, war ausreichend.

Antwort

Speichern Sie die iptable-Konfiguration in der Datei

$ iptables-save > iptables.conf 

Bearbeiten Sie es mit einem beliebigen Editor, bevor Sie die Konfiguration wieder in iptables laden.

$ iptables-restore < iptables.conf 

Vergessen Sie nicht, die Konfiguration in iptables zu speichern, damit sie ausgewählt wird Beim Neustart

$ service iptables save iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ] 

Antwort

Hier ist ein einfacher Oneliner, mit dem das Ganze aufgehoben werden kann Fail2ban-Gefängnis auf die richtige Weise:

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 verwendet das Präfix „f2b-“ vor dem Gefängnisnamen, während „fail2ban-client“ den tatsächlichen Gefängnisnamen

Kommentare

  • Dies ist die beste Antwort für Fail2Ban-Versionen unter 0.10. Sie können in .bashrc einen Alias wie fail2ban-purge mit einem Parameter erstellen, um ein ganzes Gefängnis zu löschen. Ersetzen Sie einfach das oben genannte Rückfallwort durch $ 1 und verwenden Sie den Alias als fail2ban-purge < JAIL_NAME >.

Antwort

Aufgrund der Funktionsweise von fail2ban gibt es nur zwei mögliche Lösungen:

  • Erstellen Sie ein Firewall-Konfigurationsskript, das fail2ban -Jails enthält, und starten Sie die Firewall neu.
  • Entfernen Sie die Firewall-Regeln, die die IPs blockieren, die Sie aufheben möchten .

Antwort

Dies ist das Skript, mit dem ich alle IP-Adressen für ein SSH-Gefängnis aufheben möchte ( Ersetzen Sie einfach sshd occourence durch den Namen des benötigten Gefängnisses … 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 

Antwort

Vielleicht könnte dieses Skript jemandem mit einer Version < 0.10.0 wie mir helfen:

 #!/bin/bash for JAIL in $(fail2ban-client status | grep "Jail list:" | awk "BEGIN {FS="\t"} {print $2}" | sed "s/, / /g") do for IP in $(fail2ban-client status ${JAIL} | grep "Banned IP list:" | awk "BEGIN {FS="\t"} {print $2}" | sed "s/ /\n/g") do fail2ban-client set ${JAIL} unbanip ${IP} done done unset JAIL IP exit 0  

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.