بسم الله الرحمن الرحيم

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

لماذا الجدار الناري مهم لحماية السيرفر ؟

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

اتمنى لو تعود الى مقال هجمات الحرمان من الخدمة لمعرفة مزيد من التفاصيل عن هجمات DDOS , بعد قراءتك للمقال سوف تكون لديك صوره عامه عن هجمات الحرمان من الخدمه , لذلك يجب عليك ان تنظم الاتصالات التي يستقبلها السيرفر وتسمح للامور المهمه التي لا يمكن الاستغناء عنها كذلك السماح بنوع معين من الطلبات ومنع اي طلبات اخرى , كذلك يمكن تحديد عدد الاتصالات التي يمكن استقبالها من ايبي واحد والعديد من الامور التي سوف نتعلمها في هذا المقال .

 

 Configserver Security Firewall

csf_largeبشكل عام يجب عليك ان تختار Firewall بما ينتاسب مع حجم الشبكة ونوع الخدمات التي تقوم بها الخوادم على الشبكة والعديد من الامور الاخرى ,, نحن سوف نتحدث عن CSF لشهرته وقوتة ايضا في حماية انظمه لينكس واحتوائة على العديد من المميزات .

ايضا من الامور المهمة في البرنامج هو دعمه لشريحه واسعه من التوزيعات وله دعم كبير وتجديدات مستمره تلاحظها بالمقارنة بين اصدارات البرنامج .

csf

كما تلاحظون في الصورة السابقة التوزيعات التي يدعمها البرنامج انا استخدم البرنامج مع توزيعة Centos وكذلك Ubuntu .

CSF يحتوي مميزات وخيارات متقدمه متوفرة بشكل بسيط وسهل جدا وهدف البرنامج الاول هو استخدام امور متقدمه بشكل مبسط عن طريق توليد سكربتات تتحكم في جوانب كثيره في نظام لينكس و الجدار الناري iptables غالباً لن تجد اي برنامج يوفر لك الخيارات المتقدمه بشكل سهل في اي جدار ناري اخر يعمل تحت بيئة لينكس . ايضا البرنامج ياتي مع خدمة Login Failure Daemon او LFD. LFD التي تراقب نشاط المستخدم من محاولات للدخول واعطاء تنبية لمدير السيرفر لحالة السيرفر واي نشاطات على السيرفر سواء هجمات او امور اخرى عن طريق مراقبة ملفات log للخدمات التي منصبة على السيرفر ايضا يحتوي على واجهة رسومية سهلة جدا ويمكن استخدامها من خلال لوحة تحكم  cpanel او webmin .

بعض مميزات البرنامج (Features )  :

 

 Login authentication failure daemon:

هذه الميزه تعمل على مراقبة ملفات LOG للسيرفر وللخدمات المنصبة على السيرفر لمراقبة اي عملية تسجيل دخول فاشلة لكي يقوم البرنامج بتنبيه مدير السيرفر , ايضا يمكن اعدادة لاخذ اي اجراء عندما يتم تجاوز عدد مرات معينة من تسجيل دخول فاشل ليتم اتخاذ اجراء معين ضد ذلك الايبي كحظر الايبي او اي اجراء اخر .

 

Process tracking :

هذه الميزه تعمل على مراقبة النظام وملاحظه اي عمليات مشبوهة تم انشاءها في النظام كذلك مراقبة اي بورت يتم فتحه في النظام ليتم تنبيه مدير السيرفر او حظر البورت او الايببي . هذا يساعد جدا في ايقاف اي عمليات استغلال لثغرات السيرفر ومنع حدوث اختراق او نستطيع القول تلافي اي اختراق بسرعه جدا .

 

Directory watching :

هذه الميزة تعمل على مراقبة بعض المسارات الحساسة والانتباه في حاله وجود اي سكربت جديد تم وضعه او تشغيله لتلافي وجود اي ملفات خبيثه في السيرفر .

 

Messenger service :

تفعيل هذه الميزه يمكن البرنامج من ارسال تقارير وتنبيهات الى ايميلك بما يحدث في السيرفر , كحظر لايبي جديد او اكتشاف بورت جديد تم فتحه في الجهاز بدون علمك .

 

Port flood protection:

هذا الاعداد يحميك من هجمات flood attacks ايضا يمكنك تحديد حجم معين من البيانات والاتصالات التي يمكن استقابلها من الايبي الواحد في فترة زمنية واحده , تفعيل هذه الميزه مستحسن لسيرفرك كذلك يمكن احيانا يتم تفعيل بعض الاوضاع وبعض الاجراءات المشدده في حالة كان سيرفرك تحت الهجوم .

 

Port knocking :

هي ميزه رائعه تمكنك من اخفاء البورتات التي تعمل في النظام ولا يمكن الاتصال بها الا  اذا اراد مدير النظام فتح البورت للاتصال به يمكنة طرق بعض البورتات بشكل متسلسل ( افتح يا سمسم ) ^_^ . لمعرفة المزيد من التفاصيل من هنا مقال : زيادة حماية الخوادم باستخدام Port Knocking  .

 

Connection limit protection :

يمكنك تحديد حجم معين من الاتصالات لبورت معين او ايبي معين او يمكنك تحديد حجم اتصالات لكل الايبيهات التي تتصل بالسيرفر .

 

Port/IP address redirection :

يمكننا اعداد الفايروول ليقوم بتحويل الاتصالات الى ايبي اخر او بشكل اخر نستطيع تحويل الاتصالات لبورت معين الى عنوان اخر . نستطيع القول بانها  network address translation .

 

UI integration :

توجد واجهة رسومية مع البرنامج يمكنك استخدامها من لوحه تحكم cpanel  و webmin للتحكم في البرنامج بشكل رسومي .

 

IP block lists:

هذه الخاصية تسمح لك بوضع قائمة سوداء لحظر الايبي وكذلك قائمة بيضاء ,  بحيث الايبي الموجود في القائمة البيضاء لا يتم تطبيق عليه اي rule ويتخطى جميع الفلترات , كذلك يمكن للبرنامج ان يقوم بتنزيل lists من مصادر متعدده .

اطلع على المميزات كاملة من موقع البرنامج من هنا

http://configserver.com/cp/csf.html

تنصيب واعداد البرنامج :

بعد الدخول بصلاحية Root الى الترمنال نقوم بتحميل البرنامج :

wget http://www.configserver.com/free/csf.tgz

سوف ينزل البرنامج مضغوط , نقوم بفك الضغط :

tar -xzf csf.tgz

ندخل المسار الى كان ناتج عملية فك الضغط ثم ننصب البرنامج :

cd csf

sh install.sh

انتهينا من عملية التنصيب واصبح البرنامج منصب على السيرفر , يحتوي البرنامج على وضع اسمه testing mode وهو وضع التجربة للبرنامج بعد عملية التنصيب او في مرحلة اختبار قوانين الجدار الناري . نحتاج الى ايقاف وضع testing mode .

نحتاج الى الدخول الى ملف الاعدادات عن طريق الامر التالي

nano /etc/csf/csf.conf

ثم نقوم بتعطيل وضع test mode عن طريق وضع القيمة 0 .

test mode

نقوم بحفظ الملف ونقوم باعتماد التعديلات عن طريق الامر

csf -r

الان البرنامج اصبح جاهز للعمل ,, دعونا نبدا بالبدء بشرح بعض الامور .

 

الحجب والسماح لعناوين الايبي :

اهم ثلاثة ملفات موجود في البرنامج وهي

csf.conf : وهو المسؤل عن جميع اعدادات .

csf.allow : القائمة البيضاء التي تحتوي على عناوين ايبي يتم السماح لهم بالاتصال .

csf.deny : القائمة السوداء التي سوف يتم حظر اي ايبي موجود بداخل هذه القائمة .

كذلك القوائم يمكن التعامل معها بمرونة جدا يمكن حضر ابيبي من الاتصال ببورت معين او بورت من استقابل من ايبي معين كذلك يمكننا حضر ابيبي من بروتوكول tcp فقط والسماح له من udp والكثير من الامور التي سوف نضع بعض الامثلة لها .

حضر ايبي او السماح له بشكل يدوي .

يمكن استخدام الامر التالي لحضر ابيبي معين :

comment يقصد بها اي تعليق يذكرك لماذا قمت بحضر هذا الايبي في حالة قمت بمراجعه القوائم بعد فتره طويلة مثلا :

csf –deny 95.211.108.166  [I dont like iSecur1ty]

نستطيع نسمح لأيبي عن طريق الامر التالي :

csf –add 95.211.108.166  [mohamed askar is a good person ]

نستطيع استخدام الاوامر بشكل سريع من الترمنال لحضر ايبي او السماح له  , ايضا من الرائع البرنامج يدعم CIDR notation  , جميع العناوين سوف تذهب الى ملف csf.allow او csf.deny , يمكن تحرير الملفات بملف نصي واضافة اي ايبي بشكل يدوي للحصول على اكثر مرونة على سبيل المثال سوف نستخدم هذه القاعده للحضر .

مثال 1 :

اي اتصالات قادمه من الايبي 11.22.33.44 الى البورت 3306 بواسطة البروتوكول tcp  محضورة .

مثال 2 :

اي اتصالات خارجه الى العنوان 11.22.33.44 موجهة الى البورت 22 بواسطة برتوكول tcp محضورة .

مثال 3 :

حضر جميع اتصالات برتوكول icmp  من البورت 44.33.22.11

مثال 4 :

 

تعرف على بعض الخيارات في ملف الاعداد csf.conf :

المنافذ المسموح لها في السيرفر :

prots_csf_firewall

 

كما تلاحظون في الصورة قائمة البورتات المسموح لها بالاتصال incoming و outgoing  كذلك لبروتوكول udp ايضا . يمكن التعديل عليهم بحسب خدمات السيرفر لديك , قم بفتح فقط البورتات التي تستخدمها والمهمة . ايضا بعض البورتات التي تحتاجها فقط فترات معينة كبورتات تحتاجها للاداره فقط يمكنك استخدام ميزة Port knocking لاغلاق البورتات وفتحها وقت الحاجه فقط .

ICMP_IN

يقصد بهذا الخيار  اذا تم وضع القيمه 1  يسمح لعمل ping على السيرفر او اذا تم وضع القيمة 0 يدل على انه محضور عمل ping  على السيرفر .

ICMP_IN_LIMIT :

يقصد بهذا الخيار كم عدد طلبات ping للسيرفر من ايبي واحد في ثانية واحده او وقت معين تستطيع تغييره .c

DENY_IP_LIMIT :

كم عدد عناويين الايبي التي يتم حضرها ,, بسبب ان حضر عدد كبير جدا من عناويين الايبي قد يبطئ من اداء السيرفر ,, كذلك يجب عليك الانتباه استخدامك لــ CIDR يكون افضل من ان تكتب قائمة من العناوين اذا امكن اختصارها بعنوان واحد مثل 192.168.1.1/22 افضل من ان تكتب قائمة العناوين كلها .

PORTFLOOD :

تحديد عدد الاتصالات لثانية معينه او فترة زمنيه معينة  لبورت معين . على سبيل المثال :

PORTFLOOD = “22;tcp;5;300,80;tcp;20;5”

اذا كانت الاتصالات القادمه الى البورت 22 اكثر من خمسة اتصالات في 300 ثانية بواسطة tcp قم بحظر الايبي , ايضا البورت 80 نفس القاعده . الامر السابق مدموج لبورتين 80 , 22 ولكن في حالة البورت 80 عدد الاتصالات 20 اتصال .

 

Connection Limit Protection :

هذا الخيار يحمي السيرفر من هجمات DOS attacks على بورت معين في السيرفر , بحيث يقوم بتحديد الاتصالات الموجهة الى بورت معين لكل ايبي . ايضا من الجدير بالذكر ان هذا الميزه لن تعمل في السيرفرات التي xt_connlimit في iptable .

القيمة سوف تكون بهذا الشكل :

CONNLIMIT = “22;5,80;20”

القيمة السابقة للخيار كانت تحدد خمسة اتصالات لبورت 22 وعشرين اتصال لبورت 80 .

 

اوامر مساعدة :

تشغيل  CSF

ايقاف تشغيل CSF :

ريستارت CSF بعد اي عملية تغيير في اعدادات البرنامج :

ايقاف جميع قواعد البرنامج :

عرض حالة البرنامج وجميع العناوين ipv4 :

حذف عنوان محضور في ملف csf.deny :

اتمنى ان الامر واضح قم باستبدال كلمة ip الى العنوان الذي تريد حذفه من قائمة الحضر .

حذف جميع العناوين المحضورة في الملف csf.deny :

الاختلاف بينه وبين الامر السابق هذا الامر يقوم بحذف جميع العناوين كلها دفعه واحده .

البحث داخل قواعد البرنامج

من اكثر الاوامر المفيده والمساعده على ادارة القواعد بشكل سريع ,, احيانا يكون لديك عشرات القواعد في البرنامج وتريد البحث عن قاعده معينه لها صله بايبي معين يمكن تنفيذ الامر السابق مع استبدال IP الى الايبي المقصود وسوف يتم اظهار جميع ما يتعلق به ان كان محضور او له علاقه بأي شي داخل قواعد البرنامج .

اظهار العناوين التي تم حضرها بشكل مؤقت :

الى هنا اكتفي بما تم شرحه ,, ان شاء الله سوف اكتب عن CSF في مقالات اخرى لشرح هذا الجدار الناري  الاكثر من رائع .