Fail2Ban

Pewnego pięknego dnia, siedząc przy swoim komputerze, zastanawiasz się: „Jak mogę zabezpieczyć mój serwer przed nieproszonymi gośćmi, którzy mają więcej uporu niż mój kuzyn próbujący przekonać mnie na każdym rodzinnych spotkaniu, że ziemia jest płaska?” Odpowiedź jest prosta: Fail2Ban! Ten wspaniały strażnik twojego serwerowego królestwa jest jak portier w luksusowym hotelu, który nie wpuszcza osób bez rezerwacji. Ale jak go skonfigurować? No to lecimy!

Instalacja Fail2Ban, wystarczy otworzyć terminal i użyć magicznych słów:

sudo apt-get install fail2ban

Dla użytkowników CentOS czy Fedora zamiast „apt-get” będzie „yum” lub „dnf”.

Konfiguracja Fail2Ban jest przechowywana w plikach konfiguracyjnych znajdujących się w katalogu /etc/fail2ban/. Najważniejszym plikiem konfiguracyjnym jest jail.local, który możesz utworzyć, jeśli go nie ma, aby uniknąć nadpisywania pliku jail.conf podczas aktualizacji Fail2Ban.

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

W jail.local możesz dostosować ustawienia pod siebie, jak DJ na weselu dostosowuje muzykę do gustu gości. Możesz ustawić, na przykład, ile razy ktoś może próbować zalogować się na twojego SSH zanim zostanie zbanowany, czy też jak długo ma trwać taki ban.

[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
findtime = 600
bantime = 36000

enabled: Określa, czy reguła jest włączona (true) czy wyłączona (false).
port: Określa usługę i port, które chcesz monitorować.
filter: Wskazuje na plik filtra, który zawiera definicje reguł do wykrywania nieudanych prób logowania.
logpath: Ścieżka do pliku dziennika, który będzie monitorowany.
maxretry: Określa liczbę prób autoryzacji, po której nastąpi blokada.
findtime: Określa okres czasu (w sekundach), w którym Fail2Ban będzie szukać nieudanych prób autoryzacji.
bantime: Określa czas, na jaki zostanie zablokowany adres IP (w sekundach).

Fail2Ban używa filtrów zdefiniowanych w /etc/fail2ban/filter.d/ do rozpoznawania podejrzanej aktywności. Jest tam wiele gotowych przepisów na różne serwisy, takie jak sshd, apache, nginx, i wiele innych. Jeśli chcesz dodać własny, to nic prostszego. Wystarczy stworzyć nowy plik z twoimi kryteriami.

Po skonfigurowaniu Fail2Ban, warto sprawdzić, czy wszystko działa jak należy. Możesz to zrobić, próbując zalogować się na serwer kilka razy z błędnym hasłem i obserwować, czy Fail2Ban rzeczywiście cię zbanuje. Oczywiście, pamiętaj, żeby robić to z rozsądkiem – nie chcesz przecież zablokować sobie dostępu na zawsze! 🙂

Aby uruchomić Fail2Ban, wystarczy wpisać:

sudo systemctl start fail2ban

Aby sprawdzić, czy nasz szeryf działa, można użyć:

sudo fail2ban-client status

I to wszystko! Teraz możesz spać spokojnie, wiedząc, że twój serwer jest chroniony przed niechcianymi intruzami. Pamiętaj, że Fail2Ban to tylko jeden z elementów zabezpieczenia serwera – zawsze warto mieć szerokie spojrzenie na bezpieczeństwo.