Jak zainstalować i skonfigurować Fail2Ban w systemie Linux

9 min czytania - 14 maja 2026

hero section cover
Spis treści
  • Jak zainstalować i skonfigurować Fail2Ban w systemie Linux
  • Wymagania wstępne
  • Instalacja Fail2Ban na Ubuntu/Debian
  • Konfigurowanie więzień
  • Testowanie i monitorowanie
  • Zaawansowana konfiguracja
Udostępnij

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.log w systemach opartych na Debianie, /var/log/secure w 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 fail2ban

Włącz usługę, aby uruchamiała się przy starcie systemu, a następnie uruchom ją:

sudo systemctl enable fail2ban
sudo systemctl start fail2ban

Skopiuj 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.local

Sprawdź, czy wszystko działa:

sudo systemctl status fail2ban
sudo fail2ban-client status

Pierwsze 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:

ParametrZalecana wartośćCo robi
bantime3600Blokuje adres IP na 1 godzinę
findtime600Zlicza awarie w 10-minutowym oknie
maxretry3 do 5Niepowodzenia przed uruchomieniem bana
ignoreip127.0.0.1/8 ::1IP, 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 = true

Sprawdź, 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 status

Testowanie 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 sshd

Obserwuj bany w czasie rzeczywistym:

tail -f /var/log/fail2ban.log

Jeśli przypadkowo zbanujesz legalny adres IP, odblokuj go:

sudo fail2ban-client set sshd unbanip 203.0.113.50

Monitorowanie z dnia na dzień

Przeglądaj historię banów, przeszukując dziennik:

grep "Ban\|Unban" /var/log/fail2ban.log

Przydatne polecenia zarządzania:

PolecenieCel
fail2ban-client statusLista wszystkich aktywnych więzień
fail2ban-client bannedWyświetlenie wszystkich aktualnie zbanowanych adresów IP
fail2ban-client set <jail> unbanip <IP>Odbanowanie określonego adresu IP
fail2ban-client unban --allWyczyść 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-multiport

Uruchom 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)s

Akcja 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.

background image
Czy Twój serwer hamuje Twój rozwój?

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

Blog

Polecane w tym tygodniu

Więcej artykułów
Lista kontrolna zabezpieczania serwerów Linux

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

Więcej artykułów
background image

Masz pytania lub potrzebujesz niestandardowego rozwiązania?

icon

Elastyczne opcje

icon

Globalny zasięg

icon

Natychmiastowe wdrożenie

icon

Elastyczne opcje

icon

Globalny zasięg

icon

Natychmiastowe wdrożenie