Löschen Sie alle fail2ban-Bans in Ubuntu Linux


16

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.


1
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.


1
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.

$ fail2ban-client stop sshd
Jail stopped
$ systemctl restart fail2ban

-alle oder -alle? Oder - alles?
Wildcard

3

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  ]

So könnte man das machen. Vielen Dank.
User9102d82

3

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.


3

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


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.

2

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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.