Fail2Ban + Nginx (WordPress-freundlich): 5 verdächtige Anfragen → 5-Minuten-Sperre (iptables-nft Fix, Tests und IP entsperren)

Diese Anleitung zeigt die vollständige Installation und Konfiguration von Fail2Ban für Nginx und WordPress, um:

  • Scanner und Bots zu blockieren (z. B. Zugriffe auf /.env, /.git, phpmyadmin usw.),
  • den WordPress-Administrator nicht zu blockieren,
  • eine IP nach 5 verdächtigen oder ungültigen Anfragen zu sperren,
  • nur eine kurze Sperre von 5 Minuten anzuwenden (kein Risiko, sich selbst lange auszusperren).

Schritt 1: Fail2Ban installieren

Installieren Sie Fail2Ban:

Aktivieren und starten Sie den Dienst:

Überprüfen Sie den Status:

Schritt 2: nginx-secure Filter erstellen

Erstellen Sie die Filterdatei:

Fügen Sie folgende Konfiguration ein:

Schritt 3: nginx-secure Jail erstellen

Erstellen Sie die Jail-Konfigurationsdatei:

Fügen Sie folgende Konfiguration ein:

Schritt 4: Fail2Ban neu starten

Schritt 5: Firewall überprüfen

Überprüfen Sie, ob die Fail2Ban-Chain existiert:

Externer Test

Führen Sie dies von einer anderen Maschine aus:

Nach 5 Versuchen wird die IP-Adresse für 5 Minuten gesperrt.

Gesperrte IPs anzeigen

IP entsperren

Entsperren Sie Ihre IP manuell:

Zusammenfassung

  • schützt vor Scannern und Exploit-Versuchen,
  • blockiert das WordPress-Admin-Panel nicht,
  • verwendet eine kurze Sperrzeit von 5 Minuten,
  • voll kompatibel mit iptables-nft,
  • einfach zu testen und einfach zu entsperren.

Automatisches Upgrade von Debian 12 → Debian 13 mit optionalem PHP – und nginx-Update

Debian 12 auf Debian 13 Upgrade

Das Upgrade von Debian von Version 12 (bookworm) auf Version 13 (trixie) ist ein Vorgang, der auf Servern und Containern (z. B. Proxmox LXC oder virtuelle Maschinen) reproduzierbar und ohne Überraschungen durchgeführt werden sollte. Unten finden Sie eine einfache Anleitung sowie fertige Befehle zum Herunterladen und Ausführen des Upgrade-Skripts.

Vor dem Upgrade: erstellen Sie ein Backup oder einen Snapshot. In Proxmox ist die beste Option vzdump oder ein Snapshot. Auf Bare-Metal-Systemen sichern Sie mindestens /etc, Anwendungen und Datenbanken.

  • Proxmox LXC / VM: Backup mit vzdump oder Snapshot.
  • Server: Backup von /etc, /var/www, Datenbanken (MySQL/PostgreSQL) und SSL-Zertifikaten.

Download des Skripts:

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

1) Backup vor dem Upgrade (Beispiele)

Beispiel für ein Backup in Proxmox (auf dem Proxmox-Host ausführen, CTID/VMID ersetzen):

Beispiel für ein einfaches Dateisystem-Backup auf einem Server (ersetzt keinen vollständigen Snapshot, ist aber besser als nichts):

2) Skript herunterladen (wget / curl)

Am einfachsten verwenden Sie wget. Wenn der Befehl wget trotz installiertem Paket nicht funktioniert, verwenden Sie den vollständigen Pfad /usr/bin/wget.

Variante A (Standard wget):

Variante B (wget mit vollständigem Pfad – hilfreich bei PATH-Problemen):

Variante C (curl):

3) Skripthilfe (Parameter)

Bevor Sie das Upgrade starten, zeigen Sie die verfügbaren Parameter und Beispiele an:

4) Upgrade Debian 12 → Debian 13 (nur System)

Wenn Sie derzeit Debian 12 (bookworm) verwenden und ein System-Upgrade durchführen möchten:

Das Skript erstellt ein Backup von /etc/apt/sources.list, wechselt die Repositories zu trixie, führt apt update und apt full-upgrade aus und anschließend autoremove und autoclean.

5) Automatische Erkennung von PHP/nginx und Update bei Bedarf

Wenn der Container oder die VM einen Webserver verwendet und das Skript automatisch PHP (nginx + fastcgi_pass) erkennen und PHP sowie nginx aktualisieren soll:

6) PHP- und nginx-Upgrade erzwingen (PHP-FPM Socket Fix)

Wenn Sie die Installation oder das Upgrade von PHP erzwingen und die nginx-Konfiguration automatisch auf den richtigen PHP-FPM-Socket umstellen möchten:

Dieser Befehl installiert PHP 8.2 (php-fpm und gängige Module) und ersetzt alte PHP-FPM-Socket-Pfade in der nginx-Konfiguration durch /run/php/php8.2-fpm.sock. Anschließend wird nginx -t ausgeführt und die Dienste werden neu geladen oder neu gestartet.

7) Bereits Debian 13 installiert? Nur PHP/nginx Modus

Wenn das System bereits Debian 13 (trixie) verwendet und Sie nur PHP und nginx aktualisieren möchten, ohne die System-Repositories zu ändern:

8) Testmodus (Dry-Run)

Wenn Sie sehen möchten, was das Skript tun wird, ohne Änderungen vorzunehmen:

9) Diagnose: wget installiert, aber funktioniert nicht

Wenn apt meldet, dass wget installiert ist, aber die Shell command not found anzeigt, liegt meist ein PATH-Problem vor. Verwenden Sie in diesem Fall den vollständigen Pfad /usr/bin/wget.

Zusammenfassung

Diese Lösung ermöglicht ein sicheres Upgrade von Debian 12 → Debian 13 und behebt optional typische PHP/nginx-Probleme nach dem Upgrade. Erstellen Sie immer ein Backup vor dem Upgrade und beginnen Sie mit --help, um die verfügbaren Optionen zu prüfen.

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