دليل عملي

استضافة Wazuh على VPS: مركز SOC خلال ساعة

الأمان والمراقبة9 دقائق للقراءةعدد الخطوات: 9

تُلزم توجيهة NIS2 الكيانات الأساسية والمهمة بتطبيق أدوات تسجيل الأحداث ومراقبتها والاستجابة للحوادث وفق المادة 21. في الوقت ذاته، تُذكّر ثغرات CVE الأخيرة على Jira وConfluence وGitLab بأن أي محيط غير مراقب هو محيط مخترق في صمت. Wazuh هو نظام SIEM مفتوح المصدر يغطي هذه المتطلبات الثلاثة بشكل أصلي، وتوزيع Docker Compose الرسمي يسمح بنشره على عقدة VPS واحدة في أقل من ساعة.

المحتويات· لماذا Wazuh للامتثال لـ NIS2 المادة 211/11
  1. 01لماذا Wazuh للامتثال لـ NIS2 المادة 21
  2. 02Wazuh مقابل بدائل SIEM ذاتية الاستضافة
  3. 03المتطلبات المسبقة للأجهزة والبرامج
  4. 04ما يراقبه Wazuh فور تفعيل الوكلاء
  5. 05النشر خطوة بخطوة على VPS يعمل بـ Debian/Ubuntu
  6. 06معمارية المكدس أحادي العقدة
  7. 07ضبط الاحتفاظ بالبيانات وتنبيهات البريد الإلكتروني
  8. 08توليد تقارير الامتثال لـ NIS2 / GDPR
  9. 09تحديث Wazuh دون فقدان البيانات
  10. 10استكشاف الأخطاء — المشكلات الشائعة
  11. 11الأخطاء الشائعة وحلولها

لماذا Wazuh للامتثال لـ NIS2 المادة 21

تفرض المادة 21 من NIS2 أربع قدرات: تسجيل الأحداث، الكشف عن الحوادث، الاستجابة، والإخطار. يغطي Wazuh الثلاثة الأولى بشكل أصلي — جمع السجلات، قواعد الكشف، الاستجابة الفعّالة — ولوحة التحكم تُنتج تقارير التدقيق اللازمة للرابعة. خلافاً لـ SIEM السحابي، تبقى البيانات على بنيتك التحتية دون نقل إلى خوادم خارجية. الإصدار 4‎.14‎.8 الصادر في 25 سبتمبر 2026 هو الإصدار المستقر الحالي‎.

Wazuh مقابل بدائل SIEM ذاتية الاستضافة

مرّر الجدول أفقيًا

الأداةالترخيصبيئة النشرتغطية NIS2 المادة 21
Wazuh 4.14GPLv2 (المدير) / Apache 2 (المفهرس)‎Docker Compose رسميتسجيل + كشف + استجابة فعّالة
Elastic SIEMSSPL‎Docker أو حزمتسجيل + كشف (استجابة عبر SOAR خارجي)
Graylog OpenSSPL‎Docker Composeتسجيل (كشف محدود بدون إضافات)
Security OnionGPLv2‎ISO bare-metal أو VMتغطية كاملة لكن يتطلب خادماً مخصصاً

المتطلبات المسبقة للأجهزة والبرامج

المتطلبات الرسمية لنشر عقدة واحدة تغطي حتى 25 وكيلاً: 4 vCPU و8 جيجابايت من الذاكرة العشوائية و50 جيجابايت للتخزين (لـ 90 يوماً من البيانات المفهرسة). يكفي VPS متوسط الفئة لفريق يراقب حتى 25 نقطة نهاية. على صعيد البرامج، تحتاج إلى Docker Engine (الإصدار 24 كحد أدنى) وDocker Compose v2 وGit. يجب أن يسمح نواة Linux بـ 262,144 منطقة ذاكرة افتراضية على الأقل للمفهرس‎.

ما يراقبه Wazuh فور تفعيل الوكلاء

  • مراقبة سلامة الملفات (FIM) — يكشف أي تعديل أو إنشاء أو حذف في المسارات الحرجة (/etc و/bin و/usr/bin افتراضياً)
  • سجلات النظام — يجمع ويفهرس سجلات المصادقة وsyslog وjournald والسجلات التطبيقية المُهيَّأة
  • تقييم التهيئة (SCA) — يقارن حالة النظام الفعلية بمعايير CIS لـ Ubuntu وDebian وRHEL وWindows
  • الكشف عن الـ rootkit — يحلل العمليات المخفية وشذوذات النواة عبر rootcheck
  • الكشف عن الثغرات — يُطابق الحزم المثبتة على الوكلاء مع CVEs من قاعدة بيانات الثغرات الوطنية
  • الاستجابة الفعّالة — يحجب تلقائياً عنوان IP بعد N محاولات مصادقة فاشلة دون الحاجة لـ SOAR خارجي
  • سجلات السحابة — يستوعب أحداث AWS CloudTrail وAzure Activity Log وGCP Audit Log عبر وحدات مخصصة

النشر خطوة بخطوة على VPS يعمل بـ Debian/Ubuntu

  1. تجهيز النظام

    حدّث الحزم وثبّت التبعيات:

    apt update && apt upgrade -y
    apt install -y docker‎.io docker-compose-v2 git curl
    systemctl enable --now docker

    أضف المستخدم غير الجذري لمجموعة docker عند الحاجة:

    usermod -aG docker $USER
  2. ضبط vm‎.max_map_count

    يتطلب مفهرس Wazuh (OpenSearch) 262,144 منطقة ذاكرة افتراضية على الأقل. طبّق المعامل فوراً واجعله دائماً:

    sysctl -w vm‎.max_map_count=262144
    echo 'vm‎.max_map_count=262144' >> /etc/sysctl‎.conf

    بدون هذه الخطوة، يتوقف حاوية wazuh‎.indexer بخطأ max virtual memory areas vm‎.max_map_count [65530] is too low‎.

  3. استنساخ المستودع الرسمي

    استنسخ الفرع المطابق للإصدار المستقر الحالي:

    git clone https://github‎.com/wazuh/wazuh-docker‎.git -b v4‎.14‎.8
    cd wazuh-docker/single-node/

    يحتوي المجلد single-node/ على ملف ‎docker-compose‎.yml الرئيسي وملف generate-indexer-certs‎.yml اللازم للخطوة التالية‎.

  4. توليد شهادات TLS بين الخدمات

    يشفّر Wazuh جميع الاتصالات الداخلية. ولّد الشهادات باستخدام الأداة المُرفقة:

    docker compose -f generate-indexer-certs‎.yml run --rm generator

    تُودَع الشهادات في config/wazuh_indexer_ssl_certs/. لا تُعيد توليدها دون إعادة إنشاء المكدس بالكامل‎.

  5. تشغيل المكدس

    شغّل الخدمات الثلاث في الخلفية:

    docker compose up -d

    تابع بدء التشغيل في الوقت الفعلي:

    docker compose logs -f

    يحتاج المفهرس نحو 60 ثانية ليكون جاهزاً. انتظر السطر Node 'node-1' initialized قبل المتابعة‎.

  6. الدخول إلى لوحة التحكم وتغيير كلمة المرور

    افتح https://IP-الخادم في متصفحك. بيانات الدخول الافتراضية: المستخدم admin، كلمة المرور SecretPassword. غيّر كلمة المرور فوراً عبر Security → Internal users → admin → Edit. للأتمتة من سطر الأوامر:

    docker exec -it single-node-wazuh‎.manager-1 \
      /var/ossec/bin/wazuh-passwords-tool‎.sh \
      -u admin -p 'كلمةمرورجديدة!'
  7. فتح المنافذ الضرورية في الجدار الناري

    على الخادم الافتراضي، اسمح بحركة البيانات الواردة للوكلاء ولوحة التحكم:

    ufw allow 443/tcp   # لوحة التحكم HTTPS
    ufw allow 1514/tcp  # الوكلاء
    ufw allow 1515/tcp  # تسجيل الوكلاء
    ufw allow 514/udp   # استقبال syslog
    ufw allow 55000/tcp # Wazuh REST API (قيّد بعناوين IP الإدارة فقط)
    ufw enable

    قيّد المنفذ 55000 بعناوين IP الإدارة فقط‎.

  8. تثبيت وكيل Wazuh على خادم تريد مراقبته

    على كل جهاز تريد مراقبته، ثبّت الوكيل وأشر به إلى خادمك الافتراضي. مثال على Debian/Ubuntu:

    curl -s https://packages‎.wazuh‎.com/key/GPG-KEY-WAZUH | gpg --dearmor \
      -o /usr/share/keyrings/wazuh‎.gpg
    echo "deb [signed-by=/usr/share/keyrings/wazuh‎.gpg] \
      https://packages‎.wazuh‎.com/4‎.x/apt/ stable main" \
      > /etc/apt/sources‎.list‎.d/wazuh‎.list
    apt update && apt install -y wazuh-agent
    WAZUH_MANAGER='IP-الخادم-الافتراضي' \
    WAZUH_AGENT_NAME='your-server-01' \
      dpkg-reconfigure wazuh-agent
    systemctl enable --now wazuh-agent

    يظهر الوكيل في لوحة التحكم ضمن Agents في غضون 30 ثانية‎.

  9. مزيد من القراءة — أدلة ذات صلة

    لتعزيز وضعيتك الأمنية، راجع أدلتنا ذات الصلة: [nis2-securite-informatique-hebergement-obligations] للالتزامات القانونية التفصيلية، و[crowdsec-vs-fail2ban-securite-vps] للحجب التعاوني على مستوى الشبكة، و[zitadel-sso-self-hosted-vps] لمركزة المصادقة وتقليل سطح الهجوم‎.

معمارية المكدس أحادي العقدة

يُنشئ مكدس Docker Compose الرسمي ثلاث خدمات مترابطة. مدير Wazuh هو القلب: يستقبل الأحداث من الوكلاء عبر المنفذ 1514، ويُطبّق قواعد الكشف، ويُشغّل الاستجابات الفعّالة، ويُحيل التنبيهات إلى المفهرس. مفهرس Wazuh (OpenSearch) يخزّن هذه التنبيهات ويجعلها قابلة للبحث؛ يتواصل مع المدير عبر المنفذ 9200 ويستلزم موارد النواة الخاصة بمحركات البحث. لوحة تحكم Wazuh تعرض واجهة المستخدم على المنفذ 443 وتستعلم المفهرس عبر HTTPS. تتشارك الخدمات الثلاث شهادات TLS موقّعة ذاتياً تُولَّد في خطوة التجهيز؛ تعديل إحداها دون إعادة توليد الأخريات يُسبّب أخطاء التحقق المتبادل. البيانات المستمرة — تهيئة المدير، طابور التنبيهات، بيانات الفهرس — مخزّنة في أحجام Docker مُسمّاة مفصولة عن دورة حياة الحاويات‎.

ضبط الاحتفاظ بالبيانات وتنبيهات البريد الإلكتروني

يحتفظ Wazuh بالبيانات 90 يوماً افتراضياً. لتعديل الاحتفاظ، عدّل معامل max_age في سياسة ISM للمفهرس عبر Index Management → Policies في لوحة التحكم. يمكنك تمديد الاحتفاظ إلى 180 يوماً لتلبية متطلبات NIS2 لحفظ السجلات، أو تقليصه إلى 30 يوماً على VPS محدود التخزين. لتنبيهات البريد الإلكتروني، عدّل ‎/var/ossec/etc/ossec‎.conf في حاوية المدير — أضف مقطع <email_notification> مع خادم SMTP ومستويات التنبيه المطلوبة (المستوى 7 فما فوق للتنبيهات الحرجة، والمستوى 5 لتضمين التنبيهات المتوسطة). يدعم Wazuh أيضاً إرسال الإشعارات عبر webhooks إلى Slack وTeams وPagerDuty. أعد تشغيل المدير بعد كل تعديل في التهيئة:

docker compose restart wazuh‎.manager

توليد تقارير الامتثال لـ NIS2 / GDPR

تتضمن لوحة تحكم Wazuh لوحات مخصصة لأُطر الامتثال: GDPR وPCI DSS وHIPAA وNIST 800-53. تتيح هذه اللوحات تصدير تقارير PDF تُدرج الضوابط المغطاة والأحداث المرتبطة بها — مفيدة لتبرير وضعيتك أمام مدقق أو سلطة مختصة بـ NIS2. لـ NIS2 تحديداً، استخدم عرض GDPR كأساس وأكمله بقواعد الكشف المصنّفة وفق إطار Mitre ATT&CK. تُلزم NIS2 بالإخطار في غضون 72 ساعة من اكتشاف حادث مهم: هيّئ تنبيهات المستوى 12 (الحرجة) لتُطلق إخطاراً فورياً — يتضمن Wazuh قواعد جاهزة لمحاولات استغلال CVEs المعروفة والتحركات الجانبية وتصعيد الامتيازات‎.

فعّل سياسة كلمات المرور القوية في Wazuh فور التثبيت: ضمن Security → Security settings، فعّل 'Require complex passwords' و'Enable audit logging'. كلا الخيارين معطّلان افتراضياً ويجب تفعيلهما يدوياً قبل الإنتاج‎.

تحديث Wazuh دون فقدان البيانات

تُحفظ بيانات المفهرس في أحجام Docker مُسمّاة. تتضمن إجراءات التحديث استنساخ الإصدار الجديد في مجلد منفصل ونسخ الأحجام الموجودة ثم إعادة تشغيل المكدس. توصي الوثيقة الرسمية بنسخ احتياطي للأحجام قبل أي تحديث رئيسي:

docker run --rm \
  -v single-node_wazuh-indexer-data:/data \
  -v $(pwd)/backup:/backup \
  alpine tar czf /backup/indexer-data-$(date +%Y%m%d)‎.tar‎.gz /data

للتحديث من إصدار ثانوي (مثلاً 4‎.14‎.7 إلى 4‎.14‎.8)، عدّل الوسم في ‎docker-compose‎.yml وأعد التشغيل بـ docker compose up -d --pull always‎.

استكشاف الأخطاء — المشكلات الشائعة

إليك الأخطاء الخمسة الأكثر شيوعاً خلال أول نشر لـ Wazuh Docker مع أسبابها وحلولها‎.

الأخطاء الشائعة وحلولها

  • max virtual memory areas vm‎.max_map_count [65530] is too low — لم يُطبَّق معامل النواة. نفّذ sysctl -w vm‎.max_map_count=262144 وتحقق بـ sysctl vm‎.max_map_count قبل إعادة تشغيل المكدس‎.
  • Connection refused على المنفذ 443 بعد docker compose up -d — المفهرس ليس جاهزاً بعد. انتظر 60 إلى 90 ثانية وراجع docker compose logs wazuh‎.indexer للتأكد من تهيئة العقدة‎.
  • Agent disconnected مباشرة بعد التسجيل — المنفذ 1514/TCP أو 1515/TCP محجوب على مستوى الخادم الافتراضي. تحقق من ufw status وقواعد الأمان الشبكي لمزود الاستضافة‎.
  • certificate verify failed في سجلات لوحة التحكم — الشهادات المُولَّدة تلقائياً لا تتطابق مع عنوان IP أو اسم المضيف المستخدم. أعد توليد الشهادات بعد التحقق من أن WAZUH_DASHBOARD_HOST في ‎docker-compose‎.yml يطابق عنوان IP أو اسم نطاقك‎.
  • Wazuh API 401 Unauthorized — تغيير كلمة مرور admin لم يُنشر على تهيئة لوحة التحكم. بعد التعديل، حدّث أيضاً DASHBOARD_PASSWORD في ملف ‎‎.env أو في متغيرات بيئة خدمة wazuh‎.dashboard، ثم أعد التشغيل بـ docker compose restart wazuh‎.dashboard‎.

VPS مصمم لـ Wazuh

تتضمن خوادمنا الافتراضية الاحترافية تهيئات مُحسَّنة لأحمال SIEM: 8 vCPU و16 جيجابايت RAM وتخزين NVMe سريع وشبكة معزولة.

بحاجة إلى مساعدة؟

تصفّح مركز المساعدة والأسئلة الشائعة، أو تواصل مع فريقنا — معاودة اتصال أو WhatsApp أو بريد إلكتروني. الدعم بـالعربية والفرنسية والإنجليزية.

راسلنا على WhatsAppيُفتح في علامة تبويب جديدة