Fail2Ban + Nginx (WordPress-friendly): 5 podejrzanych żądań → ban na 5 minut (iptables-nft fix, testy i odblokowanie IP)

Ten poradnik pokazuje kompletną instalację i konfigurację Fail2Ban dla Nginx i WordPressa, w taki sposób, aby:

  • blokować skanery i boty (np. próby dostępu do /.env, /.git, phpmyadmin itd.),
  • nie blokować administratora WordPressa,
  • banować IP po 5 błędnych/podejrzanych żądaniach,
  • ban trwa tylko 5 minut (bez ryzyka zablokowania samego siebie na długo).

Krok 1: instalacja Fail2Ban

Zainstaluj Fail2Ban:

Włącz i uruchom usługę:

Sprawdź czy działa:

Krok 2: utworzenie filtra nginx-secure

Utwórz plik filtra:

Wklej:

Krok 3: utworzenie jail nginx-secure

Utwórz plik:

Wklej:

Krok 4: restart Fail2Ban

Krok 5: sprawdzenie czy firewall działa

Sprawdź czy chain istnieje:

Test z zewnątrz

Uruchom z innej maszyny:

Po 5 próbach IP zostanie zbanowane na 5 minut.

Sprawdzenie banów

Odblokowanie IP

Odblokuj swoje IP:

Podsumowanie

  • chroni przed skanerami i exploitami,
  • nie blokuje panelu WordPress,
  • ban trwa tylko 5 minut,
  • działa poprawnie z iptables-nft,
  • łatwy test i łatwe odblokowanie IP.

Automatyczny upgrade Debian 12 → Debian 13 z opcjonalną aktualizacją PHP i nginx

Upgrade Debiana z wersji 12 (bookworm) do 13 (trixie) to operacja, która na serwerach i kontenerach (np. Proxmox LXC / VM) powinna być robiona powtarzalnie i bez niespodzianek. Poniżej masz prosty poradnik oraz gotowe komendy do pobrania i uruchomienia skryptu.

Zanim odpalisz upgrade: zrób backup / snapshot. W Proxmoxie najlepiej vzdump lub snapshot. Na bare-metal chociaż kopia /etc, aplikacji i baz danych.

  • Proxmox LXC / VM: backup (vzdump) albo snapshot.
  • Serwer: backup /etc, /var/www, bazy danych (MySQL/PostgreSQL), certyfikaty SSL.

Skrypt do pobrania:

https://soban.pl/bash/upgrade_to_debian13.sh

1) Backup przed upgradem (przykłady)

Przykład backupu w Proxmox (na hoście Proxmox, podmień CTID/VMID):

Przykład prostego backupu katalogów na serwerze (to nie zastąpi pełnego snapshotu, ale lepsze to niż nic):

2) Pobranie skryptu (wget / curl)

Najprościej: użyj wget. Jeśli komenda wget nie działa mimo zainstalowanego pakietu, użyj wariantu z pełną ścieżką /usr/bin/wget.

Wariant A (standardowy wget):

Wariant B (wget z pełną ścieżką – pomaga gdy PATH jest skopany):

Wariant C (curl):

3) Pomoc skryptu (parametry)

Zanim odpalisz upgrade, zobacz listę parametrów i przykłady użycia:

4) Upgrade Debian 12 → Debian 13 (system only)

Jeśli jesteś na Debian 12 (bookworm) i chcesz wykonać tylko upgrade systemu:

Skrypt zrobi backup /etc/apt/sources.list, podmieni repozytoria na trixie, wykona apt update oraz apt full-upgrade, a na końcu autoremove i autoclean.

5) Auto-detekcja PHP/nginx i aktualizacja jeśli potrzeba

Jeśli kontener/VM jest webowy i chcesz, żeby skrypt sam wykrył użycie PHP (nginx + fastcgi_pass) i w razie potrzeby zaktualizował PHP oraz nginx:

6) Wymuszona aktualizacja PHP i nginx (PHP-FPM socket fix)

Jeśli chcesz wymusić instalację/upgrade PHP oraz automatyczne przestawienie konfiguracji nginx na poprawny socket PHP-FPM:

To polecenie instaluje PHP 8.2 (php-fpm + popularne moduły) i podmienia w konfiguracjach nginx stare ścieżki socketów na /run/php/php8.2-fpm.sock. Następnie wykonuje nginx -t oraz restart/reload usług.

7) Debian 13 już jest? Tryb tylko PHP/nginx (bez release upgrade)

Jeżeli system jest już na Debian 13 (trixie) i chcesz wykonać tylko aktualizację PHP/nginx bez ruszania repozytoriów systemowych:

8) Tryb testowy (dry-run)

Jeśli chcesz zobaczyć co skrypt zrobi, ale bez wykonywania zmian:

9) Diagnostyka: wget jest zainstalowany, a nie działa

Jeżeli apt mówi, że wget jest zainstalowany, a shell krzyczy command not found, to najczęściej problem z PATH. Najprostsza obejściówka to użycie pełnej ścieżki: /usr/bin/wget.

Podsumowanie

To rozwiązanie jest wygodne, bo w jednym miejscu masz upgrade Debian 12 → Debian 13 oraz (opcjonalnie) ogarnięcie problemów z PHP/nginx po upgrade (socket PHP-FPM, test konfiguracji nginx i restart usług). Najważniejsze: zrób backup przed upgradem i zawsze zacznij od --help, żeby widzieć dostępne opcje.

Skrypt: https://soban.pl/bash/upgrade_to_debian13.sh