راهنمای عملی نصب و پیکربندی Wazuh ۴.۱۴ در لینوکس — تشخیص نفوذ و SIEM متن‌باز

نصب گام‌به‌گام Wazuh ۴.۱۴ روی Ubuntu 24.04، پیکربندی نظارت یکپارچگی فایل، تشخیص حملات brute-force SSH با پاسخ خودکار، نوشتن قوانین سفارشی، اسکن آسیب‌پذیری و یکپارچه‌سازی با Suricata.

مقدمه: چرا به یک سامانه SIEM و تشخیص نفوذ نیاز دارید؟

بیایید با یک واقعیت تلخ شروع کنیم — اگر فکر می‌کنید سرورهای لینوکس‌تان به‌اندازه کافی امن هستند فقط چون فایروال دارید و SSH را سفت‌وسخت تنظیم کرده‌اید، باید بگویم فقط نیمی از راه را رفته‌اید. پیشگیری خیلی مهمه، ولی واقعیت اینه که هیچ سیستمی ۱۰۰ درصد نفوذناپذیر نیست.

سؤال واقعی این نیست که «آیا نفوذی اتفاق می‌افتد؟» بلکه «کِی اتفاق می‌افتد و چقدر سریع متوجه می‌شویم؟»

آمار سال ۲۰۲۵ نشان می‌دهد که میانگین زمان شناسایی یک نفوذ ۱۹۴ روز است. یعنی مهاجم تقریباً شش ماه و نیم در شبکه شما آزادانه گشت می‌زند قبل از اینکه متوجه شوید. صادقانه بگویم، وقتی اولین بار این عدد را دیدم باورم نمی‌شد. حملات brute-force هم حدود ۸۹ درصد از رفتارهای مخرب در سرورهای لینوکس را تشکیل می‌دهند و آسیب‌پذیری‌های هسته لینوکس از ۳٬۵۲۹ مورد در سال ۲۰۲۴ به بیش از ۵٬۵۰۰ مورد در سال ۲۰۲۵ رسیده‌اند — یعنی روزانه ۸ تا ۹ CVE جدید!

اینجاست که به یک سامانه SIEM (مدیریت اطلاعات و رویدادهای امنیتی) و تشخیص نفوذ نیاز پیدا می‌کنید. سامانه‌ای که تمام لاگ‌ها را جمع‌آوری کند، رویدادها را همبستگی‌سنجی کند، تهدیدات را در لحظه شناسایی کند و حتی به‌صورت خودکار واکنش نشان بدهد. خب، Wazuh دقیقاً همین کار را انجام می‌دهد — رایگان، متن‌باز و با قابلیت‌هایی که تا چند سال پیش فقط در محصولات تجاری گران‌قیمت مثل Splunk و IBM QRadar پیدا می‌شد.

Wazuh چیست و چرا در سال ۲۰۲۶ بهترین انتخاب است؟

Wazuh یک پلتفرم امنیتی متن‌باز و رایگان است که قابلیت‌های XDR (تشخیص و پاسخ گسترده) و SIEM را در یک راه‌حل واحد ترکیب کرده. این پروژه در سال ۲۰۱۵ به‌عنوان فورکی از OSSEC شروع شد و حالا تبدیل شده به پرکاربردترین پلتفرم امنیتی متن‌باز دنیا.

آخرین نسخه پایدار در زمان نوشتن این مقاله Wazuh 4.14.3 است (منتشرشده فوریه ۲۰۲۶). نسخه ۴.۱۲ یکی از بزرگ‌ترین به‌روزرسانی‌ها بود — پشتیبانی از eBPF برای نظارت بلادرنگ فایل‌ها، یکپارچه‌سازی Cyber Threat Intelligence با اطلاعات آسیب‌پذیری و پشتیبانی از معماری ARM. اگر قبلاً با نسخه‌های قدیمی‌تر کار کرده باشید، تفاوت را حس می‌کنید.

خب، چرا Wazuh؟ چند دلیل قانع‌کننده:

  • کاملاً رایگان: بدون محدودیت تعداد Agent، بدون هزینه لایسنس، بدون قفل فروشنده
  • همه‌کاره: تشخیص نفوذ مبتنی بر میزبان (HIDS)، نظارت بر یکپارچگی فایل (FIM)، اسکن آسیب‌پذیری، ارزیابی پیکربندی امنیتی (SCA)، تشخیص روت‌کیت و پاسخ خودکار — همه در یک پلتفرم
  • مقیاس‌پذیر: از یک سرور شخصی تا هزاران نود سازمانی
  • انطباق با استانداردها: PCI-DSS، HIPAA، GDPR، CIS Benchmarks
  • جامعه فعال: بیش از ۲۰٬۰۰۰ ستاره در GitHub و مستندات واقعاً جامع

معماری Wazuh: اجزا و نحوه کارکرد

قبل از نصب، بیایید یک نگاه کلی به معماری Wazuh بیندازیم. درک اینکه هر جزء چه کاری انجام می‌دهد، بعداً هم در تنظیمات و هم در عیب‌یابی خیلی کمک‌تان می‌کند.

Wazuh Agent (عامل)

نرم‌افزار سبکی که روی سرورها و نقاط پایانی نصب می‌شود. وظیفه‌اش جمع‌آوری داده‌های امنیتی از لاگ‌های سیستم، رویدادهای فایل، فرآیندها و شبکه است. از لینوکس، ویندوز و macOS پشتیبانی می‌کند و داده‌ها را از طریق پورت‌های 1514 (ارسال رویداد) و 1515 (ثبت‌نام) به سرور می‌فرستد.

Wazuh Server (سرور/مدیر)

هسته اصلی پلتفرم. داده‌های دریافتی از Agentها را رمزگشایی، تحلیل و با قوانین تشخیص تطبیق می‌دهد. وقتی تهدیدی شناسایی بشه، هشدار تولید می‌کند و پیکربندی Agentها را هم به‌صورت مرکزی مدیریت می‌کند.

Wazuh Indexer (موتور جستجو)

بر پایه OpenSearch ساخته شده و کارش ذخیره‌سازی و ایندکس‌گذاری هشدارها و رویدادهاست. جستجوی سریع، فیلتر و تحلیل داده‌های امنیتی را ممکن می‌کند.

Wazuh Dashboard (داشبورد)

رابط گرافیکی وب‌محور برای مشاهده هشدارها، مدیریت Agentها، شکار تهدید و گزارش‌دهی انطباق. از طریق API با سرور ارتباط برقرار می‌کند.

Filebeat

وظیفه انتقال امن هشدارها از سرور Wazuh به Indexer را بر عهده دارد. شاید ساده به نظر برسد، ولی بدون این جزء، داده‌ها به Indexer نمی‌رسند.

پیش‌نیازهای نصب

برای نصب تک‌گره (All-in-One) که تمام اجزای Wazuh را روی یک سرور اجرا می‌کند، حداقل منابع زیر لازم است:

  • سیستم‌عامل: Ubuntu 22.04/24.04 LTS، Debian 11/12، Rocky/Alma/RHEL 8/9
  • پردازنده: حداقل ۴ هسته (پیشنهادی ۸ هسته)
  • حافظه RAM: حداقل ۸ گیگابایت (پیشنهادی ۱۶ گیگابایت)
  • فضای دیسک: حداقل ۵۰ گیگابایت SSD (پیشنهادی ۲۰۰ گیگابایت)
  • شبکه: IP ثابت یا hostname قابل resolve
  • دسترسی: کاربر root یا sudo

یک نکته که خیلی مهمه: حتماً از دیسک SSD استفاده کنید. عملکرد OpenSearch روی دیسک‌های مکانیکی به‌شدت افت می‌کند و جستجوی هشدارها آنقدر کُند می‌شود که عملاً غیرقابل استفاده خواهد بود.

نصب گام‌به‌گام Wazuh روی Ubuntu 24.04 (حالت تک‌گره)

خب، بریم سراغ اصل مطلب. ساده‌ترین و سریع‌ترین روش نصب، استفاده از اسکریپت نصب خودکار Wazuh است. این اسکریپت تمام اجزا (Indexer، Server، Filebeat و Dashboard) را نصب و پیکربندی می‌کند.

گام ۱: به‌روزرسانی سیستم

sudo apt update && sudo apt upgrade -y

گام ۲: تنظیم hostname

sudo hostnamectl set-hostname wazuh-server
exec bash

فایل /etc/hosts را هم ویرایش کنید:

echo "YOUR_SERVER_IP wazuh-server" | sudo tee -a /etc/hosts

گام ۳: دانلود اسکریپت نصب و فایل پیکربندی

curl -sO https://packages.wazuh.com/4.14/wazuh-install.sh
curl -sO https://packages.wazuh.com/4.14/wazuh-certs-tool.sh
curl -sO https://packages.wazuh.com/4.14/config.yml

گام ۴: ویرایش فایل پیکربندی

فایل config.yml را باز کنید و آدرس IP سرور خودتان را جایگزین کنید:

nodes:
  indexer:
    - name: wazuh-indexer
      ip: "192.168.1.100"    # IP سرور خود را وارد کنید
  server:
    - name: wazuh-server
      ip: "192.168.1.100"
  dashboard:
    - name: wazuh-dashboard
      ip: "192.168.1.100"

گام ۵: تولید گواهی‌نامه‌ها

bash wazuh-install.sh --generate-config-files

این دستور گواهی‌نامه‌های TLS، کلید خوشه و رمزهای عبور را تولید می‌کند.

گام ۶: نصب تمام اجزا (All-in-One)

bash wazuh-install.sh -a

این فرآیند بسته به سرعت اینترنت و سخت‌افزار شما بین ۱۰ تا ۳۰ دقیقه طول می‌کشد. صبور باشید و وسط کار قطعش نکنید! پس از اتمام، اسکریپت اطلاعات ورود (نام کاربری و رمز عبور) را نمایش می‌دهد — حتماً آنها را یادداشت کنید چون دوباره نمایش داده نمی‌شوند.

گام ۷: بررسی وضعیت سرویس‌ها

# بررسی Wazuh Manager
sudo systemctl status wazuh-manager

# بررسی Wazuh Indexer
sudo systemctl status wazuh-indexer

# بررسی Wazuh Dashboard
sudo systemctl status wazuh-dashboard

# بررسی سلامت خوشه Indexer
curl -k -u admin https://localhost:9200/_cat/nodes?v

اگر هر سه سرویس در وضعیت active (running) باشند، تبریک — تا اینجا همه‌چیز درست پیش رفته.

گام ۸: دسترسی به داشبورد

مرورگر خود را باز کنید و به آدرس زیر بروید:

https://YOUR_SERVER_IP

با نام کاربری admin و رمز عبوری که در مرحله نصب دریافت کردید وارد شوید. اگر صفحه داشبورد را دیدید، یعنی نصب با موفقیت انجام شده!

گام ۹ (اختیاری): غیرفعال‌سازی مخزن Wazuh

یک کار اختیاری ولی پیشنهادی — برای جلوگیری از به‌روزرسانی ناخواسته، مخزن را غیرفعال کنید:

sudo sed -i "s/^deb /#deb /" /etc/apt/sources.list.d/wazuh.list
sudo apt update

این کار باعث می‌شود Wazuh فقط زمانی به‌روزرسانی شود که خودتان دستی اقدام کنید. در محیط تولید، به‌روزرسانی‌های غیرمنتظره می‌توانند دردسرساز باشند.

نصب و اتصال Agent لینوکس

حالا که سرور آماده‌ست، وقتشه Agent را روی سرورهایی که می‌خواهید نظارت کنید نصب کنید. هر سروری که Agent روش نصب بشه، به‌صورت مداوم لاگ‌ها و رویدادهای امنیتی را به سرور Wazuh ارسال می‌کند.

نصب Agent روی Ubuntu/Debian

# افزودن مخزن Wazuh
curl -s https://packages.wazuh.com/key/GPG-KEY-WAZUH | gpg --no-default-keyring   --keyring gnupg-ring:/usr/share/keyrings/wazuh.gpg --import &&   chmod 644 /usr/share/keyrings/wazuh.gpg

echo "deb [signed-by=/usr/share/keyrings/wazuh.gpg] https://packages.wazuh.com/4.x/apt/ stable main" |   sudo tee /etc/apt/sources.list.d/wazuh.list

# نصب Agent
sudo apt update
sudo WAZUH_MANAGER="192.168.1.100" apt install wazuh-agent -y

نصب Agent روی RHEL/CentOS/Rocky

# افزودن مخزن Wazuh
sudo rpm --import https://packages.wazuh.com/key/GPG-KEY-WAZUH

cat << EOF | sudo tee /etc/yum.repos.d/wazuh.repo
[wazuh]
gpgcheck=1
gpgkey=https://packages.wazuh.com/key/GPG-KEY-WAZUH
enabled=1
name=EL-$releasever - Wazuh
baseurl=https://packages.wazuh.com/4.x/yum/
protect=1
EOF

# نصب Agent
sudo WAZUH_MANAGER="192.168.1.100" yum install wazuh-agent -y

فعال‌سازی و راه‌اندازی Agent

# فعال‌سازی سرویس
sudo systemctl daemon-reload
sudo systemctl enable wazuh-agent
sudo systemctl start wazuh-agent

# بررسی وضعیت اتصال
sudo systemctl status wazuh-agent

پس از چند ثانیه، Agent در داشبورد Wazuh قابل مشاهده خواهد بود. اگر Agent به حالت Pending ماند، احتمالاً مشکل فایروال است — پورت‌های ۱۵۱۴ و ۱۵۱۵ سرور را چک کنید.

پیکربندی نظارت بر یکپارچگی فایل (FIM)

نظارت بر یکپارچگی فایل (File Integrity Monitoring) به نظر من یکی از ارزشمندترین قابلیت‌های Wazuh است. ایده ساده‌ست: اگر کسی — چه مهاجم، چه یک کارمند بی‌احتیاط — فایلی را در مسیرهای حساس سیستم تغییر بدهد، حذف کند یا اضافه کند، Wazuh فوراً خبرتان می‌دهد.

از نسخه ۴.۱۲، ماژول FIM از eBPF پشتیبانی می‌کند. یعنی تغییرات فایل‌ها مستقیماً در سطح هسته لینوکس شناسایی می‌شوند — بدون نیاز به ابزارهای خارجی مثل auditd و با سرعت و کارایی بسیار بالاتر. این یک تغییر واقعاً بزرگ بود.

فعال‌سازی FIM در Agent

فایل پیکربندی Agent را ویرایش کنید (/var/ossec/etc/ossec.conf):

<syscheck>
  <!-- فاصله اسکن پایه: هر ۶ ساعت -->
  <frequency>21600</frequency>

  <!-- نظارت بلادرنگ بر مسیرهای حساس -->
  <directories check_all="yes" realtime="yes" report_changes="yes">/etc</directories>
  <directories check_all="yes" realtime="yes" report_changes="yes">/usr/bin</directories>
  <directories check_all="yes" realtime="yes" report_changes="yes">/usr/sbin</directories>
  <directories check_all="yes" realtime="yes" report_changes="yes">/var/www/html</directories>

  <!-- نظارت بر فایل‌های crontab -->
  <directories check_all="yes" realtime="yes">/var/spool/cron</directories>

  <!-- استثناها: مسیرهایی که تغییرات مکرر طبیعی دارند -->
  <ignore>/etc/mtab</ignore>
  <ignore>/etc/resolv.conf</ignore>
  <ignore type="sregex">^/var/log/</ignore>

  <!-- تشخیص فایل‌های جدید -->
  <scan_on_start>yes</scan_on_start>

  <!-- حداکثر عمق بررسی زیردایرکتوری‌ها -->
  <recursion_level>256</recursion_level>
</syscheck>

به بخش استثناها دقت کنید. مسیرهایی مثل /etc/mtab و /etc/resolv.conf مدام تغییر می‌کنند و اگر استثنا نکنید، داشبوردتان پر از هشدارهای بی‌ربط می‌شود.

فعال‌سازی who-data برای ردیابی کاربر و فرآیند

یکی از قابلیت‌هایی که واقعاً کاربردیه، who-data است. با فعال‌سازی آن، علاوه بر اینکه می‌فهمید فایل تغییر کرده، اطلاعات چه کسی و چه فرآیندی تغییر را ایجاد کرده هم ثبت می‌شود:

<directories check_all="yes" whodata="yes" report_changes="yes">/etc</directories>

برای کارکرد who-data در لینوکس، بسته auditd باید نصب باشد:

# Ubuntu/Debian
sudo apt install auditd -y

# RHEL/Rocky
sudo yum install audit -y

ریستارت Agent

sudo systemctl restart wazuh-agent

حالا در داشبورد Wazuh، به مسیر Endpoint Security → File Integrity Monitoring → Events بروید. هر تغییری در مسیرهای تعریف‌شده به‌صورت بلادرنگ نمایش داده می‌شود. یک فایل تستی در /etc بسازید تا مطمئن شوید همه‌چیز کار می‌کند.

تشخیص حملات Brute-Force SSH و پاسخ خودکار

یکی از رایج‌ترین حملاتی که Wazuh بدون هیچ تنظیم اضافه‌ای می‌تواند شناسایی کند، حملات brute-force SSH است. ولی جذابیت ماجرا اینجاست — Wazuh فراتر از شناسایی صِرف می‌رود و می‌تواند به‌صورت خودکار IP مهاجم را مسدود کند.

بیایید این قابلیت را پیکربندی کنیم.

قوانین پیش‌فرض Wazuh برای SSH

Wazuh از قبل قوانینی برای تشخیص حملات SSH دارد:

  • Rule 5551: ورود ناموفق SSH
  • Rule 5712: تلاش brute-force SSHD
  • Rule 5758: حداکثر تلاش‌های احراز هویت
  • Rule 5763: حمله brute-force SSHD — تلاش برای دسترسی به سیستم

پس از ۸ تلاش ناموفق، قانون ۵۷۶۳ فعال می‌شود. این آستانه قابل تنظیم است، ولی ۸ تلاش معمولاً عدد مناسبی‌ست — کم‌تر از این ممکنه کاربران عادی را هم گیر بیندازد.

پیکربندی Active Response روی سرور

فایل /var/ossec/etc/ossec.conf را روی سرور Wazuh ویرایش کنید و بلوک زیر را اضافه کنید:

<ossec_config>
  <!-- تعریف دستور مسدودسازی -->
  <command>
    <name>firewall-drop</name>
    <executable>firewall-drop</executable>
    <timeout_allowed>yes</timeout_allowed>
  </command>

  <!-- پاسخ خودکار: مسدود کردن IP مهاجم -->
  <active-response>
    <command>firewall-drop</command>
    <location>local</location>
    <rules_id>5763</rules_id>
    <timeout>600</timeout>
  </active-response>
</ossec_config>

این پیکربندی وقتی قانون ۵۷۶۳ فعال بشه، IP مهاجم را به مدت ۶۰۰ ثانیه (۱۰ دقیقه) با iptables مسدود می‌کند. می‌توانید مدت زمان مسدودسازی را بر اساس نیاز خودتان بالا یا پایین ببرید — مثلاً برای محیط تولید، ۱۸۰۰ ثانیه (نیم ساعت) گزینه بهتری هست.

ریستارت سرور Wazuh

sudo systemctl restart wazuh-manager

تست Active Response

برای تست، از یک سرور یا ماشین دیگر چند بار با رمز اشتباه سعی کنید وارد شوید:

# تست از سرور دیگر — ۸ بار رمز اشتباه وارد کنید
ssh nonexistent@YOUR_SERVER_IP

پس از فعال شدن قانون ۵۷۶۳، در داشبورد دو هشدار خواهید دید: یکی برای تشخیص حمله و دیگری (Rule 651) برای اجرای Active Response. اگر این دو هشدار را دیدید، یعنی همه‌چیز درست کار می‌کند.

هشدار: مواظب باشید IP خودتان را بلاک نکنید! قبل از تست مطمئن شوید از یک IP متفاوت وصل هستید یا دسترسی کنسول فیزیکی دارید.

نوشتن قوانین سفارشی تشخیص تهدید

قوانین پیش‌فرض Wazuh خوب هستند، ولی برای محیط خاص شما کافی نیستند. هر سازمانی نیازهای امنیتی متفاوتی دارد و اینجاست که قوانین سفارشی وارد بازی می‌شوند.

محل فایل قوانین سفارشی

قوانین سفارشی را هرگز در فایل‌های پیش‌فرض Wazuh ننویسید — با هر به‌روزرسانی بازنویسی می‌شوند و زحمتتان هدر می‌رود. فایل مخصوص قوانین سفارشی:

/var/ossec/etc/rules/local_rules.xml

مثال ۱: تشخیص ورود root از طریق SSH

ورود مستقیم root از SSH در اکثر محیط‌ها غیرمعمول و مشکوک است. بیایید یک قانون برای آن بنویسیم:

<group name="custom_ssh,">
  <rule id="100010" level="12">
    <if_sid>5715</if_sid>
    <user>root</user>
    <description>SSH: ورود موفق root شناسایی شد — بررسی فوری لازم است</description>
    <mitre>
      <id>T1078</id>
    </mitre>
  </rule>
</group>

مثال ۲: تشخیص تغییر فایل passwd یا shadow

<group name="custom_fim,">
  <rule id="100020" level="14">
    <if_sid>550</if_sid>
    <field name="file">/etc/passwd|/etc/shadow</field>
    <description>تغییر در فایل حساس احراز هویت: </description>
    <mitre>
      <id>T1136</id>
    </mitre>
  </rule>
</group>

سطح ۱۴ (level) نشان‌دهنده شدت بالاست. تغییر در فایل‌های /etc/passwd یا /etc/shadow بدون اطلاع‌رسانی قبلی تقریباً همیشه مشکوکه.

مثال ۳: تشخیص اجرای دستورات مشکوک

<group name="custom_commands,">
  <rule id="100030" level="10">
    <if_group>syslog</if_group>
    <match>wget|curl.*\|.*sh|nc -e|ncat -e|bash -i</match>
    <description>دستور مشکوک شناسایی شد — احتمال reverse shell</description>
    <mitre>
      <id>T1059</id>
    </mitre>
  </rule>
</group>

این قانون الگوهای رایج reverse shell را شناسایی می‌کند. البته ممکن است false positive هم بدهد (مثلاً اسکریپت‌های قانونی که از curl | sh استفاده می‌کنند)، پس در محیط خودتان تست کنید و در صورت نیاز استثنا اضافه کنید.

اعمال قوانین بدون ریستارت (Hot Reload)

یکی از ویژگی‌های خوب نسخه ۴.۱۴ اینه که دیگه لازم نیست برای هر تغییر کوچک در قوانین، کل سرویس را ریستارت کنید:

# بررسی صحت قوانین
sudo /var/ossec/bin/wazuh-logtest

# بارگذاری مجدد قوانین
sudo /var/ossec/bin/wazuh-control reload

اسکن آسیب‌پذیری با Wazuh

Wazuh می‌تواند بسته‌های نصب‌شده روی سرورهای شما را با پایگاه‌های داده آسیب‌پذیری (NVD، Red Hat Security Advisories و غیره) مقایسه کند و CVEهای شناخته‌شده را شناسایی کند. خیلی از سازمان‌ها برای همین یک قابلیت تنها، ابزار جداگانه‌ای خریداری می‌کنند — ولی با Wazuh رایگان دارید.

از نسخه ۴.۱۲، لینک مستقیم به Wazuh Vulnerability Explorer برای هر CVE نمایش داده می‌شود که خیلی کار بررسی را راحت‌تر کرده.

فعال‌سازی ماژول Vulnerability Detector

در فایل /var/ossec/etc/ossec.conf روی سرور Wazuh:

<vulnerability-detector>
  <enabled>yes</enabled>
  <interval>5m</interval>
  <min_full_scan_interval>6h</min_full_scan_interval>
  <run_on_start>yes</run_on_start>

  <!-- فیدهای آسیب‌پذیری -->
  <provider name="canonical">
    <enabled>yes</enabled>
    <os>jammy</os>
    <os>noble</os>
    <update_interval>1h</update_interval>
  </provider>

  <provider name="redhat">
    <enabled>yes</enabled>
    <os>9</os>
    <update_interval>1h</update_interval>
  </provider>

  <provider name="nvd">
    <enabled>yes</enabled>
    <update_interval>1h</update_interval>
  </provider>
</vulnerability-detector>
sudo systemctl restart wazuh-manager

در داشبورد، به بخش Vulnerability Detection بروید. آسیب‌پذیری‌ها بر اساس شدت (Critical، High، Medium، Low) دسته‌بندی شده‌اند و برای هر CVE جزئیات کامل و راهکار رفع نمایش داده می‌شود. پیشنهاد می‌کنم اول آسیب‌پذیری‌های Critical و High را بررسی و رفع کنید.

یکپارچه‌سازی با Suricata برای تشخیص نفوذ شبکه (NIDS)

Wazuh به‌تنهایی یک HIDS (تشخیص نفوذ مبتنی بر میزبان) است و ترافیک شبکه را نمی‌بیند. ولی با ترکیب آن با Suricata (سامانه تشخیص نفوذ شبکه)، یک راه‌حل جامع برای هر دو لایه خواهید داشت. صادقانه بگویم، ترکیب این دو ابزار یکی از بهترین کارهایی‌ست که می‌توانید برای امنیت زیرساختتان انجام بدهید.

نصب Suricata

# Ubuntu/Debian
sudo add-apt-repository ppa:oisf/suricata-stable
sudo apt update
sudo apt install suricata -y

# بررسی نسخه
suricata --build-info | head -5

پیکربندی Suricata

فایل /etc/suricata/suricata.yaml را ویرایش کنید. مهم‌ترین تنظیم، مشخص کردن رابط شبکه‌ای‌ست که Suricata باید روی آن نظارت کند:

af-packet:
  - interface: eth0    # نام رابط شبکه خود را وارد کنید
    cluster-id: 99
    cluster-type: cluster_flow
    defrag: yes

نام رابط شبکه را با ip a پیدا کنید — ممکن است eth0، ens33، enp0s3 یا چیز دیگری باشد.

به‌روزرسانی قوانین Suricata

sudo suricata-update
sudo systemctl restart suricata

اتصال خروجی Suricata به Wazuh

Suricata رویدادها را در فایل /var/log/suricata/eve.json ذخیره می‌کند. کافیه به Wazuh بگویید این فایل را بخواند. در فایل /var/ossec/etc/ossec.conf روی Agent:

<localfile>
  <log_format>json</log_format>
  <location>/var/log/suricata/eve.json</location>
</localfile>
sudo systemctl restart wazuh-agent

تمام! حالا هشدارهای Suricata هم در داشبورد Wazuh نمایش داده می‌شوند — ترافیک شبکه مشکوک، اسکن پورت، ارتباط با آدرس‌های مخرب شناخته‌شده و حملات شناخته‌شده همگی در یکجا قابل مشاهده خواهند بود. دیگر نیازی نیست بین چند داشبورد مختلف جابجا شوید.

نکات عملکردی و امن‌سازی خود Wazuh

قبل از اینکه Wazuh را در محیط تولید ببرید، این چند نکته را حتماً رعایت کنید. بعضی‌هایشان واضح هستند ولی تجربه نشان داده که خیلی‌ها فراموش‌شان می‌کنند:

  • رمز عبور پیش‌فرض admin را عوض کنید — از داشبورد به بخش Security بروید. این اولین کاری‌ست که باید انجام بدهید
  • دسترسی داشبورد را محدود کنید — داشبورد باید فقط از شبکه مدیریت قابل دسترسی باشد، نه اینترنت عمومی. جدی می‌گویم، داشبورد Wazuh را روی اینترنت باز نگذارید
  • فضای دیسک را مانیتور کنید — لاگ‌ها و هشدارهای Wazuh خیلی سریع فضا را پر می‌کنند. سیاست حذف خودکار (ILM) تنظیم کنید وگرنه یک روز صبح بیدار می‌شوید و دیسک پر شده
  • ارتباط Agent-Server را رمزنگاری کنید — مطمئن شوید که ارتباط بین Agentها و سرور از TLS استفاده می‌کند
  • پشتیبان‌گیری منظم از قوانین سفارشی — فایل‌های /var/ossec/etc/rules/local_rules.xml و /var/ossec/etc/ossec.conf را در سیستم کنترل نسخه (مثل Git) نگه دارید

پرسش‌های متداول (FAQ)

آیا Wazuh واقعاً رایگان است یا نسخه پولی هم دارد؟

بله، Wazuh به‌طور کامل رایگان و متن‌باز است و تحت مجوز GPL v2 منتشر شده. هیچ محدودیتی در تعداد Agent، حجم لاگ یا قابلیت‌ها وجود ندارد. شرکت Wazuh درآمدش را از خدمات پشتیبانی سازمانی و نسخه ابری مدیریت‌شده (Wazuh Cloud) کسب می‌کند — نه از محدود کردن نسخه رایگان.

تفاوت Wazuh با Splunk یا IBM QRadar چیست؟

Splunk و QRadar محصولات تجاری هستند با هزینه‌های لایسنس بسیار بالا (گاهی صدها هزار دلار در سال). Wazuh قابلیت‌های مشابه را رایگان ارائه می‌دهد. مهم‌ترین تفاوت در پشتیبانی سازمانی و برخی قابلیت‌های پیشرفته گزارش‌دهی است که معمولاً فقط سازمان‌های خیلی بزرگ به آنها نیاز دارند. برای اکثر سازمان‌ها، Wazuh بیش از کافی‌ست.

حداقل منابع سخت‌افزاری برای نصب Wazuh چقدر است؟

برای نصب تک‌گره حداقل ۴ هسته پردازنده، ۸ گیگابایت RAM و ۵۰ گیگابایت فضای SSD نیاز دارید. ولی اگر قرار است بیش از ۵۰ Agent داشته باشید، پیشنهاد می‌کنم حداقل ۸ هسته، ۱۶ گیگابایت RAM و ۲۰۰ گیگابایت SSD در نظر بگیرید.

آیا می‌توان Wazuh را با Docker نصب کرد؟

بله، Wazuh نصب داکری رسمی دارد. با docker-compose می‌توانید تمام اجزا (Manager، Indexer، Dashboard) را در چند دقیقه بالا بیاورید. این روش به‌خصوص برای محیط‌های آزمایشی و توسعه عالی‌ست، ولی برای محیط تولید، نصب مستقیم روی سرور معمولاً پایدارتره.

چگونه Wazuh را با سامانه‌های دیگر مثل TheHive یا VirusTotal یکپارچه کنم؟

Wazuh از یکپارچه‌سازی با APIهای شخص ثالث پشتیبانی می‌کند. برای VirusTotal کافی است کلید API خود را در ossec.conf وارد کنید تا فایل‌های مشکوک به‌صورت خودکار بررسی شوند. برای TheHive هم می‌توانید از ماژول Integrator استفاده کنید تا هشدارها به‌صورت خودکار به‌عنوان Case ثبت بشوند. پیکربندی هر دو نسبتاً ساده است و مستندات رسمی Wazuh توضیحات کاملی دارد.

درباره نویسنده Editorial Team

Our team of expert writers and editors.