سلسلة تعلم كاشف الدخلاء (Snort IDS/IPS) خطوة بخطوة: الجزء الثاني:- التثبيت

[toc]

1. معلومات النظام

– نظام التشغيل: Linux – CentOS 6.2

– المنصة: 64-bit

– إصدار الكيرنال: 2.6.32-220.2.1.el6.x86_64

 

2. المتطلبات و الاعتماديات

سأقوم بتنصيب المتطلبات كلها مرة واحدة لتسهيل الأمر (قد تحتاج مخازن إضافية كـ EPEL و rpmfusion)

yum -y install gcc gcc-c++.x86_64 httpd mysql-server mysql-bench mysql-devel mysql++-devel.x86_64  mysqlclient10 libpcap libpcap-devel pcre-devel bison flex libdnet.x86_64  libdnet-devel.x86_64

 

3. التحميل

ملاحظات:

– التحميل من Snort موقع  يشترط التسجيل

– عند تحميل الـRules  يجب أن تكون متوافقة مع إصدار Snort . مثال: (إصدار Snort هو snort-2.9.2 إذن يجب أن تنيزل الـRules   صاحبة الإصدار 2920 تجدها بهذا الشكل  snortrules-snapshot-2920.tar.gz )

Snort: وهو البرنامج نفسه
DAQ: اختصارا لـ Data Acquisition library وهو برنامج لتحسين إدخال و إخراج الحزم
Rules: وهي القواعد أو بالأصح التواقيع التي يعتمد عليها Snort  في كشف الأحداث
barnyard2: مشروع تم برمجته خصيصا لدعم (تعامل و تحليل) المخرجات على هيئة unified2 من برنامج Snort

 

 

4. التثبيت

لاحظ في التثبيت يجب أن تتبع الترتيب نفسه

4.1 تثبيت DAQ

tar -xzf daq-0.6.2.tar.gz ; cd daq-0.6.2

./configure
make ; make install ; cd ..

 

4.2 تثبيت Snort

2.4.a تثبيت Snort كـ IDS

tar -xzf snort-2.9.2.tar.gz ; cd snort-2.9.2

./configure --with-mysql --with-mysql-libraries=/usr/lib64/mysql/ --with-mysql-includes=/usr/include/mysql/ --enable-sourcefire

make ; make install

ln -s  /usr/local/bin/snort  /usr/sbin/snort

 

2.4.b تثبيت Snort كـ IPSطبقها فقط إن أردت تحويله إلى  IPS  و شرحنا سيكون على الـ IDS mode

./configure --enable-inline --with-mysql --with-mysql-libraries=/usr/lib64/mysql/ --with-mysql-includes=/usr/include/mysql/ --enable-sourcefire

make ; make install

modprobe ip_queue

– لنتأكد من تحميل الموديول

lsmod | grep -i ip_queue

ln -s  /usr/local/bin/snort  /usr/sbin/snort

حيث أن:

–with-mysql: لدعم MySQL أي أن مخرجات Snort  ستخزن في قاعدة بيانات

–with-mysql-includes / –with-mysql-libraries: لدعم مكتبات الـMySQL ربنا لا تحتاج هذا الاختيار على منصة 32-bit لأن Snort  يبحث هناك في الأمكان الصحيحة

–enable-sourcefire: لدعم عدة إضافات تفضلها شركة Sourcefire.

– لمعرفة المزيد من خيارات التثبيت

./configure --help

– إنشاء مجلدات Snort

mkdir -p /etc/snort/rules mkdir /var/log/snort/

– مازلنا في المجلد(snort-2.9.2)
cp etc/* /etc/snort/
cp -r preproc_rules/ /etc/snort/

– إنشاء مستخدم باسم Snort

useradd snort -s /sbin/nologin

– إعطاء التصاريح لمجلد السجلات

chown -R snort:snort /var/log/snort/

2.4.c  إضافة قواعد Snort

– نخرج من مجلد (snort-2.9.2) ثم نفك ضغط القواعد بداخل (/etc/snort)
tar xzf snortrules-snapshot-2920.tar.gz -C /etc/snort/
– نسخ الـ Dynamicrules لتفادي الخطأ(ERROR: parser.c(5161) Could not stat dynamic module path “/usr/local/lib/snort_dynamicrules”: No such file or directory.)
mkdir /usr/local/lib/snort_dynamicrules
cp -a /etc/snort/so_rules/* /usr/local/lib/snort_dynamicrules
chown -R snort:snort /usr/local/lib/snort_dynamicrules

4.3 تثبيت Barnyard2

– تحميل barnyard2 و فك ضغطه
wget -c http://www.securixlive.com/download/barnyard2/barnyard2-1.9.tar.gz
tar -xzf barnyard2-1.9.tar.gz ; cd barnyard2-1.9
– التثبيت مع دعم MySQL
./configure --with-mysql --with-mysql-libraries=/usr/lib64/mysql/ --with-mysql-includes=/usr/include/mysql/
make ; make install
-ما زلنا في مجلد(barnyard2-1.9), ننسخ ملف إعدادات barnyard2
cp etc/barnyard2.conf /etc/snort/ ; cd ..

 

 

5. الإعدادات الأولية

5.1 إعداد MySQL

– شغل خدمة MYSQL
service mysqld start
– أنشئ قاعدة بيانات باسم snort
– ثم أنشئ مستخدم للقاعدة باسم snort و كلمة مرور (في شرحنا كلمة المرور 123123)
– ثم اعطه الصلاحيات الازمة
mysql -u root -p
Enter password:>

Mysql> create database snort;
Query OK, 1 row affected (0.00 sec)

mysql> grant create, insert, select, delete, update on snort.* to snort@”localhost”;
Query OK, 0 rows affected (0.00 sec)

mysql> set password for snort@”localhost”=password(‘123123’);
Query OK, 0 rows affected (0.00 sec)

mysql> exit

– استورد السكيما الخاصة بـ Snort

cd snort-2.9.2/schemas
mysql -usnort -p < create_mysql snort
Enter password:

– تأكد من عملية الاستيراد عن طريق عرض الجداول
mysql -usnort -p
Enter password:
mysql> use snort;
Database changed
mysql> show tables ;
+------------------+
| Tables_in_snort |
+------------------+
| data |
| detail |
| encoding |
| event |
| icmphdr |
| iphdr |
| opt |
| reference |
| reference_system |
| schema |
| sensor |
| sig_class |
| sig_reference |
| signature |
| tcphdr |
| udphdr |
+------------------+
16 rows in set (0.01 sec)
mysql> exit

رائع!!

5.2 إعداد Snort

– افتح ملف إعدادات Snort
vim /etc/snort/snort.conf
– اذهب إلى الاختيارات التالية
var RULE_PATH ../rules
var SO_RULE_PATH ../so_rules
var PREPROC_RULE_PATH ../preproc_rules
– بدل المسارات إلى التالي
var RULE_PATH /etc/snort/rules
var SO_RULE_PATH /etc/snort/so_rules
var PREPROC_RULE_PATH /etc/snort/preproc_rules
– اذهب إلى الاختيار
# output database: log, , user= password= test dbname= host=
– استبدله بالتالي
output database: log, mysql, user=snort password=123123 dbname=snort host=localhost
\!/ تنبيهات:
– لاحظ أننا أزلنا test يجب أن تترك مسافة واحدة فقط بين كلمة المرور و المعامل dbsname إن زادت عن مسافة واحدة ستواجه خطأ عند التشغيل.
– إذا واجهك الخطأ التالي عند تشغيل الخدمة
ERROR: /etc/snort/snort.conf(490) => Unable to open address file /etc/snort/rules/white_list.rules, Error: No such file or directory
– الرجاء تهميش (وضع علامة # أول السطر) للتالي
preprocessor reputation: \
memcap 500, \
priority whitelist, \
nested_ip inner, \
whitelist $WHITE_LIST_PATH/white_list.rules, \
blacklist $BLACK_LIST_PATH/black_list.rules

– لتصبح كالتالي
#preprocessor reputation: \
# memcap 500, \
# priority whitelist, \
# nested_ip inner, \
# whitelist $WHITE_LIST_PATH/white_list.rules, \
# blacklist $BLACK_LIST_PATH/black_list.rules

 

5.3 إعداد Barnyard2

سأقوم بتأجيل إعدادات Barnyard لمرحلة أخرى

 

6. تشغيل الخدمات

التشغيل سيشمل بدء الخدمة و ضمان عملها بشكل تلقائي بعد إعادة التشغيل.

6.1 تشغيل MySQL

– شغل الخدمة و تأكد أنه ستعمل تلقائيا بعد إعادة تشغيل الخادم
service mysqld start ; chkconfig mysqld on

 

6.2 تشغيل Barnyard

لن نقوم بتشغل الخدمة الأن

6.3 تشغيل Snort

– حمل سكريبت خدمة سنورت و اعطه تصريح
wget -c http://internetsecurityguru.com/snortinit/snort -O /etc/init.d/snortd ; chmod 755 /etc/init.d/snortd
– شغل الخدمة و تأكد أنه ستعمل تلقائيا بعد إعادة تشغيل الخادم
service snortd start ; chkconfig snortd on

نبذة عن الكاتب

المهندس صبري صالح. مهندس حماية شبكات و أنظمة و فحصها معالجة و تحليل الأحداث الأمنية و المسؤول عن تطبيق معايير الـ ISO 27001 , يعمل في بيئات متعددة المنصات. حاصل على عدة شهادات تقنية.

التعليقات:

أضف تعليقاً | عدد التعليقات: (9)

  1. Hit-Man قال:

    السلام عليكم
    بارك الله فيكم أستاد
    فيديو ممتع أخي من حضرتكم
    بارك الله فكم أخي
    تحياتي أخي

  2. ayman قال:

    ربنا يكرمك يا بشمهندس
    متشكريين على المجهود الجامد

  3. Memo قال:

    رائع يا بش مهندس ..

    snort يعتبر من افضل انظمه كشف / والحماية من الدخلاء ..

    استمر يا بطل ولا تنسى رجاء ان توضح كيف يحاول المخترق تخطي الخطوات التي نقوم بها حتى لا يشعر متخصص الحماية انه كدا خلاص مفيش حاجة بتدخل وبتطلع بدون علمه وياخد في حاله مقلب وينسى انو في ناس بتشتغل *_^ ..

    سلام عليكم

  4. medo قال:

    الله عليك يا باشمهندس
    تسلم ايدك
    هي دي ال topics اللي احنا عاوزنها
    الله يوفقك ويسعدك
    شكرا

  5. وجيه قال:

    تسلم الايادي اللي كتبت الموضوع . هل ممكن يشتغل السنورت على اي نظام لينكس غير CentOS 6.2؟ وشكرا على طرحكم

  6. althobani قال:

    منتظرين باقي السلسلة يابشمهندس

  7. hael قال:

    السلام عليكم

    هاك ما حصلت عليه …

    configure: WARNING: unrecognized options: –with-mysql, –with-mysql-libraries, –with-mysql-includes

أكتب تعليق