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.
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.
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ć.
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
Odpowiedzi:
Zaktualizowana odpowiedź
Od wersji 0.10.0
fail2ban-client
zawieraunban
polecenie, którego można używać na dwa sposoby:Ponadto
restart <JAIL>
,reload <JAIL>
ireload
komendy teraz też mają--unban
opcję.Stara odpowiedź
fail2ban używa
iptables
do blokowania ruchu. Jeśli chcesz zobaczyć adresy IP, które są obecnie zablokowane, wpiszi poszukaj różnych nazwanych łańcuchów
fail2ban-something
, gdziesomething
wskazuje na więzienie fail2ban (na przykładChain f2b-sshd
odnosi się do więzieniasshd
). Jeśli chcesz usunąć blok tylko dla jednego adresu IP<IP>
dla danego więzienia<JAIL>
, fail2ban oferuje własnego klienta:Alternatywnie możesz użyć numerów linii. Najpierw wypisz
iptables
reguły z numerami linii:Następnie możesz użyć
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:
Tutaj podniosłem liczbę 200. Sprawdź własne dane wyjściowe polecenia za pomocą
--line-numbers
i zwróć uwagę, że ostatni wiersz (zRETURN
) powinien pozostać. Zobacz komentarz @ roaima poniżej, aby zapoznać się z uzasadnieniem odliczania.źródło
echo {5..1}
spowoduje5 4 3 2 1
.Najlepszym sposobem na odblokowanie wszystkich adresów IP jest ustawienie bantime na 1 sekundę, a następnie wszystkie adresy IP zostaną natychmiast zwolnione.
Następnie możesz ustawić właściwy czas blokady.
Lepiej pozwolić, by fail2ban zrobił dla ciebie odblokowanie. Nie edytuj ręcznie iptables samodzielnie.
źródło
fail2ban-client status
Najnowszy
fail2ban-client
(0.10) maunban -all
polecenie. 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.
źródło
Zapisz konfigurację iptable w pliku
Edytuj go za pomocą dowolnego edytora, który Ci się podoba. Następnie wczytaj konfigurację z powrotem do iptables
Nie zapomnij zapisać konfiguracji w iptables, aby mogła zostać pobrana przy ponownym uruchomieniu
źródło
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.
źródło
Oto prosty oneliner, aby we właściwy sposób odblokować całe więzienie fail2ban:
UWAGA: komenda iptables przyjmuje przedrostek „f2b-” przed nazwą więzienia, a „fail2ban-client” rzeczywistą nazwę więzienia
źródło
Ze względu na sposób
fail2ban
działania istnieją tylko dwa możliwe rozwiązania:fail2ban
więzienia i zrestartuj zaporę ogniową.źródło
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)
źródło