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.

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

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

Philip
źródło
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
Rolf
źródło
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  ]
Subdigger
źródło
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.

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

Vedran B.
źródło
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ć.
Julie Pelletier
źródło
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
Claudio Zanetta
źródło