Mam skonfigurowany fail2ban jak poniżej:
- zablokuj ip po 3 nieudanych próbach
- zwolnij adres IP po upływie 300 sekund
Działa to idealnie i chcę zachować to w ten sposób, aby prawidłowy użytkownik miał szansę ponowić logowanie po upływie limitu czasu. Teraz chcę wdrożyć regułę, w której jeśli to samo IP zostanie wykryte jako atak i zablokowane, odblokowane 5 razy, trwale zablokuj IP i nigdy więcej nie odblokuj. Czy można to osiągnąć za pomocą samego fail2ban, czy muszę napisać własny skrypt, aby to zrobić?
Robię to w centach.
Odpowiedzi:
Przed wersją 0.11 nie było domyślnej funkcji ani ustawienia w fail2ban, aby to osiągnąć. Ale począwszy od nadchodzącej wersji 0.11, czas banowania jest automatycznie obliczany i rośnie wykładniczo z każdym nowym przestępstwem, co w dłuższej perspektywie będzie oznaczało mniej więcej stały blok.
Do tego czasu najlepszym rozwiązaniem jest konfiguracja fail2ban do monitorowania własnego pliku dziennika . Jest to proces dwuetapowy ...
Krok 1
Możemy potrzebować utworzyć filtr, aby sprawdzić BAN w pliku dziennika (plik dziennika fail2ban)
Krok 2
Musimy zdefiniować więzienie , podobnie jak poniżej ...
Z technicznego punktu widzenia nie jest to blok stały , a jedynie bloki na rok (które również możemy zwiększyć).
W każdym razie, jeśli chodzi o twoje pytanie (czy można to osiągnąć samemu fail2ban, czy też muszę napisać własny skrypt, aby to zrobić?) ... pisanie własnego skryptu może działać dobrze. Zalecam skonfigurowanie skryptu w celu wyodrębnienia często zbanowanych adresów IP, a następnie ich umieszczenie
/etc/hosts.deny
.źródło
sshd_config
może to potencjalnie zablokować tylko 3 nieudane logowania dla „sesji” sshd - a nie 3 nieudane logowania. Na przykład domyślnie osoba atakująca może spróbować [„pass1”, „pass2”, „pass3”] w jednej sesji, zanim sshd się rozłączy. W zależności od tego, jak sshd jest ustawione na rejestrowanie, może to wyglądać jako 1, 2 lub 3 próby niepowodzenia fail2ban.Wierzę, że jeśli umieścisz
bantime = -1
tę sekcję konfiguracji, jest to stały blok.źródło
bantime
na jakąkolwiek wartość ujemną jest trwałym zakazem (od Fail2Ban wer. 0.6.1 (2006/03/16))Phil Hagen napisał doskonały artykuł na ten temat. „ Trwale zablokuj powtarzających się przestępców za pomocą fail2ban ”.
Jego sugestia jest taka sama jak Pothi, ale zapewnia przewodnik krok po kroku.
Obejmowało to:
źródło
Aby rozwinąć odpowiedź Chin, jest to dość proste. Po prostu edytuj 2 ustawienia w
/etc/fail2ban/jail.local
celu dopasowania do swoich preferencji.źródło
fail2ban ma już więzienie, aby zakazać recydywy. Jeśli obejrzysz
/etc/fail2ban/jail.conf
, znajdziesz:Jak dodać w jail.local?
Dla Sprawdź LogLevel można zrobić:
fail2ban-client get loglevel
.W starej wersji fail2ban możesz dostać ten błąd .
źródło
Przejdź do vim, otwórz /etc/fail2ban/jail.conf
i po prostu zmodyfikuj po
fail2ban service restart
:źródło