So bannen Sie eine IP-Adresse ordnungsgemäß mit Fail2Ban ab

200

Ich verwende Fail2Ban auf einem Server und frage mich, wie ich eine IP-Adresse ordnungsgemäß entsperren kann.

Ich weiß, dass ich direkt mit IPTables arbeiten kann: iptables -D fail2ban-ssh <number>

Aber gibt es keine Möglichkeit, dies mit dem zu tun fail2ban-client?

In den Handbüchern heißt es so etwas wie: fail2ban-client get ssh actionunban <IP>. Das geht aber nicht.

Außerdem möchte ich nicht, /etc/init.d/fail2ban restartdass dadurch alle Verbote in der Liste verloren gehen.

psp
quelle

Antworten:

278

Mit Fail2Ban vor v0.8.8:

fail2ban-client get YOURJAILNAMEHERE actionunban IPADDRESSHERE

Mit Fail2Ban v0.8.8 und höher:

fail2ban-client set YOURJAILNAMEHERE unbanip IPADDRESSHERE

Das Schwierigste ist, das richtige Gefängnis zu finden:

  1. Verwenden Sie iptables -L -n, um den Regelnamen zu finden ...
  2. ... dann verwenden Sie fail2ban-client status, um die tatsächlichen Gefängnisnamen zu erhalten. Der Regelname und der Gefängnisname sind möglicherweise nicht identisch, es sollte jedoch klar sein, welcher mit welchem ​​verwandt ist.
ukoda
quelle
2
Wenn Sie den folgenden Fehler haben 'Invalid Action name', lesen Sie diese Antwort
Morgan Courbet
32
Mit neueren Versionen fail2bansollten Sie verwenden fail2ban-client set JAIL_NAME unbanip 1.2.3.4.
29.
1
Wie lautet der Standardname für das Gefängnis? /etc/fail2ban/jail.conffunktioniert bei mir nicht
Alex W
1
Sie können den Namen des Gefängnisses im Protokoll von fail2ban finden, wenn Sie nach Ihrer IP suchen
fred727
7
sshd war der Gefängnisname für mich.
9.
82

Seit v0.8.8 gibt es die unbanipOption ( actionunbannicht für diesen Zweck). Sie kann durch den setBefehl ausgelöst werden . Wenn Sie sich die Liste der Optionen ansehen, sehen Sie, dass die Syntax wie folgt lautet. So wird es sein (auswendig, bitte überprüfen):

fail2ban-client set ssh-iptables unbanip IPADDRESSHERE 

allgemeiner:

fail2ban-client set JAILNAMEHERE unbanip IPADDRESSHERE

funktioniert bei mir

user157436
quelle
3
Der Unbanip-Befehl wurde in Version 0.8.8 hinzugefügt. Die beste Lösung, wenn Sie 0.8.8 oder höher ausführen.
Alexander Garden
1
Das Problem im Zusammenhang mit fail2ban tracker ist das folgende: github.com/fail2ban/fail2ban/issues/132
Folgen
Dies ist die richtige Antwort für aktuelle Versionen. Dankeschön!
Billynoah
Abrufen von "Ungültiger Befehl (keine festgelegte Aktion oder noch nicht implementiert)"
Tom
Sie müssen den korrekten Gefängnisnamen angeben (zum Beispiel sshd oder sshd-dos, siehe Ihr fail2ban-Protokoll)
Mirage
53

Beispiel für SSH im interaktiven Modus.

Bash eintippen:

fail2ban-client -i

Lesen Sie dann im interaktiven Modus den Status eines Gefängnisses:

status sshd

Du wirst kriegen:

Status for the jail: ssh
|- Filter
|  |- Currently failed: 0
|  |- Total failed: 6
|  `- File list:    /var/log/auth.log
`- Actions
   |- Currently banned: 1
   |- Total banned: 2
   `- Banned IP list:   203.113.167.162

Geben Sie dann im interaktiven fail2ban-Modus Folgendes ein:

set sshd unbanip 203.113.167.162

Du wirst kriegen:

203.113.167.162

es bedeutet nicht mehr 203.113.167.162in der Verbotsliste.

Amaroc
quelle
3
Für mich war der Gefängnisname sshd(Ubuntu 16)
scipilot 16.11.17
Bei mir heißt es total gebanned: 6, aber die Liste unter gebanned ip ist nur leer :( müssen durch Protokolle
verfolgen
21

Die Antwort von ukoda ist falsch:

Rufen Sie fail2ban-clientohne Parameter auf und Sie sehen eine Liste der möglichen Befehle:

get JAIL actionunban ACT             

Dadurch wird der Unban-Befehl für die Aktion ACT for JAIL abgerufen.

Schauen Sie in den Aktionsparameter des von Ihnen definierten Gefängnisses, Sie haben wahrscheinlich eine iptables-Aktion und vielleicht noch mehr wie sendmail, whois oder was auch immer. Wenn Ihre Aktion also iptables war, sieht sie folgendermaßen aus:

fail2ban-client get JAIL actionunban iptables

und die Antwort wird sein:

iptables -D fail2ban-NAME -s IP -j DROP

Es zeigt Ihnen nur, was Sie für ein Unban schreiben müssten. Es gibt keinen unban-Befehl an sich.

ingo
quelle
3
Ja, das hat bei mir funktioniert, um die Sperrung aus dem SSH-Gefängnis aufzuheben iptables -D fail2ban-ssh -s <IP> -j DROP. Danke ingo!
Deele
8

Wenn 192.168.2.1 gesperrt ist

sudo iptables -L

Überprüfen Sie, in welcher Kette es gesperrt ist, z

Kette fail2ban-sasl (1 Referenzen)

DROP all - 192.168.2.1 überall

Dann:

# to view the proper command for un-banning
sudo fail2ban-client get sasl actionunban
# actual command
iptables -D fail2ban-sasl -s 192.168.2.1 -j DROP
Lionel Broes
quelle
4

Sie müssen zuerst den Namen des Gefängnisses erfahren. Sie können die Liste erhalten (in den meisten Fällen handelt es sich nur um ein SSH-Gefängnis):

fail2ban-client status

Nachdem Sie den Namen des Gefängnisses erhalten haben, können Sie überprüfen, welche IP-Adressen ignoriert werden.

fail2ban-client get ssh ignoreip

Wenn sich Ihre IP in der Ignorierliste befindet, können Sie sie löschen über:

fail2ban-client set ssh delignoreip your_ip_address
vi /etc/hosts.deny

Entfernen Sie Ihren Host-Eintrag:

fail2ban-client reload
zainengineer
quelle
2
Die Ignorierliste ist eine Liste von IPs, die niemals gesperrt werden dürfen. Dies hat nichts mit der Liste der derzeit gesperrten IPs zu tun, dh der Liste, aus der OP eine IP entfernen möchte.
24.
3

Verwendung von fail2ban v.0.8.6:

$ sudo fail2ban-client status # to reveal your JAIL name (mine is ssh)
$ sudo fail2ban-client set ssh delignoreip your_ip_address
$ sudo nano /etc/hosts.deny # delete your ip address
$ sudo fail2ban-client reload
nehmen
quelle
Dies setzt voraus, dass hosts.deny die verwendete Aktion war .... Aber es ist immer noch nützlicher als Dinge, die versuchen, die Methode zum Aufheben des IP-Schutzes bei älteren Versionen zu ändern, indem actionunban...
Gert van den Berg
Die delignoreipAktion ist nicht eine IP von einem Verbot zu entfernen, wird das Entfernen eine IP aus der Liste der ignorierten IP (dh IP, die nie gebannt).
Tonin
2

leider mit version 0.8.2 von fail2ban-client der befehl:

fail2ban-client get jail actionunban ipaddress

läuft nicht. Um das Problem zu lösen, ist es am besten, fail2ban auf die neueste Version zu aktualisieren und die neue Option zu verwenden:

unbanip
Pol Hallen
quelle
2
fail2ban-client set sshd unbanip ip_here

würde funktionieren.

abhijithvijayan
quelle
1

Wenn eine IP in mehreren Gefängnissen ist, wird dies zu einem Schmerz.

Einzeiler, um 192.168.1.2 aus allen Gefängnissen zu entfernen:

 for jail in $(fail2ban-client status | grep 'Jail list:' | sed 's/.*Jail list://' | sed 's/,//g'); do fail2ban-client set $jail unbanip 192.168.1.2; done

ein Skript, um das gleiche zu tun https://gist.github.com/yolabingo/c810db6fe7f8bfcb9eb4f6ffc531e474

Yolabingo
quelle
0

Wenn Sie Version v0.10.2 ausführen:

sudo fail2ban-client hat DEINE_IP_ADRESSE aufgehoben

Dies ist aus der Hilfe:

unban <IP> ... <IP> unbans <IP> (in all jails and database)

Es wurde bestätigt, dass es in meinem Fall funktioniert, wenn ich höchstwahrscheinlich gesperrt wurde, weil sich der SSH-Client wiederholt mit einem falschen Passwort angemeldet hat.

kashiraja
quelle