 Autor: [Adam Nadolny](/autorzy/adam-nadolny) Ekspert DevOps i infrastruktury · Zweryfikowano Kwiecień 2026

1.  [Strona główna](/) ›
2.  [Baza wiedzy](/baza-wiedzy/) ›
3.  Fail2Ban — ochrona VPS przed brute-force

# Fail2Ban na VPS — konfiguracja ochrony przed brute-force

Opublikowano: 8 kwietnia 2026 · Kategoria: Bezpieczeństwo

Każdy serwer VPS podłączony do internetu jest atakowany przez boty skanujące porty i próbujące złamać hasła SSH metodą brute-force. Fail2Ban to daemon bezpieczeństwa, który monitoruje logi systemowe i automatycznie blokuje podejrzane adresy IP przez iptables — zanim zdążą złamać hasło.

## Instalacja Fail2Ban

\# Ubuntu / Debian
sudo apt update && sudo apt install fail2ban -y

# CentOS / Rocky Linux / AlmaLinux
sudo dnf install epel-release -y && sudo dnf install fail2ban -y

# Uruchom i włącz przy starcie systemu
sudo systemctl enable --now fail2ban

# Sprawdź status
sudo fail2ban-client status

## Podstawowa konfiguracja — jail.local

Nigdy nie edytuj `/etc/fail2ban/jail.conf` — zostanie nadpisany przy aktualizacji. Utwórz `/etc/fail2ban/jail.local`:

\[DEFAULT\]
# Czas blokady (sekundy): 1 godzina
bantime  = 3600
# Okno czasowe dla liczenia prób
findtime = 600
# Ile nieudanych prób przed blokadą
maxretry = 5
# Twoje stałe IP - NIGDY nie blokuj
ignoreip = 127.0.0.1/8 ::1 YOUR.OFFICE.IP.HERE
# Backend logów (auto = najlepsza opcja)
backend = auto

\[sshd\]
enabled = true
port    = ssh
# Jeśli zmieniłeś port SSH np. na 2222:
# port = 2222
logpath = %(sshd\_log)s
maxretry = 3
bantime  = 86400

Po każdej zmianie konfiguracji: `sudo systemctl restart fail2ban`.

## Ochrona nginx przed brute-force HTTP

\[nginx-http-auth\]
enabled  = true
port     = http,https
logpath  = /var/log/nginx/error.log
maxretry = 5

\[nginx-limit-req\]
enabled  = true
port     = http,https
logpath  = /var/log/nginx/error.log
maxretry = 10

\[nginx-botsearch\]
enabled  = true
port     = http,https
logpath  = /var/log/nginx/access.log
maxretry = 2

## Ochrona WordPress (wp-login.php)

Utwórz filtr `/etc/fail2ban/filter.d/wordpress.conf`:

\[Definition\]
failregex = ^<HOST> .\* "POST .\*wp-login\\.php
            ^<HOST> .\* "POST .\*xmlrpc\\.php
ignoreregex =

Dodaj jail do `/etc/fail2ban/jail.local`:

\[wordpress\]
enabled  = true
port     = http,https
filter   = wordpress
logpath  = /var/log/nginx/access.log
maxretry = 5
bantime  = 3600

## Zarządzanie blokadami

\# Status wszystkich jailów
sudo fail2ban-client status

# Status konkretnego jaila (lista zablokowanych IP)
sudo fail2ban-client status sshd
sudo fail2ban-client status wordpress

# Odblokowanie IP (np. gdy zablokowałeś siebie)
sudo fail2ban-client set sshd unbanip 1.2.3.4

# Ręczne zablokowanie IP
sudo fail2ban-client set sshd banip 192.168.1.100

# Podgląd logów w czasie rzeczywistym
sudo tail -f /var/log/fail2ban.log

# Test filtra (czy dopasowuje logi)
sudo fail2ban-regex /var/log/auth.log /etc/fail2ban/filter.d/sshd.conf

## Porównanie poziomów ochrony SSH

Metoda

Trudność

Skuteczność

Uwagi

Fail2Ban (domyślna)

Łatwa

Dobra

Blokuje po N próbach

Zmiana portu SSH

Łatwa

Ograniczona

Ukrywa przed skanerami portów

Klucze SSH (bez haseł)

Średnia

Bardzo dobra

Brute-force niemożliwy

Fail2Ban + klucze SSH

Średnia

Doskonała

Rekomendowane połączenie

AllowUsers w sshd\_config

Łatwa

Dobra

Tylko określeni użytkownicy

## Dobre praktyki bezpieczeństwa

-   **Zawsze dodaj swój stały IP do ignoreip** — aby nie zablokować siebie przy błędzie
-   **Używaj kluczy SSH zamiast haseł** — w połączeniu z Fail2Ban to najlepsza ochrona
-   **Zmień domyślny port SSH** (np. na 2222) — zmniejsza szum w logach
-   **Monitoruj logi Fail2Ban** — `/var/log/fail2ban.log` pokaże wzorce ataków
-   **Ustaw długi bantime dla SSH** — 24h lub więcej dla powtarzających się IP
-   **Chroń też xmlrpc.php** — często atakowany endpoint WordPress

## Najczęstsze pytania

Co to jest Fail2Ban? +

Fail2Ban to daemon bezpieczeństwa dla systemów Linux, który monitoruje logi systemowe (SSH, Apache, nginx, WordPress) i automatycznie blokuje adresy IP wykazujące podejrzaną aktywność (brute-force, skanowanie portów). Blokada odbywa się przez iptables lub nftables — zablokowane IP nie mogą nawiązać połączenia przez określony czas.

Jak zainstalować Fail2Ban na Ubuntu/Debian? +

Instalacja na Ubuntu/Debian: sudo apt update && sudo apt install fail2ban -y. Następnie: sudo systemctl enable fail2ban && sudo systemctl start fail2ban. Konfiguracja w /etc/fail2ban/jail.local (nie edytuj jail.conf — zostanie nadpisany przy aktualizacji).

Jak chronić WordPress przed atakami brute-force przez Fail2Ban? +

Fail2Ban może chronić WordPress przez monitorowanie logów nginx/Apache. Utwórz filtr dla /wp-login.php: szukaj wzorca "POST /wp-login.php" z kodem 401/403. Alternatywnie użyj wtyczki WordPress (Wordfence, WP Cerber) z własnym blokowaniem, lub ogranicz dostęp do wp-login.php przez .htaccess do znanych IP.

Jak sprawdzić zablokowane IP w Fail2Ban? +

Sprawdzenie zablokowanych IP: sudo fail2ban-client status sshd (dla jail SSH). Lista wszystkich jailów: sudo fail2ban-client status. Odblokowanie IP: sudo fail2ban-client set sshd unbanip 1.2.3.4. Podgląd logów: sudo tail -f /var/log/fail2ban.log.

## Sprawdź oferty pasujące do tego scenariusza

Poniżej masz szybkie przejścia do ofert i stron z kodami rabatowymi tam, gdzie są dostępne.

Mikr.us

Budżetowy VPS pod SSH, UFW i Fail2ban

VPS + bezpieczeństwo

[Aktywuj rabat →](/out/mikrus)

#Reklama · link partnerski

[Zobacz kod rabatowy →](/kody-rabatowe/mikrus)

Contabo

VPS z rootem i zasobami do własnego hardeningu

VPS + root

[Aktywuj rabat →](/out/contabo)

#Reklama · link partnerski

[Zobacz kod rabatowy →](/kody-rabatowe/contabo)

ProSerwer.pl

Polski VPS do usług wymagających własnych reguł bezpieczeństwa

Polski VPS

[Aktywuj rabat →](/out/proserwer-pl)

#Reklama · link partnerski

[Zobacz kod rabatowy →](/kody-rabatowe/proserwer)

## Powiązane strony

-   [Klucze SSH — konfiguracja i bezpieczeństwo](/baza-wiedzy/ssh-klucze-konfiguracja-hosting)
-   [phpMyAdmin — zabezpieczenie dostępu](/baza-wiedzy/phpmyadmin-bezpieczenstwo)
-   [Bezpieczeństwo WordPress na hostingu](/baza-wiedzy/bezpieczenstwo-wordpress-hosting)
-   [Nginx — konfiguracja virtual hosts](/baza-wiedzy/nginx-vhost-konfiguracja)
-   [Wszystkie artykuły](/baza-wiedzy/)