كيفية تثبيت وإعداد Snort IDS على Linux لتأمين شبكتك

إذا كنت جادًا بشأن أمان الشبكة وتحسين الحماية ، فإنَّ تثبيت أنظمة كشف ومنع التسلل (IPS أو IDS) أمر لا بُد منه لتحصين مُحيط الشبكة وتشتيت حركة بيايات الشبكة غير المرغوب فيها.

Snort هو أحد حلول IPS/IDS الشهيرة المجانية للاستخدام الشخصي والمفتوحة المصدر. دعنا نتعلم كيف يُمكنك تثبيت Snort وإعداده على Linux للدفاع عن شبكتك من الهجمات الإلكترونية. تحقق من ماذا يحدث عندما يتجسس هاتفك عليك؟

كيفية تثبيت وإعداد Snort IDS على Linux لتأمين شبكتك - لينكس

ما هو Snort؟

كيفية تثبيت وإعداد Snort IDS على Linux لتأمين شبكتك - لينكس

Snort هو تطبيق مفتوح المصدر للكشف عن اختراق الشبكة والوقاية منه (NIDS/IPS) والذي يُساعد ، كما يلمح الاسم ، في تأمين مُحيط شبكتك من خلال فرض القواعد وعوامل التصفية التي تكشف عن الحزم الخبيثة التي تم حقنها في شبكتك وإسقاطها.

باستخدام Snort ، ستتمكن من إجراء تسجيل مُتقدم لحركة بيانات الشبكة ، واستنشاق الحزمة وتحليلها ، وإعداد نظام قوي لمنع التطفل يحمي شبكتك من حركة البيانات غير المرغوب فيها والتي من المُحتمل أن تكون ضارة.

المُتطلبات الأساسية لتثبيت Snort

قبل تثبيت Snort ، هناك بعض الإعداد الأولي الذي يجب القيام به. والذي يتضمن في الغالب تحديث نظامك وترقيته وتثبيت التبعيات التي يتطلبها Snort ليعمل بشكل صحيح.

ابدأ بتحديث نظامك وترقيته.

على توزيعات Linux المُستندة إلى Ubuntu و Debian:

sudo apt update && apt upgrade -y

على Arch Linux والتوزيعات المُستندة إليها:

sudo pacman -Syu

على RHEL و Fedora:

sudo dnf upgrade

مع ترقية نظامك ، استمر في تثبيت التبعيات التي يتطلبها Snort. فيما يلي الأوامر التي تحتاج إلى تشغيلها:

على Ubuntu و Debian ، قم بتشغيل:

sudo apt install -y build-essential autotools-dev libdumbnet-dev libluajit-5.1-dev libpcap-dev zlib1g-dev pkg-config libhwloc-dev cmake liblzma-dev openssl libssl-dev cpputest libsqlite3-dev libtool uuid-dev git autoconf bison flex libcmocka-dev libnetfilter-queue-dev libunwind-dev libmnl-dev ethtool libjemalloc-dev libpcre++-dev

على Arch Linux ، قم بتشغيل:

sudo pacman -S gperftools hwloc hyperscan ibdaqlibdnet libmnl libpcap libunwind luajit lz4 openssl pcre pulledporkxz zlib cmake pkgconf

بالنسبة لـ RHEL و Fedora ، قم بإصدار الأمر التالي:

sudo dnf install gcc gcc-c++ libnetfilter_queue-devel git flex bison zlib zlib-devel pcre pcredevel libdnet tcpdump libnghttp2 wget xz-devel -y

بالإضافة إلى ذلك ، تحتاج أيضًا إلى تثبيت مكتبة اكتساب البيانات يدويًا ، LibDAQ لـ Snort ليعمل بشكل صحيح وأيضًا أدوات gperftools لإنشاء ملفات الإنشاء.

أولاً ، قم بتنزيل ملفات مصدر LibDAQ من الموقع الرسمي باستخدام الأمر wget. بعد ذلك ، استخرج الملف المضغوط وانتقل إلى الدليل باستخدام cd. داخل الدليل ، قم بتشغيل التمهيد وتكوين البرامج النصية ، ثم تابع تحضير الملفات باستخدام الأمر make install.

wget https://www.snort.org/downloads/snortplus/libdaq-3.0.11.tar.gz
tar -xzvf lib*
cd lib*
./bootstrap
./configure
make
sudo make install

مع تثبيت LibDAQ ، تحتاج إلى تثبيت تبعية أخيرة: gperftools. ابدأ بجلب الملفات المصدر من مُستودع GitHub. قم باستخراج الملفات ، وانتقل إلى الدليل ، وقم بتشغيل برنامج التكوين النصي. أخيرًا ، قم بتثبيت الحزمة باستخدام أوامر make install.

wget https://github.com/gperftools/gperftools/releases/download/gperftools-2.10/gperftools-2.10.tar.gz
tar -xvzf gper* && cd gper
./configure
make 
sudo make install

بمجرد تثبيت هذه التبعيات ، يُمكنك الانتقال إلى الخطوات التالية لتثبيت Snort.

تثبيت Snort من المصدر على Linux

كيفية تثبيت وإعداد Snort IDS على Linux لتأمين شبكتك - لينكس

بعد انتهاء الإعداد الأولي ، يُمكنك الآن التركيز على تثبيت التطبيق الفعلي. ستقوم بإنشائه من المصدر ، لذا احصل على ملفات البناء المطلوبة أولاً.

استخدم الأمر wget أو قم بتنزيل الملفات يدويًا من صفحة التنزيل الرسمية:

wget https://www.snort.org/downloads/snortplus/snort3-3.1.58.0.tar.gz

تنزيل: Snort

بمجرد انتهاء تنزيل الملف المضغوط الذي يحتوي على ملفات الإنشاء ، استخرجه باستخدام الأمر tar:

tar -xzvf snort*

انتقل إلى المجلد المُستخرج ، وقم بتشغيل البرنامج النصي للتكوين ، واستخدم الأمر make لتحضير الملفات ، ثم قم بتثبيته في النهاية باستخدام make install:

cd snort*
./configure_cmake.sh — prefix=/usr/local — enable-tcmalloc
cd build
make
sudo make install

سيتم الآن تثبيت Snort بنجاح في نظامك. ومع ذلك ، هناك خطوة واحدة أخرى تحتاج إلى إكمالها. عند تثبيت تطبيق جديد يدويًا ، قد لا يتم تضمين دليل التثبيت والمكتبات المطلوبة تلقائيًا في المسار الافتراضي للنظام. لذلك قد تواجه أخطاء عند بدء تشغيل التطبيق.

لتجنب هذه المشكلة ، تحتاج إلى تشغيل الأمر ldconfig. سيقوم بمزامنة ذاكرة التخزين المؤقت للمكتبة المشتركة للنظام مع المكتبات والثنائيات المثبتة حديثًا. قم بتشغيل الأمر ldconfig بصلاحيات الروت أو استخدام بادئة sudo:

sudo ldconfig

لقد قمت الآن بتغطية جميع الخطوات المُهمة المطلوبة لتثبيت Snort. للتحقق من التثبيت ، قم بتشغيل أمر Snort بعلامة -V ، ويجب أن ترى مخرجات تُرجع اسم الإصدار والبيانات الأخرى.

snort -V

بمجرد التحقق من تثبيت Snort ، انتقل إلى الخطوات التالية لإعداده باعتباره IDS/IPS كامل المهام.

التكوين الأولي لـ Snort على Linux

كيفية تثبيت وإعداد Snort IDS على Linux لتأمين شبكتك - لينكس

تعتمد كفاءة Snort بالكامل تقريبًا على جودة مجموعات القواعد التي يتم تزويده بها.

ومع ذلك ، قبل أن تبدأ في إعداد القواعد ، تحتاج إلى تكوين بطاقات الشبكة للعمل مع Snort وتحتاج أيضًا إلى اختبار كيفية معالجة التهيئة الافتراضية بواسطة Snort. ابدأ بتكوين بطاقات الشبكة.

عليك ضبط واجهة الشبكة على الوضع المُختلط:

sudo ip link set dev interface_name promisc on

باستخدام ethtool ، قم بتعطيل إلغاء تحميل الاستلام العام (GRO) وإلغاء تحميل الاستلام الكبير (LRO) لمنع قطع حزم الشبكة الأكبر حجمًا:

sudo ethtool -K interface_name gro off lro off

كيفية تثبيت وإعداد Snort IDS على Linux لتأمين شبكتك - لينكس

اختبر كيفية أداء Snort مع التكوين الافتراضي:

snort -c /usr/local/etc/snort/snort.lua

يجب أن يُعيد هذا إشارة إخراج ناجحة بأنك قمت بتثبيت وإعداد Snort بشكل صحيح في نظامك. يُمكنك الآن التعديل على ميزاته وتجربة تكوينات مُختلفة للعثور على أفضل مجموعة من القواعد لتأمين شبكتك.

إعداد القواعد وفرضها باستخدام Snort

مع وجود الإعدادات الأساسية في مكانها ، أصبح Snort جاهزًا الآن للدفاع عن مُحيطك. كما تعلم ، يحتاج Snort إلى مجموعات قواعد لتحديد صلاحية حركة البيانات  ، فلنقم بإعداد عدد قليل من مجموعات القواعد المجانية من إنشاء المجتمع لـ Snort.

يقرأ Snort مجموعات القواعد والتكوينات من أدلة مُعينة. لذلك أولاً ، باستخدام أوامر mkdir و touch ، قم بإنشاء بعض الأدلة المُهمة لتخزين القواعد والبيانات الأخرى ذات الصلة لـ Snort:

sudo mkdir -p /usr/local/etc/{lists,so_rules,rules} 
sudo touch /usr/local/etc/rules/local.rules 
sudo touch /usr/local/etc/lists/default.blocklist

من خلال إنشاء هذه الأدلة ، يُمكنك تنزيل مجموعة قواعد المجتمع من الموقع الرسمي باستخدام الأمر wget:

wget https://www.snort.org/downloads/community/snort3-community-rules.tar.gz

بمجرد انتهاء تنزيل مجموعة القواعد ، استخرجها وانسخها إلى الدليل /usr/local/etc/rules/.

tar -xvzf snort3-com*
cd snort3-com*
cp * /usr/local/etc/rules/

كيفية تثبيت وإعداد Snort IDS على Linux لتأمين شبكتك - لينكس

لتشغيل Snort مع مجموعة القواعد ، نفِّذ هذا الأمر:

sudo snort -c /usr/local/etc/snort/snort.lua -R /usr/local/etc/rules/snort3-community.rules -i interface_name -s 65535 -k none

تفسير الأمر:

  1. -c يُحدد المسار إلى ملف التكوين الافتراضي.
  2. -R يُحدد المسار إلى القاعدة التي يتم فرضها.
  3. -i يُحدد الواجهة.
  4. -s يتجاهل حد snaplen.
  5. -k يتجاهل المجموع الاختباري.

يجب أن يتحقق هذا من صحة التكوين ويفرض جميع مجموعات القواعد على Snort. بمجرد أن يلتقط أي اضطراب في الشبكة ، سوف يُنبهك برسالة وحدة التحكم.

إذا كنت ترغب في إنشاء مجموعة القواعد الخاصة بك وتنفيذها ، فيُمكنك معرفة المزيد عنها من صفحات التوثيق الرسمية. تحقق من أفضل خدمات جدار حماية تطبيقات الويب لتأمين موقع الويب.

إعداد السجلات باستخدام Snort

كيفية تثبيت وإعداد Snort IDS على Linux لتأمين شبكتك - لينكس

بشكل افتراضي ، لا يُخرج Snort أي سجلات. تحتاج إلى التحديد باستخدام العلامة -L لبدء Snort في وضع التسجيل ، وتحديد نوع ملف السجل ، وعلامة -l لتعيين دليل التسجيل لـ Snort لتفريغ السجلات.

إليك الأمر لبدء Snort مع تمكين السجلات:

sudo snort -c /usr/local/etc/snort/snort.lua -R /usr/local/etc/rules/snort3-community.rules -i interface_name -s 65535 -k none -L file_type -l /var/log/snort

تفسير الأمر:

  1. -c يُحدد المسار إلى ملف التكوين الافتراضي.
  2. -R يُحدد المسار إلى القاعدة التي يتم فرضها.
  3. -i يُحدد الواجهة.
  4. -s يتجاهل حد snaplen.
  5. -k يتجاهل المجموع الاختباري.
  6. -L يُتيح وضع التسجيل ويحدد نوع ملف السجل.
  7. يُحدد -l مسار تخزين السجلات.

لاحظ أنه في مثال الأمر السابق ، تم تعيين دليل التسجيل على /var/log/snort. على الرغم من أنَّ هذه ممارسة موصى بها ، فأنت حر في تخزين سجلاتك في مكان آخر.

يُمكنك قراءة ملفات السجل من Snort من الدليل الذي حددته أو تمريرها إلى تطبيق SIEM مثل Splunk لمزيد من التحليل.

أضف Snort كعملية خفية لبدء تشغيلها مع النظام

كيفية تثبيت وإعداد Snort IDS على Linux لتأمين شبكتك - لينكس

على الرغم من أنك قمت بتثبيت Snort وإعداده ، إلا أنك تحتاج إلى التأكد من أنه يبدأ في التنفيذ عند بدء التشغيل وتشغيله كخادم خلفية. ستضمن إضافته كخدمة نظام بدء تلقائي أنَّ Snort يعمل ويُدافع عن نظامك في جميع الأوقات التي يكون فيها متصلاً بالإنترنت.

فيما يلي كيفية إضافة العملية الخفيو لبدء Snort على نظام Linux:

  • ابدأ بإنشاء ملف خدمة systemd جديد:
touch /lib/systemd/system/snort.service
  • افتح الملف في مُحرِّر نصوص من اختيارك وقم بتعبئته بالبيانات التالية. يُمكنك تعديل العلامات لتُناسب احتياجاتك:
[Unit]
Description=Snort Daemon
After=syslog.target network.target
[Service]
Type=simple
ExecStart=/usr/local/bin/snort -c /usr/local/etc/snort/snort.lua -R /usr/local/etc/rules/snort3-community.rules -s 65535 -k none -l /var/log/snort -D -L pcap -i ens33 
[Install]
WantedBy=multi-user.target
  • حفظ وإنهاء الملف. بعد ذلك ، باستخدام الأمرين service و systemctl ، قم بتمكين البرنامج النصي وبدء تشغيله:
sudo systemctl enable snort.service
sudo snort start

يجب أن تكون العملية الخفية لـ Snort قيد التشغيل الآن. يُمكنك التحقق من حالة البرنامج النصي باستخدام الأمر. يجب أن يعيد ناتج إيجابي.

systemctl status snort

أنت الآن تعرف كيفية حماية شبكتك باستخدام Snort IDS

بينما يُعد تطبيق IDS مُمارسة جيدة ، إلا أنه إجراء سلبي أكثر من كونه إجراءً نشطًا. أفضل طريقة لتحسين وضمان أمان شبكتك هي الاختبار المُستمر لها والبحث عن العيوب التي يجب إصلاحها.

يعد اختبار الاختراق طريقة رائعة للعثور على نقاط الضعف القابلة للاستغلال وتصحيحها. يُمكنك الإطلاع الآن على أفضل أدوات اختبار الاختراق لمُتخصصي الأمن السيبراني.

زر الذهاب إلى الأعلى