سلسلة تعلم كاشف الدخلاء (Snort IDS/IPS) خطوة بخطوة: الجزء الثاني:- التثبيت
الكاتب: صبري صالح | يوم: 08 فبراير, 2012 | التعليقات: 15 | القراءات: - عدد المشاهدات 30٬010
[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 , يعمل في بيئات متعددة المنصات. حاصل على عدة شهادات تقنية.
التعليقات:
اترك تعليقاً | عدد التعليقات: (15)
السلام عليكم
بارك الله فيكم أستاد
فيديو ممتع أخي من حضرتكم
بارك الله فكم أخي
تحياتي أخي
ربنا يكرمك يا بشمهندس
متشكريين على المجهود الجامد
رائع يا بش مهندس ..
snort يعتبر من افضل انظمه كشف / والحماية من الدخلاء ..
استمر يا بطل ولا تنسى رجاء ان توضح كيف يحاول المخترق تخطي الخطوات التي نقوم بها حتى لا يشعر متخصص الحماية انه كدا خلاص مفيش حاجة بتدخل وبتطلع بدون علمه وياخد في حاله مقلب وينسى انو في ناس بتشتغل *_^ ..
سلام عليكم
الله عليك يا باشمهندس
تسلم ايدك
هي دي ال topics اللي احنا عاوزنها
الله يوفقك ويسعدك
شكرا
تسلم الايادي اللي كتبت الموضوع . هل ممكن يشتغل السنورت على اي نظام لينكس غير CentOS 6.2؟ وشكرا على طرحكم
تسلم وجيه
طبعا يعمل على Debian و بناتها و Redhat و أخواتها و بناتها كما يعمل على أشئ أخر مثل Slaxwere و أيضا الويندوز
أخي هل استطيع تطبيق نفس المراحل التي ذكرت على ubuntu 11.4
ولك جزيل الشكر
أخ صبري اشكرك على مجهودك وعلى الموضوع الجميل وهل من الممكن التواصل معك لأنني بأشد الحاجه الى فهم بعض الامور هل من الممكن التواصل معك عبر الايميل او اذا كنت بالسعودية سيتم التواصل معك ولك جزيل الشكرر يا مهندس
منتظرين باقي السلسلة يابشمهندس
السلام عليكم
هاك ما حصلت عليه …
configure: WARNING: unrecognized options: –with-mysql, –with-mysql-libraries, –with-mysql-includes
رائع اريد المزيد من المعلومات عن هذا المجال هل يمكنكم ترشيح دورات معينة للتخصص في هذا المجال
ارجوا الرد مع التحيات
السلام عليكم
انا عندي مشروع باستخدام برنامج snort
الي فاهم فيه وبيفهمني
بيكون له حق اتعابه
وشكرآ
شكرا دكتور على هذا الشرح النادر في الوسط العربي .
انا طالب سنة تخرج من جامعه بلجيكيه مشروعي التخرج رح اعمله عن تنصيب ال IPS مع McAfee لكن ليس لدي خبرا ابدا في هذا المجال و اود مساعدتك اذا كان لديك بعض الوقت ؟
ارجوا التواصل و اشكرك مرة اخرى الدكتور الفاضل .
اراس
السلام عليكم…….هل بإمكان أحد مساعدتي على تثبيت Snort على نظام Ubuntu
عاااااجل 🙂
هل حصلت احد قدم لك المساعده؟