Jak mogę usunąć wszystkie bany fail2ban w Ubuntu? Próbowałem wszystkiego, ale nie rozumiem.
Chcę tylko usunąć wszystkie bany – ale nie znam żadnych adresów IP.
Komentarze
- Zakazy są zwykle nakładane na adresy IP przez zaporę, więc powinieneś zapoznać się z regułami zapory.
- tak, wiem. ale chcę wyczyścić wszystkie bany bez podawania adresu IP
- ” Próbowałem wszystkiego ” nie, nie zrobiłeś ' t. Czego próbowałeś?
Odpowiedź
Zaktualizowana odpowiedź
Od wersji 0.10. 0 fail2ban-client
zawiera polecenie unban
, 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 polecenia restart <JAIL>
, reload <JAIL>
i reload
mają teraz również opcja --unban
.
Stara odpowiedź
fail2ban używa iptables
do blokowania ruchu. Jeśli chcesz zobaczyć adresy IP, które są obecnie zablokowane, wpisz
iptables -L -n
i poszukaj różnych łańcuchów o nazwie fail2ban-something
, gdzie something
wskazuje na więzienie fail2ban (na przykład Chain f2b-sshd
oznacza więzienie sshd
). Jeśli chcesz usunąć blokadę 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 reguły iptables
z numerami wierszy:
iptables -L -n --line-numbers
Następnie możesz użyć
iptables -D fail2ban-somejail <linenumber>
, aby usunąć pojedynczy wiersz z tabeli. 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 utworzyłem liczbę 200 w górę. Sprawdź własne wyjście polecenia za pomocą --line-numbers
i zwróć uwagę, że ostatnia linia (z RETURN
) powinna pozostać. Zobacz komentarz @roaima „poniżej, aby zapoznać się z uzasadnieniem odliczania.
Komentarze
- Uratowałeś mnie. Wielkie dzięki. Dodaj pełne polecenie ponieważ musiałem wymyślić, że potrzebuję klienta fail2ban-client przed twoją komendą. (Ponieważ jestem noobem)
Odpowiedź
Najlepszym sposobem na odblokowanie wszystkich adresów IP jest ustawienie bantime na 1 sekundę, a wtedy wszystkie adresy IP zostaną natychmiast zwolnione.
fail2ban-client set JailName bantime 1
Następnie możesz ustawić właściwy czas cofnięcia banowania.
Lepiej pozwolić fail2ban na wykonanie odbanowania za Ciebie. Nie edytuj ręcznie iptables samodzielnie.
Komentarze
- To jest jedyna poprawna odpowiedź. Fail2ban utrzymuje własną bazę danych banów, którą należy wyczyścić niezależnie . Każda odpowiedź dotycząca usuwania reguł iptables ignoruje fakt, że w momencie rozpoczęcia tworzenia kopii zapasowej fail2ban ponownie doda reguły, które właśnie skasowałeś, z powrotem do iptables. Ponadto nie każda konfiguracja fail2ban wykorzystuje iptables do implementacji banów.
- znajdź wszystkie więzienia z
fail2ban-client status
- Właśnie wydałem to polecenie i obserwuję, jak liczba adresów IP w moim więzieniu spada do zera, ponieważ fail2ban przetwarza więzienie. Nie robi dzieje się naprawdę bardzo szybko, ale ' jest OK, w więzieniu było ponad pięć tysięcy wpisów. Dobra odpowiedź!
Odpowiedź
najnowsze fail2ban-client
(0,10) zawiera polecenie unban -all
. Jail może być również indywidualnie „restartowany”, w efekcie vely czyszczenia banów.
Jeśli masz starszą wersję, ta sztuczka może działać w przypadku automatycznych tymczasowych zakazów: usuń więzienie, które zawiera zakaz, a następnie uruchom ponownie fail2ban, aby (teraz puste) więzienie zostało odtworzone.
$ fail2ban-client stop sshd Jail stopped $ systemctl restart fail2ban
Komentarze
- -all czy —all? Lub – all?
Answer
-
Zatrzymanie usługi spowoduje wyczyszczenie wszystkich dodanych reguł by fail2ban
service fail2ban stop
-
Jeśli nie masz innych reguł iptables, możesz je opróżnić
iptables -F
Uważaj: spowoduje to wymazanie wszelkich innych reguł w twoim iptables .
Komentarze
- Wystarczyło zatrzymać i zacząć od nowa.
Odpowiedź
Zapisz konfigurację iptable do pliku
$ iptables-save > iptables.conf
Edytuj go za pomocą dowolnego edytora, a następnie załaduj konfigurację z powrotem do iptables
$ iptables-restore < iptables.conf
Nie zapomnij zapisać konfiguracji w iptables, aby została wybrana po ponownym uruchomieniu
$ service iptables save iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]
Odpowiedz
oto prosty oneliner do odblokowania całości fail2ban jail we właściwy sposób:
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: polecenie iptables przyjmuje prefiks „f2b-” przed nazwą więzienia, a „fail2ban-client” prawdziwą nazwą więzienia
Komentarze
- To najlepsza odpowiedź dla wersji fail2ban poniżej 0.10. Możesz przejść dalej, tworząc alias w .bashrc, taki jak fail2ban-purge z jednym parametrem, aby wyczyścić całe więzienie. Po prostu zastąp słowo recydywalne powyżej $ 1 i użyj aliasu jako fail2ban-purge < JAIL_NAME >.
Odpowiedź
Ze względu na sposób działania fail2ban
istnieją tylko dwa możliwe rozwiązania:
- Utwórz skrypt konfiguracyjny zapory, który zawiera
fail2ban
więzienia i zrestartuj zaporę. - Usuń reguły zapory blokujące adresy IP, które chcesz odblokować .
Odpowiedź
To jest skrypt, którego używam do odblokowania wszystkich adresów IP w więzieniu ssh ( po prostu zastąp wystąpienie sshd nazwą więzienia, której potrzebujesz … 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
Odpowiedź
Może ten skrypt mógłby pomóc komuś z wersją < 0.10.0 jak ja:
#!/bin/bash for JAIL in $(fail2ban-client status | grep "Jail list:" | awk "BEGIN {FS="\t"} {print $2}" | sed "s/, / /g") do for IP in $(fail2ban-client status ${JAIL} | grep "Banned IP list:" | awk "BEGIN {FS="\t"} {print $2}" | sed "s/ /\n/g") do fail2ban-client set ${JAIL} unbanip ${IP} done done unset JAIL IP exit 0