النقاط التي تم تناولها:
1. الفايروول Firewall
2. مبدأ عمل الفايروول
3. الفايروول في اللينكس: NETFILTER/IPTABLES
3.1 عمل ال NETFILTER
3.2 بنية الNetfilter
3.2.1 tables
3.2.2 (Chains (les chaines
3.2.3 (Targets (les cibles
3.3 مسار ال packet عبر ال NETFILTER
3.3.1 الحالة الأولى: packet موجهة إلى جهاز الفايروول
3.3.2 الحالة الثانية: جهاز الفايروول هو مصدر ال packet
3.3.2 الحالة الثالثة: packet موجهة إلى شبكة أخرى
ملاحظة :مصطلح (english(français
1. الفايروول firewall
يعتبر الفايروول إحدى الوسائل الهامة لحماية الشبكات، فهو يتفحص ال (traffic (trafic المتبادل بينها، فيقوم بالسماح بمروره أو رفض ذلك، و ذلك اعتمادا على مجموعة من
(rules (règles التي سبق لل (administrator (administrateur تحديدها. كما يمكنه متابعة و تسجيل معلومات عن ال traffic الذي تم تفحصه وهو ما يسمى ب
traçage de connexion) connection tracking)
غالبا ما يتم وضع الجهاز الذي يلعب دور الفايروول بين ال (private network (le réseau privé والانترنت.
2. مبدأ عمل الفايروول :
يلجأ الفايروول في اتخاذ قراراته الى مجموعة من ال (rules (règles التي سبق لل administrator تحديدها. وغالبا ما يعتمد على مبدأ كل ما لم يتم له السماح بشكل صريح فهو ممنوع. كمثال على ذلك اذا لم توجد rule تسمح لل traffic القادم من ال (host (hote ذات الIP=192.168.2.1 بالمرور فلن يتم السماح له بذلك.
3. الفايروول في اللينكس: NETFILTER/IPTABLES
يتكون الفايروول في اللينكس من جزئين:
NETFILTER : هو عبارة عن script يتم عملcompilation له على مستوى ال (kernel (noyau
IPTABLES: عبارة عن أداة تمكن من عمل configuration ل NETFILTER
3.1 عمل ال NETFILTER
عندما يستقبل ال Netfilter ال (packet (paquet يقوم بمقارنة قيم (fields (champs معينة في هذه الأخيرة، مثلا قيم ال fields التي تمثل source IP, destination IP ,source port... بقيمها المحددة في rule الأولى فإن "تساوت" يطبق على الpacket الaction التي تتضمنها الrule ، كأن يسمح لل packet بالمرور او يمسحها من الوجود، وإن لم "تتساوى" يمر إلى ال rule التي تليها وهكذا دواليك. وتتم هذه العملية على مستوى كل chain تعبرها ال packet
3.2 بنية الNetfilter
يتكون ال Netfilter من tables، كل واحدة من هذه ال tables تتكون من (chains (chaines وكل chain تتكون من مجموعة من rules.
3.2.1 tables
يتكون ال Netfilter بشكل رئيسي من أربع جداول tables:RAW table : تستعمل بشكل أساسي لإضافة علامات على ال packets التي لا نريدها ان تخضع لل connection tracking.
FILTER table: تسمح بغربلة أو filtering لل packet فتقوم مثلا ب:
- السماح لها بالمرور(ACCEPT)
- تسجيل معلومات عنها (LOG)
- مسحها من الوجود من غير إنذار (DROP) أو مع إنذار (REJECT).
NAT table : تمكن أساسا من تغيير ال IP addresses و ال ports
MANGLE table : تسمح بتغيير بعض ال fields داخل ال packet header مثلا TTL .
3.2.2 (Chains (les chaines
بالإضافة إلى ال tables، يضم ال NETFILTER مايسمى ب "chains"، فنجد:INPUT chain : تستعمل هذه ال chain لغربلة ال packets الموجهة لل applications التي تعمل على الجهاز الذي يقوم بدور الفايروول
OUTPUT chain :تستعمل هذه ال chain لغربلة ال packets الصادرة من ال applications التي تعمل على الجهاز الذي يلعب دور الفايروول.
FORWARD chain : هذه ال chain تُغربل ال packets التي تمر من interface إلى interface آخر على مستوى ال firewall.
PREROUTING chain :هذه الchain تُستعمل للقيام بمعالجات خاصة على ال packets وذلك بمجرد مجيئها وقبل أن تتم غربلتها filtering، وتُستعمل مثلا في حالة destination NAT أو DNAT و الذي يتمثل في تغيير destination IP على مستوى ال packet
POSTROUTING chain : تُستعمل هذه ال chain مثلا فيما يسمى source NAT أو SNAT والذي يتمثل في تغيير ال source IP على مستوى ال packet.
الشكل التالي يبسط لنا استعمال ال chains:
https://www.mediafire.com/view/?y7zt1a4dxb562r9
الشكل أعلاه يبين ال chains على مستوى ال Netfilter
نلاحظ ان ال OUTPUT chain و INPUT chain لها destination أو انطلاق من الkernel الخاص بالفايروول. مما يؤكد بأن هاتين ال chains تُستعمل من طرف ال services التي تعمل على جهاز الفايروول نفسه.
ونلاحظ كذلك أن ال FORWARD chain لا تمر أبدا من خلال kernel الخاص بالفايروول، إذن ال packets التي تعبر هذه ال chain لا تخضع للمعالجة من طرف ال local processes على مستوى الفايروول.
تتكون كلtable من chains و تحتوي كل chain على rules. الجدول التالي يبين توزيع ال chains على tables
https://www.mediafire.com/view/?sv8d9wupo0ivt6j
ملاحظة :
نلاحظ ان مثلا PREROUTING chain تنتمي إلى RAW table ، MANGLE table و NAT table قد يظن القارئ انها chain واحدة لكنها في الحقيقة ثلاث chains مختلفة لكنها تحمل نفس الاسم كأن يكون مثلا لشخص اسمه جمال ابنة اسمها جَنَى ويكون لجاره محمد ابنة اسمها أيضا جَنَى إذن لدينا فتاتين تحملان نفس الاسم لكن من ابوين مختلفين. وكذالك هذه ال chains فهي ثلاث chains لها نفس الاسم لكنها تنتمي إلى tables مختلفة.
3.2.3 (Targets (les cibles
يمكن لكل chain موجودة في FILTER table أن تعمل وفق عدة سياسات:ACCEPT : ال packets التي تحقق الشروط المحددة في ال rule يتم السماح لها بالمرور
DROP :الpackets التي لا تحقق الشروط المحددة في الrule يتم تدميرها دون إرسال notification للمرسل.
REJECT : ال packets التي استوفت الشروط المحددة في ال rule يتم تدميرها مع إرسال notification للمرسل.
LOG :تسمح بتسجيل معلومات عن ال packets المستوفية للشروط المحددة في ال rule.
3.3 مسار ال packet عبر ال NETFILTER
3.3.1 الحالة الأولى: packet موجهة إلى جهاز الفايروول
بمجرد وصول ال packet الى ال interface الخاص بالفايروول تعبر tables حسب الترتيب التالي:
https://www.mediafire.com/view/?dv9ldsuwp2m5zoy
إذا تجاوز ال packet ال FILTER table دون أن يتم تدميرها، تُسلم إلى Local process على مستوى جهاز الفايرول.
بمجرد مغادرة ال packet ل RAW table يبدأ ما يسمى connection tracking
3.3.2 الحالة الثانية: جهاز الفايروول هو مصدر ال packet
بمجرد ان تصدر ال packet من ال applications التي تعمل على جهاز الفايروول تجتاز ال tables حسب الترتيب التالي:
https://www.mediafire.com/view/?lnjjovgpasu0k2c
يتم اتخاذ قرار ال (routing (routage - ويقصد بهذا الاخير ( أي قرار ال routing) هل ال packet موجهة إلى جهاز الفايروول نفسه؟ هل هي موجهة إلى شبكة أخرى؟- بمجرد خروجها من OUTPUT chain الموجودة في NAT table.
بعد انتهاء ال (treatments (les traitements على مستوى ال POSTROUTING chain الموجودة في NAT table تخرج ال packet عبر interface الفايروول.
3.3.2 الحالة الثالثة: packet موجهة إلى شبكة أخرى
نفترض أن ال packet موجَهة إلى جهاز آخر في شبكة أخرى، في هذه الحالة فهي تجتاز ال tables وفق الترتيب التالي:
https://www.mediafire.com/view/?82d4ffkqq4dfy4a
بعد عبور الpacket لهذه الtables تخرج عبر interface الفايروول.
خلاصة :
الآن، عرفنا كيف يتم عبور مختلف الchains وذلك وفق ثلاث سيناريوهات، ويمكن أن نمثله بالشكل التالي:
https://www.mediafire.com/view/?jjbq51x4e8r4y5p
المفضلات