الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف تجعل من ليونكس جدار ناري

مغلق
بدأه cold0zero في 5 سبتمبر 2003 · 0 رد · 1,590 مشاهدة · في نظام تشغيل Unix & Linux
مشاركة: واتساب X فيسبوك تيليجرام
#1

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

ما هو حائط النيران؟

حائط النيران هو مجموعة من البرامج المتصلة التي تقع على خادم الشبكة Network Gateway server حيث تحمي الموارد الخاصة بالشبكة الداخلية من المستخدمين والشبكات الأخرى، ويمكن استعماله مع شبكة الإنترنت ليسمح للعاملين في الشبكة الداخلية بالدخول على الإنترنت ويمنع المتطفلين من الخارج بالدخول للشبكة الداخلية واستغلال مواردها وكذلك للتحكم في الموارد الخارجية المسموح للمستخدمين الداخليين باستخدامها مثل التحكم فى مواقع على شبكة الإنترنت مسموح للمستخدمين الداخليين بالوصول لها.

كيف يعمل حائط النيران؟

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

ولكن كيف نجعل نظام التشغيل لينوكس يعمل كحائط للنيران (Firewall) ؟.. يتم ذلك باستخدام برنامج نت فلترNet Filter والمعروف بإسمIPTables الذي تم إصداره ليحل محل الأنظمة السابقة التي كانت تعمل كحوائط للنيران مثل برنامج IPChains وبرنامجIPFWadm الذي لا يزال يستخدم حتى الآن مع بعض الأنظمة مثلFreeBSD .. هذا البرنامج يعمل على نواة نظام للينوكس 2.4.X و 2.5.X وهو عبارة عن نظام لتحليل وتنظيم تدفق حزم البيانات وكذلك العمل مع الأنواع المختلفة من بروتوكول ترجمة عنوان الشبكة (NAT . Network Address Translation) الجدير بالذكر إن هناك جزءاً كبيراً من البرنامج والذي يقوم بمعظم العمل متضمناً داخل نواة نظام للينوكس.

بعد أن قمنا بتعريف حائط النيران. سوف نبدأ الآن في خطوات تشغيل برنامجNet Filter للعمل كحائط نيران.

الخطوة الأولى- تحميل البرنامج

معظم توزيعات لينوكس الحديثة تأتي ببرنامج Net Filter/IPTables محملاً من خلال نظام التشغيل ولمعرفة ما إذا كان تم تحميله على جهازك أم لا قم بتشغيل الأمر Service Iptables Status كما بشكل (1).

إذا كانت النتيجة أنه لا يوجد برنامج بهذا الاسم فسوف تحتاج لتحميل البرنامج، أما إذا كانت الرسالة توضح أنه موجود فلست إذاً بحاجة لتحميل البرنامج.

خطوات تحميل البرنامج

يجب أن يكون نظام لينوكس القائد إصدارة2.4.x أو2.5.x وإلا لن يعمل برنامج NetFilter/IPTables

يمكن الحصول على البرنامج من الموقع الخاص بهhttp://www.netfilter.org وتحميله.

يكون البرنامج في صورة مضغوطة لذلك يستلزم فك الضغط عن طريق الأمر bzip2 -cd iptables-1.x.x.tar.bz2 tar -xv (أنظر الشكل رقم 2)

بعد ذلك نقوم بالدخول إلى المجلدiptables-1.x.x عن طريق الأمر

cd iptables-1.x.x

وابدأ فى تحميل البرنامج على الجهاز عن طريق الأمر make install KERNEL_DIR=/usr/src/linux/ (انظر الشكل رقم 3)

حيث المجلد/usr/src/linux هو المجلد الخاص بشفرة المصدر لبرنامج لينوكس القائد عادة.

إذا كان لديك برنامجipchains للعمل كحائط نيران يجب إيقافه في جميع مستويات التشغيل قبل عمل Net Filter/IPTables وذلك بتنفيذ الأمر

chkconfig --level 0123456 ipchains off

الآن يمكنك تشغيل البرنامج للتأكد من أن التنصيب تم بطريقة صحيحة وذلك عن طريق الأمر service iptables start كما بشكل (4)

إذا كانت النتيجة إيجابية وظهرت رسالة البداية صحيحة، فهذا يعنى أنه تم تحميل البرنامج بنجاح.

حيث يقوم هذا الأمر بتشغيل نظامIPTables وتحميله في الذاكرة ويبدأ في مراقبة جميع الحزم التي تصل إليه.

ملحوظة

لإيقاف عمل برنامجIPTables يستخدم الأمر التالي

service iptables stop

ولعمل إغلاق للبرنامج وإعادة تشغيله مرة أخرى يستخدم الأمر

service iptables restart

الآن ننتقل للخطوة التالية وهي معرفة كيف يعمل برنامج Net Filter/IPTables ؟

يعمل برنامجNet Filter/IPTables عن طريق إنشاء مجموعات من القواعد, كل مجموعة منها تكون سلسلة و كل مجموعة من السلاسل تكون جدولاً.

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

مثال : نفترض أن حزمة معينة قادمة إلى برنامج معين على الجهاز المحلي(localhost) المحمل عليهIPTables فإنها يجب أن تمر بالخطوات التالية قبل أن تتمكن من الوصول للبرنامج الخاص بها.

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

يحتوي برنامجNet Filter/IPTables على عدد من الجداول الجاهزة حيث يكون لكل منها دور في عملية تحليل وفحص الحزم, وفيما يلي شرح لهذه الجداول:

1- جدول السحقmangling

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

TOS : نوع الخدمة(Type Of Service) يمكن تغيير خانة نوع الخدمة لعمل -على سبيل المثال- قرارات في تحويل الحزم ومسارها في الشبكة(Routing) والجدير بالذكر أن معظم محولات المسار(Routers) على الإنترنت لا تهتم بالقيمة الموجودة في هذا الحقل، لذلك ينصح بعدم تغييره في الحزم التي تخرج لشبكة الإنترنت.

TTL : الوقت المسموح للبقاء(Time To Live) وهو الوقت المسموح فيه للحزمة بالبقاء على الشبكة. فعلى سبيل المثال، يمكن تغيير قيمة هذا الحقل وجعله ثابتاً لكل الحزم التي تخرج على شبكة الإنترنت، وهذا لأن بعض مزودي خدمة الإنترنت لا يستريحون لخط الإنترنت الذي يعمل عليه أكثر من جهاز كمبيوتر ويعتبرون أن خط الإنترنت الذى تأتي منه حزم بقيم TTL مختلفة مع العديد من الظواهر الأخرى يعمل عليه أكثر من جهاز أو جهاز واحد فقط.

MARK : يمكن وضع بعض العلامات التي يمكن تحديد من خلالها تحويل المسار(Route) أو التحكم في سعه خط الإنترنت عن طريق وجود العلامات أو عدم وجودها.

2- جدول ترجمة عنوان الإنترنتNAT

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

3- جدول التحليلfilter

يستخدم هذا الجدول في فحص الحزم المتدفقة وإسقاط الحزم غير المرغوب فيها وقبول الحزم المسموح لها بالمرور. ويعتبر هذا الجدول من أهم جداول برنامجNet Filter

ننتقل الآن إلى عرض أنواع الاتصالات التي تتم على الشبكات وهي من الأساسيات للتحكم في الحزم المارة بين الشبكات:

في برنامج IPTables تنقسم أنواع الاتصالات على الشبكة(Connections) إلى أربعة أنواع:

1- جديدةNEW

هذه الحالة تخبرنا أن الحزمة جديدة في الاتصالConnection) )

2- متصلESTABLISHED

هذه الحالة تخبرنا أن هناك تدفق بيانات في اتجاهي الاتصال.

3- متعلقةRELATED

هذه الحالة تخبرنا إن الاتصال متعلق باتصال آخر حالته متصل(ESTABLISHED) أو بمعنى آخر اتصال فرعي منه.

4- غير صالحةINVALID

هذه الحالة تخبرنا إن حزمة البيانات لا تتعلق بأي اتصال وقد يرجع هذا أحيانا إلى خطأ في حزمICMP ، لذلك ينصح بإسقاط أي حزم من هذا النوع.

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

والجدير بالذكر، أن أي اتصال(Connection) يحدث على الشبكة يكون له منفذ للاتصال(Port) يبدأ منه الاتصال ومنفذ آخر يتصل به، ولكل منفذ رقم معين، وهذا يعني إن أي حزمة سوف تمر من خلال الشبكة يجب أن يكون لها منفذ مصدر خرجت منه (Source Port) ومنفذ آخر متجهة إليه وهو منفذ الهدف (Destination Source) فهذه المواني تعمل كخطوط ربط بين الأجهزة المختلفة عبر الشبكة، تماما مثل المواني البحرية التي تسافر السفن بينها ولكن في هذه الحالة الحزم هي التي تسافر من جهاز إلى آخر. ويفيد معرفة هذه المواني في إيقاف عمل برامج حصان طروادة (Trojan Horse) حيث أنها في الغالب تستخدم منفذاً معينآ لانتظار الاتصال عليه من المتطفل الخارجي لمنحه دخول على الشبكة، ومثال على ذلك برنامج Acid Battery 2000 الذي ينتظر الاتصال على منفذ رقم 53217 لذلك ينصح بإغلاق جميع الاتصالات المتجهة إلى هذا المنفذ وإسقاط الحزم الخاصة بها، وأيضا قد تستخدم هذه المواني في وقف عمل برامج الدردشة للمحافظة على أوقات العاملين بأحد المؤسسات

منقول

هذا الموضوع مغلق.

مواضيع مشابهة