Fail2ban jest narzędziem pomagającym zabezpieczyć serwery oparte o systemy Linux skanując logi (np. logi serwera ssh lub ftp), wyszukując błędy autentykacji, po czym wykonując aktualizacje ustawień firewall, żeby odrzucał połączenia z danego IP.

Wszystkie nałożone bany są aktywne tylko podczas pracy programu fail2ban i są usuwane podczas jego zatrzymania. W konsekwencji tego bany nie są pamiętane pomiędzy restartami programu!

Instalacja

Konfiguracja

Zarządzanie


 

Instalacja

Fail2ban jest dostępny w repozytoriach Debiana i Ubuntu, zatem aby go zainstalować wydajemy polecenie:

apt-get install fail2ban

 

Konfiguracja

Fail2ban w domyślnej konfiguracji włączony będzie dla autoryzacji poprzez ssh.

Kopiujemy domyślny plik  /etc/fail2ban/jail.conf zawierający standardową konfigurację do pliku /etc/fail2ban/jail.local gdyż domyślny plik może zostać nadpisany podczas aktualizacji:

cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

W pliku /etc/fail2ban/jail.local można zmodyfikować kilka parametrów. Kilka najważniejszych to:

  • ignoreip: w tym parametrze podajemy listę adresów IP które powinny być wyłączone z zasad fail2ban. Można dodać swój adres IP.
  • bantime: określa jak długo ( w sekundach)  ban będzie aktywny (domyślnie jest 10 minut).
  • maxretry: ten parametr określa domyślną ilość prób połączenia zanim ban zostanie nałożony na adres IP(domyślnie jest 3).
  • destemail: ta opcja pozwala ustawić adres e-mail, na który będą przychodzić powiadomienia zdarzeń
  • logpath:  ważne aby sprawdzić dla każdej monitorowanej usługi czy ścieżka do pliku logów podana w parametrze logpath jest prawidłowa

Jeśli chcemy zmienić monitorowane parametry dla danej usługi to modyfikujemy jej sekcję:

[ssh] -> nazwa jaila
enabled = true -> czy włączony  (jeśli wyłączony to enabled = false)
port = ssh  -> port usługi - przyjmuje wartość numeryczną lub nazwę portu, listę nazw portów można uzyskać z pliku /etc/services
filter  = sshd -> pierwszy człon nazwy filtra logów: /etc/fail2ban/filter.d/sshd.conf
logpath  = /var/log/auth.log -> ścieżka do pliku monitorowanych logów - możliwa tylko jedna wartość, ale dopuszczalna jest *
maxretry = 15 -> maksymalna ilość nieudanych prób autoryzacji

 

Zarządzanie

Fail2ban monitoruje logi plików dla prób połączeń. Jeśli z danego adresu IP zostanie przekroczona maksymalna ilość prób połączeń to blokuje dostęp dla tego adresu i zdarzenie jest logowane do pliku /var/log/fail2ban.log.

Wyświetlenie bieżącej konfiguracji:

fail2ban-client –d

Wyświetlanie bieżących banów:

iptables -L -n -v

Jeśli chcemy usunąć bana to znajdujemy nazwę łańcucha(jail) i numer reguły w tym łańcuchu dla adresu, który chcemy odblokować(nr_reg) i wykonujemy:

 iptables -D jail nr_reg

Restart usługi fail2ban wykonujemy za pomocą polecenia:

/etc/init.d/fail2ban restart