Usuń wszystkie bany fail2ban w systemie Ubuntu Linux


16

Jak mogę usunąć wszystkie bany fail2ban w Ubuntu? Próbowałem wszystkiego, ale nie rozumiem.

Chcę tylko usunąć wszystkie zakazy - ale nie znam żadnych adresów IP.


1
Zakazy są zwykle wykonywane na adresach IP za pośrednictwem zapory, więc powinieneś przyjrzeć się regułom zapory.
— Julie Pelletier

tak, wiem. ale chcę usunąć wszystkie zakazy bez podawania adresu IP
— Patrick

Odpowiedzi:


26

Zaktualizowana odpowiedź

Od wersji 0.10.0 fail2ban-clientzawiera unbanpolecenie, którego można używać na dwa sposoby:

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

Ponadto restart <JAIL>, reload <JAIL>i reloadkomendy teraz też mają --unbanopcję.

Stara odpowiedź

fail2ban używa iptablesdo blokowania ruchu. Jeśli chcesz zobaczyć adresy IP, które są obecnie zablokowane, wpisz

iptables -L -n

i poszukaj różnych nazwanych łańcuchów fail2ban-something, gdzie somethingwskazuje na więzienie fail2ban (na przykład Chain f2b-sshdodnosi się do więzienia sshd). Jeśli chcesz usunąć blok tylko dla jednego adresu IP <IP>dla danego więzienia <JAIL>, fail2ban oferuje własnego klienta:

fail2ban-client set <JAIL> unbanip <IP>

Alternatywnie możesz użyć numerów linii. Najpierw wypisz iptablesreguły z numerami linii:

iptables -L -n --line-numbers

Następnie możesz użyć

iptables -D fail2ban-somejail <linenumber> 

aby usunąć pojedynczy wiersz ze stołu. O ile wiem, nie ma opcji wyboru zakresu numerów linii, więc myślę, że musiałbyś zawinąć to polecenie w pętlę for:

for lin in {200..1}; do
   iptables -D fail2ban-somejail $lin
done

Tutaj podniosłem liczbę 200. Sprawdź własne dane wyjściowe polecenia za pomocą --line-numbersi zwróć uwagę, że ostatni wiersz (z RETURN) powinien pozostać. Zobacz komentarz @ roaima poniżej, aby zapoznać się z uzasadnieniem odliczania.


Dzięki @roaima! Odpowiednio zaktualizuję odpowiedź.
— ph0t0nix,

1
@roaima Tak to jest (przynajmniej w Zsh i Bash): echo {5..1}spowoduje 5 4 3 2 1.
— ph0t0nix,

Uratowałeś mnie. Wielkie dzięki. Dodaj pełne polecenie, ponieważ musiałem dowiedzieć się, że potrzebuję klienta fail2ban w ramach twojego polecenia. (Ponieważ jestem noobem)
— sebastian.roibu

Stara odpowiedź jest nadal przechowywana w pamięci podręcznej DuckDuckGo, przyszła powiedzieć to samo, co @roaima - snipboard.io/0oZkXy.jpg
— Ari

15

Najlepszym sposobem na odblokowanie wszystkich adresów IP jest ustawienie bantime na 1 sekundę, a następnie wszystkie adresy IP zostaną natychmiast zwolnione.

fail2ban-client set JailName bantime 1

Następnie możesz ustawić właściwy czas blokady.

Lepiej pozwolić, by fail2ban zrobił dla ciebie odblokowanie. Nie edytuj ręcznie iptables samodzielnie.


1
To jedyna poprawna odpowiedź tutaj. Fail2ban utrzymuje własną bazę danych banów, która musi być czyszczona niezależnie. Każda odpowiedź mówiąca o usunięciu reguł iptables ignoruje to, że w momencie ponownego uruchomienia fail2ban ponownie doda reguły, które właśnie usunąłeś z powrotem do iptables. Ponadto nie każda konfiguracja fail2ban używa iptables do implementacji zakazów.
— Cliff Armstrong

3
znajdź wszystkie więzienia zfail2ban-client status
— Flion

Właśnie wydałem to polecenie i obserwuję, jak liczba adresów IP w moim więzieniu spada do zera, gdy fail2ban przetwarza więzienie. Nie dzieje się to naprawdę szybko, ale to dobrze, w więzieniu było ponad pięć tysięcy wpisów. Dobra odpowiedź!
— Eric M

5

Najnowszy fail2ban-client(0.10) ma unban -allpolecenie. Więzienia można również indywidualnie „restartować”, skutecznie usuwając zakazy.

Jeśli masz starszą wersję, ta sztuczka może działać w przypadku automatycznych tymczasowych zakazów: usuń więzienie zawierające zakaz, a następnie uruchom ponownie fail2ban, aby odtworzyć (teraz puste) więzienie.

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

1
-wszystko czy -wszystko? Lub - wszyscy?
— Wildcard

3

Zapisz konfigurację iptable w pliku

$ iptables-save > iptables.conf

Edytuj go za pomocą dowolnego edytora, który Ci się podoba. Następnie wczytaj konfigurację z powrotem do iptables

$ iptables-restore < iptables.conf

Nie zapomnij zapisać konfiguracji w iptables, aby mogła zostać pobrana przy ponownym uruchomieniu

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

Jest to jeden ze sposobów, w jaki można to zrobić. Dzięki.
— User9102d82,

3

1. zatrzymanie usługi wyczyści wszystkie reguły dodane przez fail2ban

service fail2ban stop

2. Jeśli nie masz żadnych innych reguł iptables, możesz je opróżnić

iptables -F

uważaj: spowoduje to usunięcie wszelkich innych reguł w iptables.


3

Oto prosty oneliner, aby we właściwy sposób odblokować całe więzienie fail2ban:

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

UWAGA: komenda iptables przyjmuje przedrostek „f2b-” przed nazwą więzienia, a „fail2ban-client” rzeczywistą nazwę więzienia


To najlepsza odpowiedź dla wersji fail2ban poniżej 0.10. Możesz przejść dalej, tworząc alias w .bashrc, np. Fail2ban-purge z jednym parametrem, aby wyczyścić całe więzienie. Po prostu zastąp powyższe słowo 1 $ i użyj aliasu jako fail2ban-purge <JAIL_NAME>.
— ADDISON74,

2

Ze względu na sposób fail2bandziałania istnieją tylko dwa możliwe rozwiązania:

  • Stwórz skrypt konfiguracyjny zapory ogniowej, który zawiera fail2banwięzienia i zrestartuj zaporę ogniową.
  • Usuń reguły zapory blokujące adresy IP, które chcesz odblokować.

2

To jest skrypt, którego używam do odblokowania wszystkich adresów IP dla więzienia ssh (wystarczy zastąpić sshd okazją potrzebną nazwą więzienia ... np. 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
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.