دليل تشغيلي · للنشر

دليل النشر خطوة بخطوة

من خادمٍ فارغ داخل المملكة إلى نظامٍ يعمل: تهيئة الخادم، ونشر Wazuh ومنصّة Secur-SA، وربطهما، وتوصيل أجهزة العملاء، وتأمين الوصول، وإطلاق تجربةٍ أولى. الأوامر مرجعية — تحقّق منها مقابل توثيق مزوّدك وأحدث إصدارات Wazuh.

0 المتطلبات المسبقة

تنبيه أمني مهم: جرّب آلية العزل أولاً في بيئة معزولة (مختبر) قبل أي جهاز إنتاجي، وتأكّد من إدراج عنوان المدير في القائمة المسموحة بسكربت العزل حتى لا تفقد الاتصال بالجهاز.

1 الخادم داخل المملكة

أنشئ خادماً افتراضياً في منطقةٍ داخل المملكة بمواصفات مرحلة الـMVP:

العنصرالقيمة الموصى بها (MVP)
المنطقةالدمام (Google) أو الرياض (AWS) — إقامة بيانات داخل المملكة
المواصفات8 vCPU / 16–32 GB ذاكرة / 200 GB SSD
نظام التشغيلUbuntu Server 22.04 / 24.04 LTS

المنافذ في مجموعة الأمان (Firewall)

المنفذالغرضالمصدر
22/TCPSSH للإدارةعنوانك فقط
443/TCPاللوحة (HTTPS)العالم / شبكتك
1514, 1515/TCPاتصال وتسجيل الوكلاءشبكات العملاء
55000/TCPWazuh API (داخلي)الخادم فقط (localhost)

تثبيت Docker على الخادم

# بعد الدخول عبر SSH sudo apt update && sudo apt -y upgrade curl -fsSL https://get.docker.com | sudo sh sudo usermod -aG docker $USER && newgrp docker # ضبط حدود الذاكرة المطلوبة لمفهرس Wazuh sudo sysctl -w vm.max_map_count=262144 echo "vm.max_map_count=262144" | sudo tee -a /etc/sysctl.conf

2 نشر منظومة Wazuh

نستخدم مجموعة Wazuh الرسمية (single-node) التي تولّد شهادات TLS تلقائياً:

git clone https://github.com/wazuh/wazuh-docker.git -b v4.x cd wazuh-docker/single-node # 1) توليد شهادات TLS docker compose -f generate-indexer-certs.yml run --rm generator # 2) تشغيل المدير + المفهرس + لوحة Wazuh docker compose up -d docker ps # تأكّد أن الحاويات تعمل
هام: غيّر جميع كلمات المرور الافتراضية فوراً (المفهرس، لوحة Wazuh، ومستخدم الـAPI «wazuh-wui»). ولوحة Wazuh للاستخدام الداخلي لديك فقط — اربطها بمنفذٍ غير 443 (مثل 8443) أو قيّدها داخلياً، لأن المنفذ 443 سنخصّصه للوحة Secur-SA المواجهة للعملاء.

احتفظ بكلمة مرور مستخدم الـAPI wazuh-wui — سنحتاجها في المرحلة 4.

3 نشر منصّة Secur-SA

انسخ حزمة secursa-mvp إلى الخادم (عبر scp مثلاً)، ثم:

cd secursa-mvp # أنشئ ملف البيئة (.env) — ولّد مفتاحاً سرّياً عبر: openssl rand -base64 48 nano .env # ضع فيه: # SECURSA_SECRET_KEY=<مفتاح عشوائي طويل> # SECURSA_OWNER_EMAIL=you@secur-sa.com # SECURSA_CORS_ORIGINS=https://app.secur-sa.com docker compose up -d --build curl -s http://127.0.0.1:8000/health # يجب أن يعيد status: ok
البريد في SECURSA_OWNER_EMAIL هو حساب مالك المنصّة (أنت) — التسجيل به يمنحك لوحة تنبيهات المالك عبر كل العملاء.

4 ربط المنصّة بـ Wazuh

  1. انشر قواعد الكشف في حاوية المدير:
    docker cp wazuh-config/secursa_rules.xml \ single-node-wazuh.manager-1:/var/ossec/etc/rules/secursa_rules.xml
  2. أضِف إعداد الاستجابة: افتح /var/ossec/etc/ossec.conf في المدير وألصق محتوى wazuh-config/active-response.conf داخل وسم <ossec_config>، ثم أعد التشغيل:
    docker restart single-node-wazuh.manager-1
  3. فعّل التكامل في ملف .env ثم أعد الإنشاء:
    SECURSA_WAZUH_ENABLED=true SECURSA_WAZUH_API_URL=https://MANAGER_IP:55000 SECURSA_WAZUH_API_USER=wazuh-wui SECURSA_WAZUH_API_PASSWORD=YOUR_API_PASSWORD docker compose up -d # أعد الإنشاء لتطبيق المتغيّرات
اسم حاوية المدير قد يختلف — تحقّق عبر docker ps واستبدله أعلاه.

5 سكربتات العزل على الأجهزة

لينكس

sudo cp isolate-host.sh /var/ossec/active-response/bin/ sudo chmod 750 /var/ossec/active-response/bin/isolate-host.sh sudo chown root:wazuh /var/ossec/active-response/bin/isolate-host.sh # عنوان المدير في القائمة المسموحة حتى لا يفقد الجهاز الاتصال أثناء العزل echo 'SECURSA_MANAGER_IP=MANAGER_IP' | sudo tee -a /etc/environment

ويندوز

# انسخ isolate-host.ps1 + أنشئ غلاف isolate-host.cmd بالمحتوى: @echo off PowerShell -ExecutionPolicy Bypass -File "%~dp0isolate-host.ps1" # في مجلّد: C:\Program Files (x86)\ossec-agent\active-response\bin\ # واضبط عنوان المدير setx SECURSA_MANAGER_IP "MANAGER_IP" /M
قبل الإنتاج: اختبر العزل ورفع العزل على جهازٍ تجريبي، وتأكّد أن الجهاز يبقى متّصلاً بالمدير أثناء العزل (بفضل القائمة المسموحة)، وأن «معالجة وإطلاق» تعيده للعمل.

6 ربط أجهزة العملاء (الوكلاء)

على كل جهاز، ثبّت وكيل Wazuh وأشِر به للمدير (استبدل x بأحدث إصدار):

لينكس (Ubuntu/Debian)

curl -sO https://packages.wazuh.com/4.x/apt/pool/main/w/wazuh-agent/wazuh-agent.deb sudo WAZUH_MANAGER="MANAGER_IP" dpkg -i ./wazuh-agent.deb sudo systemctl enable --now wazuh-agent

ويندوز (PowerShell كمسؤول)

Invoke-WebRequest -Uri https://packages.wazuh.com/4.x/windows/wazuh-agent.msi -OutFile $env:TEMP\wazuh-agent.msi msiexec.exe /i $env:TEMP\wazuh-agent.msi /q WAZUH_MANAGER="MANAGER_IP" NET START WazuhSvc
تسلسل العمل: سجّل الجهاز من لوحة Secur-SA (تُنشئ سجلّ الوكيل في Wazuh عبر الـAPI)، ثم ثبّت الوكيل على الجهاز ليتّصل ويظهر متّصلاً. بعدها يعمل الكشف والعزل عليه.

7 التأمين والنطاق (TLS)

اربط النطاق الفرعي للوحة بـ HTTPS تلقائي عبر Caddy:

# وجّه سجل DNS A للنطاق app.secur-sa.com إلى عنوان الخادم، ثم: sudo apt install -y caddy # /etc/caddy/Caddyfile : app.secur-sa.com { reverse_proxy 127.0.0.1:8000 } sudo systemctl restart caddy # يحصل على شهادة Let's Encrypt تلقائياً

الآن لوحة Secur-SA على https://app.secur-sa.com. قيّد منفذ SSH (22) بعنوانك، وأبقِ منفذ Wazuh API (55000) داخلياً فقط.

8 التحقّق والإطلاق التجريبي

  1. افتح https://app.secur-sa.com وسجّل حساب المالك (نفس بريد SECURSA_OWNER_EMAIL) وامسح رمز MFA.
  2. هيّئ أول عميل (سجّل مسؤوله) واختر باقته، ثم سجّل أجهزته وثبّت الوكلاء.
  3. في بيئةٍ معزولة، حاكِ تهديداً → تحقّق من العزل التلقائي وظهور تنبيه الحل للمالك وللعميل، ثم «معالجة وإطلاق».
  4. تأكّد من بطاقة الاشتراك والاستهلاك، ومن وصول تنبيه التجاوز للمالك عند إضافة جهازٍ زائد.

9 قائمة تحقّق الإنتاج

ملاحظة بصدق: هذا الدليل يوصلك لنظامٍ يعمل، لكنه لا يُغني عن الخبرة التشغيلية ولا عن التدقيق المستقل. اختبر كل خطوة في بيئةٍ آمنة أولاً، ولا تنشر العزل على أجهزةٍ إنتاجية قبل التأكّد من سلامته في مختبرك.