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.
La versión que se instala
La versión pública es una versión de desarrollo, llamada 0.3.0-dev. Su nombre no cambia: cada publicación sustituye a la anterior y un identificador de compilación distingue dos compilaciones. Todavía no existe ninguna versión estable: solo se publicará cuando cada sistema y cada paquete se hayan probado de extremo a extremo. Por eso, los comandos de esta página instalan desde el canal dev. Una versión de desarrollo puede contener errores: pruébela en un sitio de prueba antes de confiar en ella.
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
Abra PowerShell como administrador y ejecute el instalador
Instala los binarios nativos, registra el servicio de Windows ToutWAF para el plano de datos y una tarea de inicio para la consola, y abre los puertos del cortafuegos. El instalador aún no se ha ejecutado en un host Windows real.
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass -Force
irm https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.ps1 | iexAbra el cortafuegos
El instalador abre estos puertos por defecto cuando firewalld o ufw está activo: 80 y 443, y el puerto 9443 de la consola (restrínjalo a su red de administración con --console-from). El puerto 9444 de los agentes nunca se abre al público. Estos comandos solo hacen falta con --no-firewall, con otro cortafuegos o para hacerlo 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 AllowCompruebe los servicios
Get-Service ToutWAF
toutwafctl doctor
Test-NetConnection 127.0.0.1 -Port 9443Actualizar
Haga una copia de la configuración y de los datos y vuelva a ejecutar el instalador: conserva sus ajustes y revierte por sí solo si la nueva versión no queda sana. Las rutas mostradas son las de una instalación nueva (/var/toutwaf); una instalación anterior conserva /etc/toutwaf y /var/lib/toutwaf. También puede actualizar desde la consola, en la página Actualizaciones.
Copy-Item "$env:ProgramData\ToutWAF" "$env:ProgramData\ToutWAF.bak" -Recurse
& ([scriptblock]::Create((irm https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.ps1))) -Update -YesDesinstalar
El primer bloque elimina los servicios, los binarios y las reglas de cortafuegos añadidas por ToutWAF, y conserva sus datos. El segundo elimina además la configuración, los datos y los registros.
& ([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.