رفتن به محتوا
بازگشت به وبلاگ
امنیت

IDS/IPS با Snort و Suricata: تشخیص و پیشگیری

استقرار Snort و Suricata برای تشخیص نفوذ شبکه: مدیریت قوانین، تنظیم هشدارها و یکپارچه‌سازی با پلتفرم‌های SIEM.

شهریور ۱۴۰۴
۱۵ دقیقه مطالعه

مقدمه

IDS (سیستم تشخیص نفوذ) و IPS (سیستم جلوگیری از نفوذ) ترافیک شبکه را برای الگوهای مخرب مانیتور میکنند. Suricata یک ابزار متنباز مدرن و multi-threaded است که جایگزین مناسبی برای Snort در محیطهای جدید است.

نصب Suricata

BASH
# اوبونتو 22.04
add-apt-repository ppa:oisf/suricata-stable
apt update && apt install suricata

پیکربندی پایه

فایل /etc/suricata/suricata.yaml:

YAML
af-packet:
  - interface: eth0
    threads: auto

vars:
  address-groups:
    HOME_NET: "[192.168.0.0/16,10.0.0.0/8]"
    EXTERNAL_NET: "!$HOME_NET"

outputs:
  - eve-log:
      enabled: yes
      filename: /var/log/suricata/eve.json

بروزرسانی قوانین

BASH
# نصب مدیر قوانین
pip install suricata-update

# بروزرسانی از Emerging Threats (رایگان)
suricata-update

# فعال کردن منابع بیشتر
suricata-update enable-source et/open

خواندن هشدارها

BASH
# نمایش هشدارها در زمان واقعی
tail -f /var/log/suricata/eve.json | jq 'select(.event_type=="alert")'

# شمارش هشدارها بر اساس امضاء
cat /var/log/suricata/eve.json | jq 'select(.event_type=="alert") | .alert.signature' | sort | uniq -c | sort -rn

نوشتن قوانین سفارشی

TEXT
# تشخیص ICMP flood
alert icmp any any -> $HOME_NET any (msg:"ICMP Flood"; threshold: type both, track by_src, count 100, seconds 10; sid:9000001; rev:1;)

# تشخیص brute force SSH
alert tcp any any -> $HOME_NET 22 (msg:"SSH Brute Force"; flow:to_server; threshold: type threshold, track by_src, count 5, seconds 60; sid:9000002; rev:1;)

خلاصه

  • Suricata را ترجیح دهید — مدرن و multi-threaded است
  • با IDS mode در SPAN port شروع کنید، سپس به IPS inline بروید
  • قوانین را با suricata-update بروز نگه دارید
  • لاگهای eve.json را با ELK یا Graylog یکپارچه کنید