Jak zainstalować i skonfigurować Fail2Ban w systemie Linux
9 min czytania - 14 maja 2026

Przewodnik krok po kroku dotyczący instalacji, konfiguracji i testowania Fail2Ban na serwerach Linux opartych na Ubuntu, Debianie i RHEL.
Jak zainstalować i skonfigurować Fail2Ban w systemie Linux
Fail2Ban monitoruje logi serwera pod kątem podejrzanej aktywności i automatycznie blokuje niepożądane adresy IP poprzez aktualizację reguł zapory sieciowej. Powstrzymuje ataki typu brute-force, zmniejsza ilość zbędnych wpisów w logach i po skonfigurowaniu działa cicho w tle. Ten przewodnik obejmuje instalację na Ubuntu/Debianie, podstawową konfigurację, ustawienia jail oraz kilka zaawansowanych opcji, o których warto wiedzieć.
Wymagania
Fail2Ban działa na większości dystrybucji Linuksa: Ubuntu, Debian, AlmaLinux, CentOS, RHEL, Rocky Linux i Fedora. Będziesz potrzebować:
- Python 3 zainstalowany w systemie
- Uprawnienia administratora lub sudo do instalacji pakietów i wprowadzania zmian w zaporze sieciowej
- Aktywna zapora sieciowa (iptables, nftables, ufw lub firewalld)
- Pliki dziennika rejestrujące nieudane próby logowania (
/var/log/auth.logw systemach opartych na Debianie,/var/log/securew systemach opartych na RHEL)
W systemach opartych na RHEL należy najpierw włączyć repozytorium EPEL. Przed instalacją Fail2Ban upewnij się, że zapora działa, wpisując ufw status lub systemctl status firewalld.
Instalacja Fail2Ban na Ubuntu/Debianie
Zaktualizuj pakiety i zainstaluj Fail2Ban:
sudo apt update && sudo apt upgrade -y
sudo apt install fail2banWłącz usługę, aby uruchamiała się podczas startu systemu, a następnie ją uruchom:
sudo systemctl enable fail2ban
sudo systemctl start fail2banSkopiuj domyślną konfigurację do lokalnego pliku nadpisującego. Zawsze edytuj jail.local, a nie jail.conf, aby aktualizacje pakietów nie nadpisały Twoich ustawień:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.localSprawdź, czy wszystko działa:
sudo systemctl status fail2ban
sudo fail2ban-client statusPierwsze polecenie powinno wyświetlić komunikat „Active: active (running)”. Drugie wyświetla listę aktywnych jaili. Sprawdź, czy Fail2Ban jest włączony przy uruchomieniu systemu za pomocą sudo systemctl is-enabled fail2ban.
Konfiguracja Jails
Ustawienia domyślne
Otwórz /etc/fail2ban/jail.local i dostosuj sekcję [DEFAULT] . Te ustawienia mają zastosowanie do wszystkich jaili, chyba że zostaną nadpisane:
| Parametr | Zalecana wartość | Opis |
|---|---|---|
bantime | 3600 | Blokuje adres IP na 1 godzinę |
findtime | 600 | Zlicza niepowodzenia w 10-minutowym oknie |
maxretry | 3 do 5 | Błędy przed uruchomieniem blokady |
ignoreip | 127.0.0.1/8 ::1 | Adresy IP, które nigdy nie zostały zablokowane |
Dodaj swój własny adres IP do zarządzania ignoreip , aby się nie zablokować. Przykład: ignoreip = 127.0.0.1/8 ::1 203.0.113.50.
Ochrona SSH
Włącz ograniczenie SSH w jail.local:
[sshd]
enabled = trueSprawdź, czy logpath wskazuje na plik dziennika odpowiedni dla Twojej dystrybucji. Jeśli przeniosłeś SSH na niestandardowy port (np. 2222), zaktualizuj port parametr odpowiednio.
Ochrona serwera WWW
Włącz jail odpowiadający Twojemu serwerowi WWW:
- Nginx:
[nginx-http-auth]w przypadku niepowodzeń uwierzytelniania,[nginx-botsearch]dla złośliwych botów - Apache:
[apache-auth]dla uwierzytelniania,[apache-badbots]dla botów
Recidive Jail
Jail [recidive] jail przechwytuje adresy IP, które są ciągle blokowane w innych jailach i nakłada dłuższą karę, zazwyczaj trwającą tydzień (604 800 sekund). Jest to przydatne w przypadku uporczywych atakujących, którzy zmieniają swoje metody.
Po wprowadzeniu zmian odśwież stronę:
sudo systemctl restart fail2ban
sudo fail2ban-client statusTestowanie i monitorowanie
Testowanie blokad
Zanim zaczniesz polegać na Fail2Ban w środowisku produkcyjnym, przetestuj go. Z komputera zdalnego (nie z Twojego adresu IP administratora) próbuj logować się przez SSH, aż przekroczysz maxretry. Powinieneś zostać zablokowany. Potwierdź to za pomocą:
sudo fail2ban-client status sshdObserwuj blokady w czasie rzeczywistym:
tail -f /var/log/fail2ban.logJeśli przypadkowo zablokujesz prawidłowy adres IP, odblokuj go:
sudo fail2ban-client set sshd unbanip 203.0.113.50Codzienne monitorowanie
Przejrzyj historię blokad, przeszukując log za pomocą grep:
grep "Ban\|Unban" /var/log/fail2ban.logPrzydatne polecenia administracyjne:
| Polecenie | Cel |
|---|---|
fail2ban-client status | Wyświetl wszystkie aktywne blokady |
fail2ban-client banned | Wyświetl wszystkie aktualnie zablokowane adresy IP |
fail2ban-client set <jail> unbanip <IP> | Odblokuj konkretny adres IP |
fail2ban-client unban --all | Wyczyść wszystkie blokady |
fail2ban-client set <jail> banip <IP> | Ręczne zablokowanie adresu IP |
Blokady pozostają aktywne po ponownym uruchomieniu. Fail2Ban przechowuje je w bazie danych SQLite w /var/lib/fail2ban/fail2ban.sqlite3.
Konfiguracja zaawansowana
Przejście na nftables
nftables to nowoczesny zamiennik iptables. Obsługuje IPv4 i IPv6 w jednej strukturze, lepiej skaluje się przy dużych listach blokowanych adresów i ma wbudowane ograniczenie przepustowości. Jeśli korzystasz z Ubuntu 22.04+, Debiana 11+ lub dowolnej nowszej dystrybucji, jest to lepszy wybór.
Skonfiguruj w jail.local:
[DEFAULT]
banaction = nftables-multiportUruchom ponownie Fail2Ban, a następnie sprawdź za pomocą sudo nft list ruleset. Powinieneś zobaczyć f2b-table i f2b-chain . Pozostań przy iptables tylko wtedy, gdy korzystasz ze starszego systemu lub masz wymagania dotyczące kompatybilności.
Powiadomienia e-mail
Domyślnie Fail2Ban blokuje użytkowników bez powiadomienia. Aby otrzymywać powiadomienia e-mailowe, dodaj następujący wpis do sekcji [DEFAULT] sekcji jail.local:
[DEFAULT]
destemail = [email protected]
sender = [email protected]
mta = sendmail
action = %(action_mwl)sAkcja action_mwl wysyła wiadomość e-mail zawierającą szczegóły blokady, dane WHOIS oraz wiersze dziennika, które spowodowały blokadę. Użyj action_mw , jeśli chcesz otrzymać tylko dane WHOIS. Będziesz potrzebować zainstalowanego agenta transferu poczty, takiego jak sendmail, lub przekaźnika SMTP skonfigurowanego za pomocą czegoś w rodzaju msmtp.
W przypadku powiadomień na Slacku lub Discordzie, utwórz skrypt wysyłający webhook i podłącz go poprzez plik akcji niestandardowej w /etc/fail2ban/action.d/.
Jeśli szukasz serwera z pełnym dostępem do konta root i nieograniczoną przepustowością do uruchomienia Fail2Ban, sprawdź serwery dedykowane FDC.

Masz dość powolnych wdrożeń lub limitów przepustowości? FDC Servers oferuje natychmiastową dedykowaną moc, globalny zasięg i elastyczne plany dostosowane do dowolnej skali. Gotowy do aktualizacji?
Odblokuj wydajność terazDlaczego ważne jest posiadanie wydajnego i niezmierzonego serwera VPS?
Niezmierzony VPS zapewnia zryczałtowaną przepustowość przy stałej prędkości portu. Czym różnią się one od planów taryfowych, kiedy się opłacają i co należy sprawdzić przed zakupem.
7 min czytania - 9 maja 2025
Zarządzanie pamięcią w systemie Linux: Swap, OOM Killer i Cgroups
12 min czytania - 31 maja 2026

Masz pytania lub potrzebujesz niestandardowego rozwiązania?
Elastyczne opcje
Globalny zasięg
Natychmiastowe wdrożenie
Elastyczne opcje
Globalny zasięg
Natychmiastowe wdrożenie