ISW WP Hardening
Sicherheit für WordPress in einem Plugin – Firewall, Brute-Force-Schutz, Zwei-Faktor-Anmeldung, Spamschutz ohne Captcha und eine Sicherheitsprüfung mit Ein-Klick-Behebung.
ISW WP Hardening ersetzt die übliche Sammlung aus Sicherheits-, 2FA-, Antispam- und Login-Plugins durch ein einziges Plugin. Es arbeitet vollständig auf Ihrem Server – ohne Cloud-Konto, ohne Captcha-Dienst, ohne Werbung im Backend – und zeigt jederzeit, was bereits geschützt ist und was noch fehlt.
Entwickelt von IT-Service Walter, einem IT-Sicherheitsdienstleister aus Euskirchen, und im Einsatz auf den eigenen Websites.
Funktionen im Detail
Firewall vor allen Plugins
Die Firewall startet als Must-Use-Plugin, bevor WordPress und alle anderen Plugins geladen werden. Angriffe auf Lücken in Plugins werden so abgefangen, bevor deren Code überhaupt läuft. Ihre Regeln liest sie aus einer vorbereiteten Datei – ohne Datenbankabfrage.
- SQL-Injection – UNION SELECT, Zeitverzögerung, Zugriffe auf information_schema, „OR 1=1“
- Cross-Site-Scripting – eingeschleuste Skripte, Ereignis-Attribute, iframes und SVG
- Path Traversal und Datei-Einbindung – ../../, /etc/passwd, php://, phar://, Null-Bytes
- PHP-Code-Injection – eingeschleuster PHP-Code, base64_decode, Systemaufrufe, Nachladen per wget/curl
- Abtasten sensibler Dateien – .env, .git, Sicherungen der wp-config.php, phpMyAdmin, bekannte Webshells
- Angriffswerkzeuge – sqlmap, Nikto, WPScan, Nuclei, Acunetix, Nessus u. a.
- Gefälschte Suchmaschinen-Bots – Googlebot/Bingbot werden per Reverse- und Forward-DNS geprüft
- Unzulässige HTTP-Methoden – TRACE, TRACK, CONNECT
Lernmodus: Zuerst werden Treffer nur protokolliert. Fehlalarme bei eigenen Formularen nehmen Sie mit „Pfad ausnehmen“ aus, dann schalten Sie auf „Blockieren“ – abgewiesene Anfragen erhalten eine Referenznummer, die im Protokoll steht.
Selbstverteidigung: Nach 5 abgewiesenen Anfragen in 10 Minuten wird eine Adresse 24 Stunden gesperrt; 404-Fluten (über 30 nicht vorhandene Seiten in 5 Minuten) und das Abtasten sensibler Dateien führen schon beim zweiten Treffer zur Sperre. Optional begrenzt eine Ratenbegrenzung die Aufrufe je Minute. Dauerhafte Sperrlisten verstehen auch Netze in CIDR-Schreibweise.
Programm-Schnittstellen: Pfade für Lizenz- oder Update-APIs lassen sich von Browserprüfung, Ratenbegrenzung und Ländersperre ausnehmen – Angriffsmuster werden dort trotzdem abgewiesen.
Länder- und IP-Sperren
- Zuordnung über die freie Datenbank „IP to Country Lite“ von DB-IP.com – lokal gespeichert, monatlich aktualisiert, Anfragen verlassen den Server dafür nicht
- Länder aus einer Liste mit deutschen Namen anhaken; Schnellauswahl DACH, EU-27 oder EU + EWR + Schweiz + Vereinigtes Königreich
- Zwei Betriebsarten: Länder sperren (z. B. für die ganze Website) oder nur bestimmte Länder erlauben (z. B. nur für die Anmeldung)
- Der Reiter Firewall zeigt, aus welchen Ländern in den letzten 7 Tagen Angriffe kamen – „Land sperren“ wirkt mit einem Klick
- Eigene feste Adressen unter „Nie sperren“ (IPv4, IPv6, CIDR) – private Adressen werden nie gesperrt
Brute-Force-Schutz
- Jede fehlgeschlagene Anmeldung über wp-login.php, XML-RPC oder Anwendungspasswörter wird mit IP-Adresse und Grund protokolliert
- Standard: 5 Fehlversuche in 15 Minuten → 30 Minuten Sperre, ab der dritten Sperre in 24 Stunden 24 Stunden
- Optionale Sofortsperre bei unbekannten Benutzernamen wie „admin“
- Neutrale Fehlermeldungen – die Anmeldeseite verrät weder, ob ein Benutzer existiert, noch ob das Passwort stimmte
- Übersicht der aktiven Sperren, Zähler der letzten 24 Stunden und 7 Tage, häufigste Angreifer, manuelle Sperren und Entsperren
- Für Websites hinter Cloudflare oder einem anderen Proxy: Besucher-IP aus dem Proxy-Header
Zwei-Faktor-Anmeldung
- Authenticator-App (Microsoft, Google, Aegis, 1Password u. a.): Der QR-Code wird im Browser erzeugt – der Schlüssel geht an keinen Dienst
- Anmeldecode per E-Mail für Benutzer ohne App: 6-stelliger Code nach dem Passwort, 10 Minuten gültig, höchstens 5 Versuche, an den Browser gebunden
- Zehn Wiederherstellungscodes für den Fall, dass Telefon oder Postfach nicht verfügbar sind
- Pflicht je Rolle – z. B. für Administratoren; bis zur Einrichtung sind REST, Ajax und XML-RPC für diese Konten gesperrt
- Kontobezogene Codesperre nach 10 falschen Codes in 15 Minuten – unabhängig von der IP-Adresse
- Zurücksetzen durch einen Administrator oder per WP-CLI; Programme mit Anwendungspasswort brauchen keinen Code
Spamschutz ohne Captcha
Besucher bemerken den Spamschutz nicht – es gibt keine Bilderrätsel und keine Daten an Dritte. Jede Eingabe durchläuft mehrere Prüfungen:
- Unsichtbares JavaScript-Prüffeld – einfache Bots führen kein JavaScript aus
- Honeypot – ein für Menschen unsichtbares Feld
- Zeitfalle – wer schneller als in 3 Sekunden absendet, ist ein Bot
- Linkgrenze und Sperrwörter – eigene Liste plus die WordPress-Liste
- Optional: Kommentare in kyrillischer oder chinesischer/japanischer/koreanischer Schrift abweisen
Geschützt: Kommentare (auch WooCommerce-Bewertungen), Registrierung von WordPress und WooCommerce, Anmeldung und „Passwort vergessen“, Contact Form 7, WPForms und Elementor Pro. Jeder erkannte Versuch steht mit Grund im Protokoll.
Benutzersicherheit
- Passwortrichtlinie je Rolle: Mindestlänge (Standard 12), drei von vier Zeichenarten oder eine Passphrase ab 20 Zeichen, kein Benutzername im Passwort
- Geleakte Passwörter ablehnen – Abgleich mit über 900 Millionen bekannten Passwörtern; nur die ersten 5 Zeichen eines Hashwerts verlassen den Server
- Bestehende Passwörter bei der Anmeldung prüfen und Betroffene zum Ändern auffordern
- Abmeldung bei Inaktivität – ein offenes Browserfenster hält die Sitzung nicht künstlich offen
- Eigene Login-Adresse – wp-login.php und /wp-admin liefern für nicht Angemeldete „nicht gefunden“; alle Links und E-Mails zeigen automatisch auf die neue Adresse
Sicherheitsprüfung mit Ein-Klick-Behebung
- 46 Prüfungen in sechs Bereichen – u. a. WordPress-Kern und Konfiguration, Plugins und Themes, Benutzer und Anmeldung, Dateien und Schadcode
- Gewichtung nach Risiko (kritisch, hoch, mittel, niedrig) und Bewertung von 0 bis 100 %
- Jede Prüfung mit Begründung und – wo möglich – Knopf „Beheben“
- Empfehlungen anwenden setzt alle empfohlenen Einstellungen passend zur Umgebung (HTTPS-Zwang nur mit HTTPS, Apache-Regeln nur auf Apache, XML-RPC bleibt bei Jetpack an)
- Täglicher Lauf im Hintergrund, Mail bei neuen offenen Punkten, HTML-Bericht als Nachweis gegenüber Kunden
Härtung von Server, wp-config.php und Kern
- Sicherheitsheader: X-Content-Type-Options, X-Frame-Options, Referrer-Policy, Permissions-Policy, HSTS (mit Subdomains und Preload) und Content-Security-Policy – auch zunächst nur meldend
- Apache-Regeln (.htaccess): sensible Dateien und versteckte Verzeichnisse sperren, Verzeichnisauflistung aus, xmlrpc.php sperren, keine Skripte im Upload-Ordner, Autoren-Scans und Direktaufrufe in wp-includes sperren
- Vor jeder Änderung wird gesichert; antwortet die Website danach mit Serverfehler, wird automatisch zurückgenommen
- nginx: fertiger Regelblock zum Kopieren in die Server-Konfiguration
- wp-config.php: Datei-Editor aus, Debug-Ausgaben aus, Backend nur über HTTPS, automatische Sicherheitsupdates – mit Sicherung und PHP-Syntaxprüfung vor dem Schreiben
- Sicherheitsschlüssel neu erzeugen – Zwei-Faktor-Einrichtungen bleiben erhalten
- Kernintegrität gegen die Prüfsummen von wordpress.org und Dateiscan nach Hintertüren, Webshells und Skripten im Upload-Ordner
Protokoll, Meldungen und Werkzeuge
- Sicherheitsprotokoll mit Anmeldungen, Sperren, Zwei-Faktor-Ereignissen, Firewall-Treffern und Änderungen an Plugins, Themes und Benutzern
- E-Mail-Meldungen bei Sperren, bei der Anmeldung von Administratoren und bei neuen offenen Punkten der täglichen Prüfung
- REST-Schnittstelle nur für angemeldete Benutzer (mit Ausnahmen), XML-RPC abschalten
- Export und Import der Einstellungen, um mehrere Websites einheitlich zu härten, und WP-CLI für die Verwaltung per Kommandozeile
- Notabschaltung: eine Zeile in der wp-config.php schaltet alle Schutzfunktionen ab – kein Aussperren
- Interne Hilfe über den Knopf „Hilfe“ und ein Anwenderhandbuch mit 42 Seiten
Was ISW WP Hardening ersetzt
| Aufgabe | Bisher üblich | ISW WP Hardening |
|---|---|---|
| Firewall und Malware-Prüfung | Wordfence, Sucuri | Firewall vor allen Plugins, Kernintegrität, Dateiscan |
| Sicherheitsprüfung mit Bewertung | Security Ninja | 46 Prüfungen, Bewertung, Ein-Klick-Behebung |
| Zwei-Faktor-Anmeldung | WP 2FA, Two Factor | App oder E-Mail-Code, Pflicht je Rolle |
| Spamschutz | Antispam Bee, Captcha-Plugins | ohne Captcha, ohne Dienste Dritter |
| Eigene Login-Adresse | WPS Hide Login | integriert, mit Notabschaltung |
| Länder- und IP-Sperren | Premium-Funktion anderer Firewalls | lokale Länderdatenbank, ohne Abfrage bei Dritten |
Technische Daten
| Merkmal | Angabe |
|---|---|
| WordPress | 6.2 oder neuer |
| PHP | 7.4 oder neuer |
| Webserver | Apache oder LiteSpeed für die .htaccess-Regeln; für nginx liefert das Plugin den passenden Regelblock |
| Sprache | Deutsch – Oberfläche, Meldungen, Berichte, Handbuch und Support |
| Externe Dienste | keine; optional Abgleich geleakter Passwörter (nur 5 Zeichen eines Hashwerts) und monatliche Länderdatenbank |
| Updates | automatisch über WordPress, solange die Lizenz gültig ist |
Lizenz und Preise
- Lizenz je Website, Laufzeit 1 Jahr; Test- und Staging-Umgebungen (localhost, *.local, *.test, staging.…) belegen keinen Platz
- Umzug auf eine andere Domain: im Plugin „Website lösen“ und auf der neuen Website aktivieren
- Weitere Lizenzen – mehr Websites, mehrere Plugins oder längere Laufzeiten – auf Anfrage
