ES
EUR
Edición gratuitaGratuito Instalar

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.

All ways to install

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.

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

Abra 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.

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

Compruebe los servicios

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

Actualizar

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.

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

Desinstalar

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.

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

What 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.

Other ways to install

Learn more in the documentation