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 dzienniki serwera pod kątem podejrzanej aktywności i automatycznie blokuje obraźliwe adresy IP, aktualizując reguły zapory sieciowej. Zatrzymuje ataki typu brute-force, redukuje szum w dziennikach i po skonfigurowaniu działa cicho w tle. Niniejszy przewodnik obejmuje instalację na Ubuntu/Debian, podstawową konfigurację, konfigurację więzienia i kilka zaawansowanych opcji, o których warto wiedzieć.
Wymagania wstępne
Fail2Ban działa na większości dystrybucji Linuksa: Ubuntu, Debian, AlmaLinux, CentOS, RHEL, Rocky Linux i Fedora. Potrzebne będą:
- Python 3 zainstalowany w systemie
- Dostęp roota lub sudo do instalacji pakietów i zmian w firewallu
- Aktywna zapora sieciowa (iptables, nftables, ufw lub firewalld)
- Pliki dziennika, które przechwytują 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 należy sprawdzić, czy firewall jest uruchomiony za pomocą ufw status lub systemctl status firewalld.
Instalacja Fail2Ban na Ubuntu/Debian
Zaktualizuj pakiety i zainstaluj Fail2Ban:
sudo apt update && sudo apt upgrade -y
sudo apt install fail2banWłącz usługę, aby uruchamiała się przy starcie systemu, a następnie uruchom ją:
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 nadpisywały 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 pokazać "Active: active (running)". Drugie zawiera listę aktywnych więzień. Potwierdź, że Fail2Ban jest włączony podczas uruchamiania za pomocą sudo systemctl is-enabled fail2ban.
Konfigurowanie więzień
Ustawienia domyślne
Otwórz /etc/fail2ban/jail.local i dostosuj sekcję [DEFAULT]. Ustawienia te mają zastosowanie do wszystkich więzień, chyba że zostaną zastąpione:
| Parametr | Zalecana wartość | Co robi |
|---|---|---|
bantime | 3600 | Blokuje adres IP na 1 godzinę |
findtime | 600 | Zlicza awarie w 10-minutowym oknie |
maxretry | 3 do 5 | Niepowodzenia przed uruchomieniem bana |
ignoreip | 127.0.0.1/8 ::1 | IP, które nigdy nie są banowane |
Dodaj własny zarządzający adres IP do ignoreip, aby się nie zablokować. Przykład: ignoreip = 127.0.0.1/8 ::1 203.0.113.50.
Ochrona SSH
Włącz więzienie SSH w jail.local:
[sshd]
enabled = trueSprawdź, czy logpath wskazuje na prawidłowy plik dziennika dla twojej dystrybucji. Jeśli przeniosłeś SSH na niestandardowy port (np. 2222), zaktualizuj parametr portu, aby pasował.
Ochrona serwera WWW
Włącz więzienie, które pasuje do twojego serwera WWW:
- Nginx:
[nginx-http-auth]dla błędów uwierzytelniania,[nginx-botsearch]dla złośliwych botów - Apache:
[apache-auth]dla uwierzytelniania,[apache-badbots]dla botów
Więzienie recydywy
Więzienie [recidive ] wyłapuje adresy IP, które wciąż są banowane w innych więzieniach i stosuje dłuższą karę, zwykle jeden tydzień (604 800 sekund). Jest to przydatne dla wytrwałych atakujących, którzy zmieniają swoje podejście.
Po wprowadzeniu zmian należy przeładować konto:
sudo systemctl restart fail2ban
sudo fail2ban-client statusTestowanie i monitorowanie
Testowanie zakazów
Zanim zaczniesz polegać na Fail2Ban w produkcji, przetestuj go. Ze zdalnego komputera (nie z adresu IP administratora) spróbuj zalogować się przez SSH, aż przekroczysz maksymalną liczbę prób. Powinieneś zostać zablokowany. Potwierdź za pomocą:
sudo fail2ban-client status sshdObserwuj bany w czasie rzeczywistym:
tail -f /var/log/fail2ban.logJeśli przypadkowo zbanujesz legalny adres IP, odblokuj go:
sudo fail2ban-client set sshd unbanip 203.0.113.50Monitorowanie z dnia na dzień
Przeglądaj historię banów, przeszukując dziennik:
grep "Ban\|Unban" /var/log/fail2ban.logPrzydatne polecenia zarządzania:
| Polecenie | Cel |
|---|---|
fail2ban-client status | Lista wszystkich aktywnych więzień |
fail2ban-client banned | Wyświetlenie wszystkich aktualnie zbanowanych adresów IP |
fail2ban-client set <jail> unbanip <IP> | Odbanowanie określonego adresu IP |
fail2ban-client unban --all | Wyczyść wszystkie bany |
fail2ban-client set <jail> banip <IP> | Ręczne banowanie adresu IP |
Zakazy utrzymują się po ponownym uruchomieniu. Fail2Ban przechowuje je w bazie danych SQLite pod adresem /var/lib/fail2ban/fail2ban.sqlite3.
Zaawansowana konfiguracja
Przejście na nftables
nftables jest nowoczesnym zamiennikiem iptables. Obsługuje IPv4 i IPv6 w jednym frameworku, lepiej skaluje się z dużymi listami banów i ma wbudowane ograniczanie szybkości. Jeśli korzystasz z Ubuntu 22.04+, Debiana 11+ lub innej najnowszej dystrybucji, jest to lepszy wybór.
Ustaw go 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 na wyjściu. Trzymaj się iptables tylko wtedy, gdy korzystasz ze starszego systemu lub masz wymagania dotyczące kompatybilności.
Powiadomienia e-mail
Domyślnie Fail2Ban banuje po cichu. Aby otrzymywać powiadomienia e-mail, dodaj następujące informacje do sekcji [DEFAULT] w pliku jail.local:
[DEFAULT]
destemail = [email protected]
sender = [email protected]
mta = sendmail
action = %(action_mwl)sAkcja action_mwl wysyła wiadomość e-mail ze szczegółami zakazu, danymi WHOIS i wierszami dziennika, które wywołały zakaz. Użyj action_mw, jeśli chcesz tylko dane WHOIS. Będziesz potrzebował zainstalowanego agenta transferu poczty, takiego jak sendmail, lub przekaźnika SMTP skonfigurowanego za pomocą czegoś takiego jak msmtp.
W przypadku alertów Slack lub Discord utwórz skrypt, który wysyła webhook i podłącz go za pomocą niestandardowego pliku akcji w /etc/fail2ban/action.d/.
Jeśli szukasz serwera z pełnym dostępem root i niezmierzoną przepustowością do uruchomienia Fail2Ban, sprawdź dedykowane serwery 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ść teraz
Lista kontrolna zabezpieczania serwerów Linux
Lista kontrolna krok po kroku do zabezpieczenia serwera Linux. Obejmuje SSH, zapory ogniowe, łatanie, uprawnienia do plików, SELinux/AppArmor i rejestrowanie audytu
15 min czytania - 8 maja 2026
samouczek iperf3: Testowanie prędkości sieci w systemach Linux i Windows
10 min czytania - 7 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