AR
EUR
الإصدار المجانيمجاني تثبيت

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

أي إصدار ستثبّت

الإصدار العام هو إصدار تطوير باسم 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 حقيقي.

PowerShell (Admin)
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 أو مع جدار حماية آخر أو لإجراء ذلك يدوياً.

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

تحقق من الخدمات

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

الترقية

خذ نسخة احتياطية من الإعدادات والبيانات ثم شغّل المثبّت من جديد: يحتفظ بإعداداتك ويتراجع تلقائياً إذا لم يصبح الإصدار الجديد سليماً. المسارات المعروضة هي مسارات تثبيت جديد (/var/toutwaf)؛ أما التثبيت الأقدم فيحتفظ بـ /etc/toutwaf و/var/lib/toutwaf. يمكنك أيضاً التحديث من اللوحة عبر صفحة التحديثات.

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

إلغاء التثبيت

تزيل الكتلة الأولى الخدمات والملفات التنفيذية وقواعد جدار الحماية التي أضافها ToutWAF وتُبقي بياناتك. وتحذف الثانية أيضاً الإعدادات والبيانات والسجلات.

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