Was WardPane 2.0 kann
WardPane 2.0 hostet statische, PHP- und Node.js-Websites mit automatischen Zertifikaten und Cloudflare-Unterstützung. Schutz und Traffic-Steuerung laufen pro Website im Webserver. Bei den meisten der acht Panels auf der Vergleichsseite kommen sie aus ModSecurity oder einem kostenpflichtigen Add-on.
Für Einsteiger und für erfahrene Admins
Einsteiger bekommen einen Befehl zur Installation, Zertifikate, die sich selbst ausstellen, Websites in Sandboxes und Einstellungen, die in einfachen Worten erklärt sind. Erfahrene Admins bekommen jede Option, ein Terminal im Browser, PM2 pro Eigentümer, .htaccess, Regeln pro Website in bekannter Reihenfolge, die Cloudflare API, Export und Import, Prüfsummen der Releases und den Quellcode.
Hosting
Websites liegen in einer Struktur wie bei ISPmanager, gehören einem Linux-Benutzer und werden von WardPane selbst auf den Ports 80 und 443 ausgeliefert.
- Websites und Aliase
- Eine Website ist eine Domain plus bis zu 99 Aliase (ein Let's-Encrypt-Zertifikat umfasst höchstens 100 Namen). Ein Alias liefert die Hauptwebsite aus oder, wenn er einen eigenen Ordner hat, diesen Ordner. Websites können einen Anzeigenamen haben.
- Eigentümerstruktur
- Dateien liegen in /var/www/<owner>/data/www/<domain>, Protokolle und temporäre Dateien daneben. Der Standardeigentümer ist www-root, ein Linux-Benutzer, den WardPane anlegt. Websites aus 1.x behalten ihre alten Ordner.
- Drei Handler
- Kein Handler (statisches Hosting), PHP oder Node.js, pro Website gewählt und jederzeit umschaltbar. Die Einstellungen der anderen Handler bleiben erhalten, ein Zurückwechseln stellt sie wieder her.
- Statische Dateien
- SPA-Modus (unbekannte Pfade gehen an index.html), Ihre eigene 404.html, starke ETags mit fortsetzbaren Downloads, Weiterleitung von HTTP auf HTTPS und symbolische Links, die den Website-Ordner nie verlassen können.
- Laufzeitumgebungen
- Das Panel listet die auf dem Server installierten PHP-Versionen und die unterstützten Node.js-Hauptversionen: 20, 22, 24 und 26, standardmäßig 24 (der Support für 20 endete im April 2026). Node.js-Builds kommen von nodejs.org und werden mit den veröffentlichten SHA256-Summen geprüft.
- Ein Menü an jeder Website
- Jede Zeile der Website-Tabelle hat ein Menü mit allen Aktionen für diese Website, und ein Schalter schaltet eine Website aus und wieder ein, ohne etwas zu löschen.
- Shell im Browser
- Ein Terminal direkt im Panel: eine root-Shell in einer root-Sitzung oder die Shell des Website-Eigentümers im Ordner der Website. pm2 list und pm2 restart funktionieren dort für Node.js-Websites.
- Export und Import
- Jede Website mit jeder Einstellung plus die globale Sperrliste kommt in eine JSON-Datei. Der Import führt zusammen oder ersetzt, prüft zuerst die ganze Datei und rührt Dateien in /var/www nie an.
PHP und Node.js
Jede dynamische Website läuft als eigener Linux-Benutzer in einer systemd-Sandbox. Eine defekte oder gehackte Website kann ihre Nachbarn nicht lesen.
- Ein php-fpm-Pool pro Website
- Kein gemeinsamer Pool, kein gemeinsamer opcache und keine gemeinsamen Sessions. Der Code ist für PHP schreibgeschützt; PHP kann nur in tmp/, logs/, data/ und die von Ihnen angegebenen Ordner schreiben, und PHP wird aus diesen Ordnern nie ausgeführt.
- Eine strenge PHP-Sandbox
- Das gesamte Dateisystem ist schreibgeschützt und noexec außer php-fpm selbst, open_basedir ist gesetzt, exec, system, shell_exec, proc_open, popen und putenv sind deaktiviert, und Systemaufrufe werden gefiltert.
- .htaccess ohne Apache
- Rewrite-Regeln, Weiterleitungen, Zugriffsregeln, Basic auth, Header und Caching aus echten Websites funktionieren unverändert: WordPress, Laravel und die üblichen HTTPS- und www-Weiterleitungen. Zeilen, die es nicht anwenden kann, werden angezeigt, nie geraten.
- Node.js mit PM2
- Wählen Sie eine Node.js-Hauptversion, ein npm-Skript oder eine Einstiegsdatei, Umgebungsvariablen und Limits. Ein PM2-Daemon pro Eigentümer betreibt die Apps, sodass pm2 in der Shell des Eigentümers funktioniert.
- Der Proxy vor der App
- Dateien in public/ werden auf Wunsch direkt ausgeliefert, der Rest geht an die App, mit der echten Besucher-IP in X-Forwarded-For und X-Real-IP. WebSockets passieren nach denselben Schutzprüfungen.
- Neustart, npm install und Protokolle
- Der Tab „Handler“ hat Schaltflächen für Neustart und npm install (npm ci, wenn eine Lockdatei vorhanden ist), die Ausgabe-, Fehler- und Installationsprotokolle und die Skripte aus package.json zur Auswahl.
Zertifikate und Cloudflare
Zertifikate werden ohne manuelle Schritte ausgestellt und verlängert, auch für Websites hinter Cloudflare.
- Let's Encrypt, vollautomatisch
- Ein Zertifikat pro Website mit allen Aliasen, verlängert, wenn noch ein Drittel der Laufzeit übrig ist. Namen, deren DNS nicht auf den Server zeigt, werden übersprungen und hinzugefügt, sobald es stimmt, und das Panel zeigt den Grund.
- Auch IPv6 geprüft
- Let's Encrypt versucht zuerst IPv6, daher muss jeder AAAA-Eintrag auf den Server zeigen. WardPane prüft sie, bevor es ein Zertifikat bestellt.
- Ein Zertifikat für die IP
- Die Server-IP erhält ein kurzlebiges Zertifikat, das alle paar Tage verlängert wird. Das Panel unter https://<ip>:1500 öffnet sich ohne Warnung.
- Rate Limits von Let's Encrypt
- Das Panel bestellt kein doppeltes Zertifikat, meldet alle fehlgeschlagenen Namen einer Bestellung auf einmal, wartet nach jedem Fehler länger und ersetzt ein deaktiviertes ACME-Konto.
- Ein Cloudflare-Token mit einem Klick
- Die Schaltfläche Cloudflare-Token erstellen öffnet Cloudflare mit den richtigen, bereits ausgefüllten Berechtigungen. Fügen Sie das Token wieder ein, und das Panel kann die Zonen Ihrer Websites prüfen und korrigieren.
Schutz
Jede Website hat eigene Prüfungen, und sie laufen im Webserver, bevor PHP oder Node.js die Anfrage sehen. Eine Adresse wird nur bei einem eindeutigen Angriff gesperrt.
- Ratenbegrenzung und Sperren
- Standardmäßig darf jede Adresse 150 Anfragen in 10 Sekunden senden. Über dem Limit bekommt sie eine 404 und eine Sperre für die eingestellten Minuten. IPv6-Besucher werden nach ihrem /64 gezählt und gesperrt, ein Adresswechsel hilft also nicht. Jede Website hat eine Positivliste.
- Bot Fight
- Blockiert KI-Crawler, SEO-Crawler, Schwachstellenscanner, Skripte und Headless-Browser, leere User-Agents und Ihre eigene Liste. Suchmaschinen und Linkvorschauen nur, wenn Sie es wählen. Monitoring und RSS-Reader bleiben unbehelligt.
- Sondierungen und Payloads
- Anfragen nach /.env, /.git, /wp-login.php und ähnlichen Namen, die auf der Website nicht existieren, sperren die Adresse. Eindeutige SQL-Injection-, XSS-, Path-Traversal- und Log4Shell-Payloads in der URL führen zur Sperre; mehrdeutige weisen nur diese Anfrage ab.
- Scan-Erkennung
- Viele Fehltreffer in Folge (standardmäßig 25 in 60 Sekunden) sehen aus wie gobuster oder ffuf und sperren die Adresse. Ein fehlendes Bild zählt als ein Zehntel Fehltreffer, eine alte Seite mit defekten Bildern ist also kein Scan.
- Verifizierte Crawler
- Google, Bing, DuckDuckGo, Apple, OpenAI, Anthropic, Perplexity und Ahrefs veröffentlichen ihre IP-Bereiche. WardPane lädt sie täglich herunter und sperrt jeden, der sich von einer anderen Adresse aus als einer von ihnen ausgibt. Sie können diese Crawler auch per IP blockieren, selbst wenn sie sich hinter einem Browser-User-Agent verstecken.
- Öffentliche IP-Feeds
- Spamhaus DROP, FireHOL level 1 und blocklist.de, täglich aktualisiert, pro Website mit einem Schalter angewendet.
- Geo mit Gruppen
- Erlauben oder verweigern Sie Länder einzeln oder als Gruppen: ehemalige UdSSR, GUS, EAWU, EU, EWR, Schengen, NATO, G7, G20, OECD, BRICS, SOZ, ASEAN, Arabische Liga, Mercosur, Kontinente und mehr. Fügen Sie Ausnahmen hinzu und sehen Sie die endgültige Länderliste.
- Hosting-Netze und AS numbers
- Blockieren Sie Anfragen aus AWS, Azure, Google Cloud, Hetzner, OVH, DigitalOcean, Vultr und anderen Clouds, aus denen die meiste Automatisierung kommt, oder aus jeder AS number, die Sie angeben.
- Sprachfilter
- Erlauben oder verweigern nach Browsersprache, mit einem eigenen Schalter für Anfragen, die gar keine Sprache senden. Ein nützliches zusätzliches Signal neben dem Land, zum Beispiel hinter einem VPN.
- Geräte
- Nur Windows, macOS, Linux, Android, iOS oder andere zulassen, als Filter für gewöhnliche Browser.
- Nur per Link
- Pflicht-URL-Parameter: Die Website öffnet sich nur für Personen, die mit Ihrem Link kamen, zum Beispiel ?ref=metaads aus einer Anzeige. Ein signiertes Cookie und optional die Besucher-IP halten sie drin. Pfade für Webhooks und Zahlungs-Callbacks bleiben offen.
- Passwort
- HTTP-Basic-Anmeldung für Entwürfe und Testkopien einer Website. Passwörter werden als scrypt-Hashes gespeichert und außerhalb des Haupt-Threads geprüft, nach allen anderen Filtern.
- Hotlink-Schutz
- Andere Websites können Ihre Bilder und Dateien nicht einbetten. Wählen Sie die Dateiendungen, erlaubte Websites (Platzhalter funktionieren) und was mit Anfragen ohne Referer geschehen soll.
- Sicherheits-Header
- X-Frame-Options, Referrer-Policy, HSTS mit includeSubDomains und preload, Content-Security-Policy und Permissions-Policy pro Website.
- Honeypot
- Ein Pfad, den robots.txt verbietet. Ein Mensch öffnet ihn nie, also wird jeder, der ihn anfragt, sofort gesperrt.
- Eigene Sperrseiten
- Ihre eigene Seite und Ihr eigener Statuscode (404, 403 oder 200) für Sperren nach Gerät, Bot, Geo und Link, ausgeliefert mit no-store.
- Globale Sperrliste
- Adressen und Netze, die auf allen Websites gesperrt sind, auf der Festplatte gespeichert und über Neustarts hinweg erhalten. Sie gilt auch dort, wo bei einer Website der Schutz aus ist.
Traffic-Steuerung
Entscheiden Sie, wer welche Website erreicht, in welcher Reihenfolge die Regeln gelten und was ein gesperrter Besucher sieht.
Die Reihenfolge der Prüfungen bei jeder Anfrage
- Cloudflare: echte Besucher-IP, nur über Cloudflare
- Globale Sperrliste, dann die Positivliste der Website
- Ratenbegrenzung und aktive Sperren
- Bot Fight: User-Agents, verifizierte Crawler, IP-Feeds, Sondierungen, Payloads, Scans, Honeypot
- Geo: Länder und Gruppen, Hosting-Netze, AS numbers, Browsersprache
- Geräte
- Sicherheits-Header und Hotlink-Schutz
- Nur per Link
- Passwort
- .htaccess-Regeln, dann der Handler: Dateien, PHP oder Node.js
- Cloudflare-bewusste echte IP
- Die Besucheradresse wird nur dann aus CF-Connecting-IP übernommen, wenn die Verbindung wirklich von Cloudflare kommt. Die Netzliste wird täglich von cloudflare.com aktualisiert.
- Nur über Cloudflare
- Direkte Anfragen an die Server-IP erhalten eine 404, sodass niemand das CDN und seine Regeln umgehen kann.
- Wenn der Schalter aus ist
- Eine Website hinter Cloudflare, die nicht als solche markiert ist, sperrt nie Cloudflare-Adressen und erhält pro Cloudflare-Server ein zehnmal höheres Limit. Das Protokoll schlägt die Korrektur vor.
- Cloudflare Workers
- Anfragen von einem Worker werden nach seiner Zone mit normalen Limits und Sperren gezählt; der Worker Ihrer eigenen Zone wird wie Cloudflare behandelt.
- Codes für Sperrseiten
- Nehmen Sie 404, damit die Adresse leer aussieht, 403, um die Anfrage ausdrücklich abzulehnen, oder 200 mit Ihrer eigenen Seite. Begrenzte und gesperrte Clients erhalten immer eine einfache 404.
- Cache-sichere Antworten
- Antworten, die von einer Link-Freigabe abhängen, erhalten Cache-Control: private und Vary: Cookie, sodass ein CDN sie nie an jemanden ohne den Link weitergibt.
Panel-Sicherheit
Das Panel läuft als nicht privilegierter Benutzer wardpane, und seine Anmeldeseite hat eigene Limits gegen Brute Force.
- Anmeldung als root
- Optional melden Sie sich als root mit dem root-Passwort des Servers an. Es wird von unix_chkpwd über einen kleinen root-Helfer an einem Socket geprüft, den nur das Panel öffnen kann. Standardmäßig aus.
- Limits gegen Brute Force
- 5 Fehlversuche sperren eine Adresse (bei IPv6 ihr /64) für 15 Minuten, und 50 Fehlversuche sperren ihr /48. Eine Welle von Fehlversuchen aus vielen Adressen schließt die Anmeldung für unbekannte Adressen für 5 Minuten. Adressen, die sich in den letzten 30 Tagen angemeldet haben, funktionieren weiter.
- IP-Positivliste
- Wenn PANEL_ALLOW_IPS gesetzt ist, antwortet das Panel anderen Adressen überhaupt nicht. Es lehnt eine Liste ab, die die Adresse aussperren würde, die Sie gerade verwenden.
- Isolierter root-Helfer
- Das Panel schreibt den gewünschten Zustand; ein von systemd gestarteter root-Helfer prüft jeden Wert erneut, bevor er Benutzer, Ordner und Units anlegt.
- PHP und Node.js in der Sandbox
- Linux-Benutzer pro Website, schreibgeschütztes System, privates /tmp, keine neuen Rechte, Speicher- und CPU-Limits und optional keine ausgehenden Verbindungen.
- Prüfsummen der Releases
- Jedes Archiv wird mit seiner SHA-256-Prüfsumme veröffentlicht und enthält den vollständigen Quellcode. Das Installationsprogramm lädt es über HTTPS herunter und prüft die SHA-256, bevor es irgendetwas ausführt.
- Updates, die sich rückgängig machen lassen
- Jedes Update legt eine Sicherung mit einem Wiederherstellungsskript an, prüft, ob die neue Version startet, und rollt von selbst zurück, wenn nicht.
- Zugang wiederherstellen
- Wenn Sie sich ausgesperrt haben, setzt ein Befehl auf dem Server die Panel-Anmeldung und die IP-Freigabeliste zurück und hebt Anmeldesperren auf.
Probieren Sie es auf einem freien Server aus
Die Installation dauert auf einem frischen Ubuntu 24.04 wenige Minuten.