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.

psp
źródło

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.
ukoda
źródło
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

użytkownik157436
źródło
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.

Amarok
źródło
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.

ingo
źródło
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
Lionel Broes
źródło
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
zainengineer
źródło
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
brać
źródło
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
Pol Hallen
źródło
2
fail2ban-client set sshd unbanip ip_here

pracowałbym.

abhijithvijayan
źródło
1

Jeśli adres IP znajduje się w wielu więzieniach, staje się to bólem.

one-liner do usunięcia 192.168.1.2 ze wszystkich więzień:

 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

skrypt, aby zrobić to samo https://gist.github.com/yolabingo/c810db6fe7f8bfcb9eb4f6ffc531e474

yolabingo
źródło
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.

kashiraja
źródło