Jak prawidłowo odblokować adres IP za pomocą Fail2Ban


200

Korzystam z Fail2Ban na serwerze i zastanawiam się, jak prawidłowo odblokować adres IP.

Wiem, że mogę pracować bezpośrednio z IPTables: iptables -D fail2ban-ssh <number>

Ale czy nie ma na to sposobu fail2ban-client?

W podręcznikach stwierdza coś takiego: fail2ban-client get ssh actionunban <IP>. Ale to nie działa.

Poza tym nie chcę, /etc/init.d/fail2ban restartponieważ straciłoby to wszystkie zakazy na liście.

Odpowiedzi:


278

W przypadku Fail2Ban przed wersją 0.8.8:

fail2ban-client get YOURJAILNAMEHERE actionunban IPADDRESSHERE

W przypadku Fail2Ban v0.8.8 i nowszych:

fail2ban-client set YOURJAILNAMEHERE unbanip IPADDRESSHERE

Trudność polega na znalezieniu odpowiedniego więzienia:

  1. Użyj, iptables -L -naby znaleźć nazwę reguły ...
  2. ... następnie użyj, fail2ban-client statusaby uzyskać rzeczywiste nazwy więzienia. Nazwa reguły i nazwa więzienia mogą nie być takie same, ale powinno być jasne, z którą jest związana.

2
Jeśli masz następujący błąd 'Invalid Action name', przeczytaj tę odpowiedź
— Morgan Courbet

32
Najnowsze wersje fail2banpowinny być używane fail2ban-client set JAIL_NAME unbanip 1.2.3.4.
— tftd

1
Jaka jest domyślna nazwa więzienia? /etc/fail2ban/jail.confnie działa dla mnie
— Alex W

1
Nazwę więzienia można znaleźć w dzienniku fail2ban, jeśli szukasz adresu IP
— fred727,

7
sshd to dla mnie nazwa więzienia.
— agustaf

82

Ponieważ v0.8.8 jest unbanipdostępna opcja ( actionunbannie w tym celu). Można ją uruchomić za pomocą setpolecenia, jeśli spojrzysz na listę opcji, zobaczysz, że jest to składnia. Tak będzie (na pamięć, sprawdź):

fail2ban-client set ssh-iptables unbanip IPADDRESSHERE 

bardziej ogólny:

fail2ban-client set JAILNAMEHERE unbanip IPADDRESSHERE

pracuje dla mnie


3
Polecenie unbanip zostało dodane w wersji 0.8.8. Najlepsze rozwiązanie, jeśli korzystasz z wersji 0.8.8 lub nowszej.
— Alexander Garden

1
Problem związany z tym w trackerze fail2ban jest następujący: github.com/fail2ban/fail2ban/issues/132
— kolejne

to jest poprawna odpowiedź dla aktualnych wersji. Dziękuję Ci!
— billynoah

uzyskiwanie „Niepoprawne polecenie (brak ustawionej akcji lub jeszcze niewdrożone)”
— Tom

musisz podać poprawną nazwę więzienia (na przykład sshd lub sshd-dos, zobacz swój dziennik fail2ban)
— mirage

53

Przykład dla SSH w trybie interaktywnym.

wpisz bash:

fail2ban-client -i

następnie w trybie interaktywnym wpisz status więzienia:

status sshd

dostaniesz:

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

następnie wpisz interaktywny tryb fail2ban:

set sshd unbanip 203.113.167.162

dostaniesz:

203.113.167.162

oznacza to, że nie ma już 203.113.167.162na liście banów.


3
Dla mnie nazwa więzienia to sshd(Ubuntu 16)
— scipilot

W moim przypadku jest napisane, że całkowity zbanowany: 6, ale lista zakazanych
— adresów

21

Odpowiedź ukody jest błędna:

Zadzwoń fail2ban-clientbez parametrów, a zobaczysz listę możliwych poleceń:

get JAIL actionunban ACT             

Pobiera to polecenie unban dla akcji ACT dla JAIL.

Spójrz na parametr akcji zdefiniowanego w więzieniu, prawdopodobnie masz akcję iptables, a może trochę więcej jak sendmail, whois lub cokolwiek innego. więc jeśli twoja akcja była iptables, będzie to wyglądać tak:

fail2ban-client get JAIL actionunban iptables

a odpowiedź będzie:

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

Pokaże ci tylko, co musiałbyś napisać za unban. Nie ma samego polecenia odblokowania.


3
Tak, to działało dla mnie, aby odblokować więzienie SSH iptables -D fail2ban-ssh -s <IP> -j DROP. Dzięki ingo!
— Deele,

8

Jeśli 192.168.2.1 jest zbanowany

sudo iptables -L

Sprawdź, w którym łańcuchu jest zabronione, np

Chain fail2ban-sasl (1 referencje)

DROP all - 192.168.2.1 w dowolnym miejscu

Następnie:

# 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

4

Najpierw musisz uzyskać nazwę więzienia. Możesz uzyskać listę (w większości przypadków będzie to tylko więzienie ssh):

fail2ban-client status

Po uzyskaniu nazwy więzienia możesz sprawdzić, które adresy IP są ignorowane.

fail2ban-client get ssh ignoreip

Jeśli twój adres IP znajduje się na liście ignorowanych, możesz go usunąć poprzez:

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

Usuń wpis hosta:

fail2ban-client reload

2
Lista ignorowanych jest listą adresów IP, których nigdy nie należy blokować. Nie ma to żadnego związku z listą obecnie zablokowanych adresów IP, czyli listą, z której OP chce usunąć adres IP.
— jlh

3

Korzystanie z 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

Zakłada się, że użyto host.deny .... Ale jest to nadal bardziej przydatne niż rzeczy, które próbują zmienić metodę odblokowywania adresów IP w starszych wersjach za pomocą actionunban...
— Gert van den Berg

delignoreipDziałania nie usuwając IP z zakazem, jest usunięcie adresu IP z listy ignorowanych IP (czyli IP, który nigdy nie będzie zakazane).
— Tonin

2

niestety w wersji 0.8.2 klienta fail2ban polecenie:

fail2ban-client get jail actionunban ipaddress

nie działa. Aby rozwiązać problem, najlepszym wyborem jest uaktualnienie fail2ban do najnowszej wersji i użycie nowej opcji:

unbanip



0

Jeśli korzystasz z wersji v0.10.2:

sudo fail2ban-client unban YOUR_IP_ADDRESS

To z pomocy:

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

Potwierdzono działanie w moim przypadku, gdy najprawdopodobniej zostałem zbanowany z powodu wielokrotnego logowania klienta ssh przy użyciu nieprawidłowego hasła.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.