Jak skonfigurować Fail2ban w celu ochrony serwera Linux

Ostatnia aktualizacja: 3 Wrzesień 2026
  • Wdrożenie systemu dynamicznego blokowania adresów IP w oparciu o analizę logów dostępowych.
  • Korzystanie z plików konfiguracyjnych .local w celu zapobiegania utracie ustawień podczas aktualizacji systemu.
  • Możliwość ochrony wielokanałowej dla krytycznych usług, takich jak SSH, serwery WWW, bazy danych i FTP.
  • Zarządzanie banami i odbanowywaniem w czasie rzeczywistym przy użyciu narzędzia wiersza poleceń fail2ban-client.

Specjalista IT pracujący z laptopem w nowoczesnym centrum danych, idealne miejsce do wprowadzania zabezpieczeń serwerów.

Wystawienie serwera Linux na działanie sieci to w zasadzie magnes dla botów. Jeśli nie skonfigurowałeś żadnych zabezpieczeń, prawdopodobnie masz już w logach tysiące nieudanych prób logowania; zautomatyzowane maszyny nieustannie próbują wprowadzić kombinację nazwy użytkownika i hasła, aby przejąć kontrolę nad Twoim komputerem za pomocą ataków siłowych.

Tu właśnie pojawia się Fail2ban, narzędzie, które działa jak niestrudzony strażnik. Nie jest to zapora sieciowa w najściślejszym tego słowa znaczeniu, ale analizuje logi systemowe i, gdy wykryje, że ktoś próbuje się włamać, zatrzaskuje mu drzwi przed nosem, blokując adres IP za pomocą narzędzi takich jak iptables lub nftables. Zobaczmy, jak skonfigurować Fail2ban, aby Twój serwer był twardym orzechem do zgryzienia.

Czym dokładnie jest Fail2ban i jak działa?

Mówiąc najprościej, Fail2ban to demon, który stale monitoruje pliki dziennika usług. Gdy znajdzie podejrzane wzorce pasujące do predefiniowanych reguł, zwanych filtrami , rozpoczyna zliczanie błędów. Jeśli adres IP osiągnie limit dozwolonych prób w określonym czasie, program wykonuje działanie , które zazwyczaj polega na dodaniu tego adresu IP do czarnej listy zapory sieciowej.

Konfiguracje te są zorganizowane w tzw. więzienia . Więzienie to zasadniczo zestaw reguł stosowanych do konkretnej usługi (takiej jak SSH, Apache lub MySQL). W ten sposób można mieć bardzo rygorystyczną politykę dostępu zdalnego i bardziej liberalną dla serwera WWW, zapewniając automatyczne blokowanie intruzów bez konieczności ręcznego sprawdzania logów co pięć minut.

  Zaawansowane kampanie phishingowe: techniki, przykłady i obrona

Symbol cyberataku z osobą trzymającą maskę hakera obok szaf serwerów Linux.

Instalacja zgodnie z dystrybucją Linuxa

Polecenie instalacji różni się nieznacznie w zależności od używanego systemu, ale generalnie jest ono dostępne w niemal wszystkich oficjalnych repozytoriach.

  • W Ubuntu i Debianie: To bardzo proste, wystarczy biec sudo apt update następnie sudo apt install fail2ban.
  • W systemach Rocky Linux i AlmaLinux: Ponieważ są to dystrybucje Enterprise, należy najpierw włączyć repozytorium EPEL za pomocą sudo dnf install epel-release a następnie zainstaluj pakiet za pomocą sudo dnf install fail2ban fail2ban-firewalld.
  • W systemie Alpine Linux: Użyj menedżera APK z sudo apk add fail2ban Ponieważ korzysta z OpenRC, należy włączyć tę funkcję za pomocą sudo rc-update add fail2ban default i zacznij od sudo rc-service fail2ban start.

Profesjonalne zdjęcie szaf serwerowych w centrum danych z niebieskim podświetleniem, przedstawiającym infrastrukturę serwerową.

Konfiguracja główna: sekret pliku .local

Bardzo częstym błędem jest bezpośrednia edycja pliku. jail.confNie rób tego! Ten plik może zostać nadpisany podczas aktualizacji systemu. Złotą zasadą jest utworzenie kopii o nazwie jail.localWszystkie parametry dodane do drugiego pliku będą miały pierwszeństwo przed parametrami oryginalnymi, a zmiany zostaną nadpisane. bezpieczny przed aktualizacjami.

Na początek możesz sklonować oryginalny plik za pomocą sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local a następnie otwórz go w ulubionym edytorze, takim jak nano lub vim. W sekcji [DEFAULT] W tym miejscu definiujesz ogólne zachowanie systemu:

  • czas banicji: Czas, przez który złośliwy adres IP pozostanie zamrożony. Może być wyrażony w sekundach lub minutach (np. 10 minut).
  • findtime: Przedział czasu, w którym Fail2ban sprawdza błędy. Jeśli ktoś popełni błąd 5 razy w ciągu godziny, ale czas znalezienia błędu wynosi 10 minut, nie zostanie zbanowany.
  • maksretry: Liczba nieudanych prób, które mogą wystąpić przed wyświetleniem komunikatu przez system Wystarczy i zablokuj IP.
  • ignorujip: Niezbędne, aby uniknąć bana. Tutaj musisz wpisać swój publiczny adres IP lub zasięg Twojej sieci VPN.
  Rodzaje zabezpieczeń komputerowych: ochrona danych

Zbliżenie kabli sieciowych światłowodowych podłączonych do serwera korporacyjnego, ilustrujące łączność sieciową i bezpieczeństwo.

Ochrona konkretnych usług krok po kroku

Po skonfigurowaniu ustawień ogólnych nadszedł czas na aktywację jailów dla usług, które najbardziej Cię niepokoją. Aby ochrona działała, musisz ją skonfigurować. enabled = true w odpowiedniej sekcji w ramach jail.local.

Dostęp SSH (najbardziej krytyczny punkt)

Port 22 jest celem numer jeden. Solidna konfiguracja zdefiniowałaby maxretry = 3 oraz bantime = 3600 (jedna godzina). Fail2ban odczyta plik. /var/log/auth.log (na Debianie/Ubuntu) lub / var / log / secure (w systemach CentOS/RHEL) w celu wykrycia błędów uwierzytelniania i uniemożliwienia dostępu atakującemu.

Serwery WWW (Apache i Nginx)

Jeśli masz witrynę internetową lub sklep internetowy, boty będą próbowały uzyskać dostęp do wrażliwych tras, takich jak: /wp-admin o /login.phpMożesz tworzyć niestandardowe filtry w /etc/fail2ban/filter.d/ aby wykryć te wzorce. Na przykład, aby Chroń WordPressaMonitorowane są błędy 403 lub nieudane próby wp-login.php, blokując adres IP, jeśli przekroczy on limity ustawione w więzieniu Apache lub Nginx.

Bazy danych i FTP

W przypadku MySQL można monitorować dziennik błędów dla frazy Dostęp zabroniony dla użytkownikaW przypadku FTP (takiego jak ProFTPD) kluczowe jest zapewnienie, że logpath dopasuj rzeczywistą ścieżkę do logów, ponieważ jeśli Fail2ban nie znajdzie pliku logu, ochrona po prostu nie zadziała.

Zaawansowane zarządzanie z fail2ban-client

Nie zawsze musisz edytować pliki i restartować usługi, aby wprowadzić szybkie zmiany. Polecenie fail2ban-client Umożliwia zarządzanie systemem na bieżąco z poziomu konsoli.

Aby zobaczyć, które więzienia są aktywne i ile adresów IP jest zablokowanych, użyj sudo fail2ban-client statusJeśli chcesz dokładniej przeanalizować usługę, np. SSH, uruchom sudo fail2ban-client status sshdPonadto, jeśli przez pomyłkę Zablokowałeś współpracownika Możesz też szybko samodzielnie zwolnić adres IP za pomocą polecenia sudo fail2ban-client set sshd unbanip IP_A_DESBLOQUEAR.

Konserwacja i rozwiązywanie problemów

Jeśli zauważysz, że Fail2ban nie blokuje tak, jak powinien, pierwszym miejscem, w którym należy to sprawdzić, jest plik dziennika narzędzia. /var/log/fail2ban.log. Za pomocą tail -f Możesz zobaczyć na bieżąco, kto jest banowany i dlaczego.

  Pliki Dotfiles do personalizacji pulpitu Hyprland w systemach Arch i EndeavourOS

Pamiętaj, że Fail2ban przechowuje status blokady w bazie danych SQLite /var/lib/fail2ban/fail2ban.sqlite3Jeśli zatem zrestartujesz serwer, zablokowane adresy IP zostaną odblokowane. pozostanie zablokowany do czasu wygaśnięcia okresu karnego. Za każdym razem, gdy wprowadzasz zmiany w plikach konfiguracyjnych, nie zapomnij zastosować zmian. sudo systemctl restart fail2ban.

Wdrożenie tego narzędzia przekształca serwer z łatwego celu w zautomatyzowaną fortecę, redukując obciążenie procesora poprzez odrzucanie złośliwego ruchu na poziomie sieci i pozwalając spać spokojnie, wiedząc, że boty nie będą w stanie dostać się do systemu metodą siłową. Łącząc użycie plików .local, zarządzanie określonymi więzieniami i stałe monitorowanie logów, uzyskujesz system obrony dogłębnej, niezbędny dla każdego administratora systemu Linux.