ITSkillsCenter
الأمن السيبراني

نشر agents Wazuh على multi-VPS Linux/Windows: درس 2026

3 min de lecture

📍 المقالة الرئيسية للمجموعة: Wazuh 2026: الدليل الكامل.

Manager Wazuh مثبت، الخطوة التالية: نشر agents على جميع endpoints. هذا الدرس يفصل النشر بالجملة عبر Ansible وbash، مُختبَر على 10-50 VPS عند عدة شركات إفريقية فرنكوفونية. الهدف: نشر agent على عشرات الخوادم في أقل من ساعة بدلاً من عدة أيام يدوياً.

المتطلبات

Wazuh Manager في الإنتاج (راجع درس التثبيت). وصول SSH key إلى VPS الهدف. Ansible 2.14+ أو bash + sshpass. المستوى المتوقع: متوسط. الوقت المقدر: 30 إلى 60 دقيقة.

الطريقة 1 — script bash بسيط

على الـ Manager: توليد authd password

كلمة سر authd تسمح للـ agents بالتسجيل تلقائياً في Manager دون تدخل يدوي. هذه الكلمة يجب أن تكون قوية وسرية لأن أي شخص يعرفها يمكنه إضافة agent إلى Wazuh الخاص بك. خزنها في Vaultwarden مع باقي بيانات اعتماد البنية التحتية.

cat /var/ossec/etc/authd.pass
# سجل passphrase (أو ولِّد واحدة)

Script deploy.sh

هذا script bash بسيط يكتشف OS تلقائياً (Debian أو RHEL) ويثبت agent مع تكوين Manager المحدد. مفيد للنشر على عدد صغير من VPS أو للاختبار قبل استخدام Ansible للنشر الكبير.

#!/bin/bash
WAZUH_MANAGER="siem.votre-entreprise.com"
WAZUH_AGENT_PASSWORD="passphrase-from-manager"

# اكتشاف OS
if [ -f /etc/debian_version ]; then
  curl -s https://packages.wazuh.com/key/GPG-KEY-WAZUH | apt-key add -
  echo "deb https://packages.wazuh.com/4.x/apt/ stable main" | tee /etc/apt/sources.list.d/wazuh.list
  apt-get update
  apt-get install -y wazuh-agent
fi

# تكوين Manager
sed -i "s/MANAGER_IP/${WAZUH_MANAGER}/g" /var/ossec/etc/ossec.conf

# تسجيل تلقائي
WAZUH_REGISTRATION_PASSWORD="${WAZUH_AGENT_PASSWORD}" \
  /var/ossec/bin/agent-auth -m "${WAZUH_MANAGER}" -P

systemctl daemon-reload
systemctl enable --now wazuh-agent

حلقة SSH على 10 VPS

للـ VPS قليلة، حلقة SSH بسيطة تنشر السكربت على كل خادم. لـ 10+ VPS، Ansible أكثر كفاءة لأنه يدير التوازي والاسترداد عند الفشل.

for vps in vps1.fqdn vps2.fqdn vps3.fqdn; do
  ssh root@$vps 'bash -s' < deploy.sh
done

الطريقة 2 — Ansible (موصى به > 5 VPS)

Inventory hosts.ini

Ansible inventory يسرد VPS الهدف. هذا التنسيق البسيط يكفي لمعظم الحالات. لبيئات أكثر تعقيداً، dynamic inventory (AWS، Hetzner Cloud) ممكن.

[wazuh_agents]
vps1.fqdn ansible_user=root
vps2.fqdn ansible_user=root
vps3.fqdn ansible_user=root

Playbook wazuh-agent.yml

هذا playbook كامل ينفذ كل خطوات النشر بشكل idempotent. إذا كان agent مثبتاً بالفعل، الـ playbook يتحقق فقط من تكوينه دون إعادة التثبيت. هذا يسمح بإعادة التشغيل الآمنة لإصلاح الانحرافات أو لتطبيق تكوينات جديدة.

---
- hosts: wazuh_agents
  vars:
    wazuh_manager: siem.votre-entreprise.com
    wazuh_agent_password: "{{ lookup('env','WAZUH_REG_PASSWORD') }}"
  tasks:
    - name: Add Wazuh repo key
      apt_key:
        url: https://packages.wazuh.com/key/GPG-KEY-WAZUH
        state: present

    - name: Add Wazuh repo
      apt_repository:
        repo: deb https://packages.wazuh.com/4.x/apt/ stable main
        state: present

    - name: Install Wazuh agent
      apt:
        name: wazuh-agent
        state: latest
        update_cache: yes

    - name: Configure Manager IP
      replace:
        path: /var/ossec/etc/ossec.conf
        regexp: 'MANAGER_IP'
        replace: '{{ wazuh_manager }}'

    - name: Register agent
      shell: |
        WAZUH_REGISTRATION_PASSWORD={{ wazuh_agent_password }} \
        /var/ossec/bin/agent-auth -m {{ wazuh_manager }} -P
      args:
        creates: /var/ossec/etc/client.keys

    - name: Start service
      systemd:
        name: wazuh-agent
        enabled: yes
        state: restarted

التشغيل

export WAZUH_REG_PASSWORD="passphrase"
ansible-playbook -i hosts.ini wazuh-agent.yml

Windows Server agent

للخوادم Windows، PowerShell ينفذ تثبيتاً مشابهاً. msi installer يدعم تكوين Manager مباشرة من سطر الأوامر، مما يبسط النشر المؤتمت.

Invoke-WebRequest -Uri https://packages.wazuh.com/4.x/windows/wazuh-agent-4.10.0-1.msi -OutFile \$env:tmp\wazuh-agent.msi
msiexec /i \$env:tmp\wazuh-agent.msi /q WAZUH_MANAGER="siem.votre-entreprise.com" WAZUH_REGISTRATION_PASSWORD="passphrase"
Start-Service WazuhSvc

التحقق post-deploy

بعد النشر، تحقق من جانب Manager أن جميع agents متصلة وفي حالة active. هذه الخطوة حاسمة لأنه قد يحدث أن agent يبدو مثبتاً محلياً لكنه لا يصل إلى Manager بسبب جدار ناري أو DNS.

# على Manager
/var/ossec/bin/agent_control -l
# يسرد جميع agents مع status

Dashboard → Agents: شاهد الجميع، الحالة «Active»، OS مكتشف بشكل صحيح.

الأخطاء الشائعة

الخطأ السبب الحل
«Connection refused» منفذ 1514/1515 محظور Manager UFW allow from agents IPs
«Auth password incorrect» authd.pass منسوخ بشكل سيئ أعد التوليد + أعد النشر
Agent «Disconnected» Manager أعيد تشغيله Restart agent من جانب VPS
Hostname duplicate عدة agents بنفس الاسم إجبار hostname فريد
زمن استجابة تقارير agent عرض النطاق محدود تقليل تردد الإرسال

التكيف مع السياق المغاربي وغرب إفريقيا

ثلاث توضيحات. VPS عند عدة مزودين. Hetzner + OVH + Africa Data Centres. Wazuh agnostic، فقط DNS Manager متاح. هذا التنوع في الاستضافة يحمي من الأعطال المحلية ويوفر نسخاً احتياطية جغرافية. Tailscale موصى به. Agents وManager على tailnet، منافذ خاصة، لا تعرض عامة. هذا يضمن أن مرور Wazuh مشفر وغير مرئي للإنترنت العام، ويبسط الجدار الناري. التسمية التلقائية. اسم agents حسب hostname + datacenter (مثلاً vps-prod-fsn1). هذا التنسيق يسمح بالعثور بسرعة على الخادم في حالة وجود مشكلة، خاصة عندما يكون لديك عشرات VPS موزعة على عدة مزودين.

دروس الإخوة في المجموعة

الأسئلة المتكررة

سعة agents لكل Manager؟ 1,000 لكل Manager قياسي. Cluster لأكثر.

تحديث agents؟ apt upgrade wazuh-agent تلقائياً.

Container Docker؟ صورة agent موجودة لبيئات الحاويات.

macOS؟ نعم، .pkg installer.

إلغاء التثبيت؟ apt purge wazuh-agent + remove from Manager.

للاستزادة

Besoin d'un site web ?

Confiez-nous la Création de Votre Site Web

Site vitrine, e-commerce ou application web — nous transformons votre vision en réalité digitale. Accompagnement personnalisé de A à Z.

À partir de 250.000 FCFA
Parlons de Votre Projet
Publicité