Windows
The PowerShell installer for Windows 10, 11 and Windows Server: a Windows service for the data plane, a startup task for the console, firewall rules, check, upgrade and uninstall.
Quale versione installi
La versione pubblica è una versione di sviluppo, chiamata 0.3.0-dev. Il suo nome non cambia: ogni pubblicazione sostituisce la precedente e un identificativo di build distingue due build. Non esiste ancora una versione stabile: sarà pubblicata solo quando ogni sistema e ogni pacchetto saranno stati testati end to end. I comandi di questa pagina installano quindi dal canale dev. Una versione di sviluppo può contenere difetti: provala su un sito di prova prima di farci affidamento.
At a glance
- Windows Server 2016 and later, Windows 10 version 1809 and later, Windows 11, amd64 and arm64. 32-bit Windows is not supported.
- Run it in an elevated PowerShell (Run as Administrator), version 5.1 or later.
- The data plane runs as the Windows service “ToutWAF”; the control plane as a startup scheduled task “ToutWAF-ControlPlane”.
- The script verifies the SHA-256, installs in Program Files, keeps everything mutable in ProgramData, opens the firewall and starts; run again it upgrades in place and goes back to the previous binary if the new one fails the health check.
The commands, step by step
Apri PowerShell come amministratore ed esegui l'installer
Installa i binari nativi, registra il servizio Windows ToutWAF per il data plane e un'attività di avvio per la console, e apre le porte del firewall. L'installer non è ancora stato eseguito su un vero host Windows.
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass -Force
irm https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.ps1 | iexApri il firewall
L'installer apre queste porte per impostazione predefinita quando firewalld o ufw è attivo: 80 e 443, e la porta 9443 della console (limitala alla tua rete di amministrazione con --console-from). La porta 9444 degli agent non viene mai aperta al pubblico. Questi comandi servono solo con --no-firewall, con un altro firewall o per farlo a mano.
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 AllowVerifica i servizi
Get-Service ToutWAF
toutwafctl doctor
Test-NetConnection 127.0.0.1 -Port 9443Aggiorna
Fai il backup della configurazione e dei dati, poi riesegui l'installer: mantiene le tue impostazioni e torna indietro da solo se la nuova versione non diventa sana. I percorsi mostrati sono quelli di una nuova installazione (/var/toutwaf); un'installazione precedente mantiene /etc/toutwaf e /var/lib/toutwaf. Puoi anche aggiornare dalla console, nella pagina Aggiornamenti.
Copy-Item "$env:ProgramData\ToutWAF" "$env:ProgramData\ToutWAF.bak" -Recurse
& ([scriptblock]::Create((irm https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.ps1))) -Update -YesDisinstalla
Il primo blocco rimuove i servizi, i binari e le regole del firewall aggiunte da ToutWAF, e conserva i tuoi dati. Il secondo elimina anche configurazione, dati e log.
& ([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 -PurgeWhat is not verified
We prefer to say it plainly.
- The installer has not been run on a real Windows host: every version has the status “expected”, not “tested”. The arm64 build was only cross-compiled, never run, not even under emulation.
- Differences from Linux: one accept loop per listener, no systemd watchdog (the service recovery replaces it), and SELinux, firewalld, sysctl and logrotate do not apply.