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.
Какую версию вы устанавливаете
Публичная версия — версия для разработки с именем 0.3.0-dev. Её имя не меняется: каждая публикация заменяет предыдущую, а два выпуска различает идентификатор сборки. Стабильной версии пока нет: её опубликуют, только когда каждая система и каждый пакет пройдут сквозное тестирование. Поэтому команды на этой странице устанавливают продукт из канала dev. Версия для разработки может содержать ошибки: прежде чем на неё полагаться, попробуйте её на тестовом сайте.
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
Откройте PowerShell от имени администратора и запустите установщик
Устанавливает нативные бинарные файлы, регистрирует службу Windows ToutWAF для плоскости данных и задачу запуска для консоли и открывает порты брандмауэра. Установщик ещё не запускался на реальном хосте Windows.
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass -Force
irm https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.ps1 | iexОткройте межсетевой экран
Установщик по умолчанию открывает эти порты, если активен firewalld или ufw: 80 и 443, а также порт консоли 9443 (ограничьте его сетью администраторов параметром --console-from). Порт агентов 9444 никогда не открывается для всех. Эти команды нужны только с --no-firewall, при другом брандмауэре или для ручной настройки.
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Проверьте службы
Get-Service ToutWAF
toutwafctl doctor
Test-NetConnection 127.0.0.1 -Port 9443Обновление
Сделайте резервную копию настроек и данных и снова запустите установщик: он сохраняет ваши настройки и сам откатывается, если новая версия не стала работоспособной. Показаны пути новой установки (/var/toutwaf); более старая установка сохраняет /etc/toutwaf и /var/lib/toutwaf. Обновить можно и из консоли, на странице «Обновления».
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Удаление
Первый блок удаляет службы, бинарные файлы и правила брандмауэра, добавленные ToutWAF, и сохраняет ваши данные. Второй дополнительно удаляет настройки, данные и журналы.
& ([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.