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

⚡ W skrócie · 7 min czytania

## Jak skonfigurować Fail2Ban na VPS?

**Krótka odpowiedź:** Fail2Ban to daemon, który monitoruje logi systemowe i automatycznie blokuje przez iptables adresy IP próbujące złamać hasło metodą brute-force. Na Ubuntu lub Debianie instalujesz go przez apt, a konfigurację zapisujesz w /etc/fail2ban/jail.local, nie w jail.conf. Dodaj swoje stałe IP do ignoreip i połącz Fail2Ban z kluczami SSH.

-   Fail2Ban chroni VPS przed atakami brute-force. Konfiguracja SSH jail, WordPress jail, własne filtry, whitelista IP i monitorowanie zablokowanych adresów.
-   Instalacja Fail2Ban.
-   Podstawowa konfiguracja - jail.local.
-   Ochrona nginx przed brute-force HTTP.
-   Ochrona WordPress (wp-login.php).

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
```

## Jak przygotować podstawową konfigurację w 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
```

## Jak zarządzać blokadami w Fail2Ban?

```
# 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

## Jakie są 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 "Mikr.us")

#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 "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 "ProSerwer.pl")

#Reklama · link partnerski

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

## Powiązane strony

-   [Gdzie kupić VPS - ranking
    
    Aktualne ceny VPS z pełnym kosztem 2-letnim (TCO) i bez ukrytych opłat odnowienia.
    
    ](/vps/)
-   [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/)
-   [Jaki VPS wybrać?](/jaki-vps-wybrac/)

Autor: [Redakcja HostGrade.pl](/autorzy/) Zespół redakcyjny · Aktualizacja: 8 kwietnia 2026

Artykuły HostGrade.pl przygotowuje i aktualizuje redakcja serwisu. Ceny startowe, ceny odnowienia i warunki planów sprawdzamy w cennikach i regulaminach dostawców, a potem liczymy całkowity koszt za 2 lata (cena startowa plus odnowienia). Zasady zbierania danych i liczenia kosztów opisujemy na stronie Metodologia. Linki partnerskie oznaczamy jako #reklama.

[O redakcji i metodologii →](/autorzy/)