Monday, January 28, 2013

JunOS Firewall Filters


موضوع اليوم هو احد المواضيع الرئيسية لكل المتعاملين مع اجهزة juniper  و كل من يقوم بالتحضير لشهادة ال JNCIA  الا وهو ال Firewall Filters  .
تعتبر ال
firewall filters  هى المكافئ لل extended acl  فى اجهزة cisco  , و لها نفس ال structure  الخاص بال route policy  حيث انهم بيطبقوا عملية ال match  بمطابقة ال condition  من خلال If statement  و يتم تطبيق ال action  من خلال then statement

و الاختلاف بينهما :
·        ان ال route policy  بت match ال route attributes  و لكن ال firewall filter  بت match ال packet fields  مثل ال fields  التى بداخل TCP/UDP/IP headers , ….
·        ان ال route policy بيختلف ال default behavior  لها باختلاف ال routing protocol  المستخدم فنجد ان ال default behavior  الخاص به يختلف عنه فى كلا من OSP , BGP ,…ولكن فى ال Firewall filters  ال default behavior ثابت وهو عمل DISCARD   كما هو الحال فى ال Cisco ACL  فكانت تنتهى بجملة Deny any  وهى نفس ال concept  فال firewall filter  تنتهى ب Discard لل packet فى حالة عدم وجود matching.
·        ايضا فى ال routing policies  كانت يتم تطبيقها على ال routing protocols  او على ال routing table  و لكن ال firewall filters  يتم تطبيقها على مستوى ال interface.
·        فى الrouting policies  لم يكن علينا بعمل تسمية لل terms  ولكن فى ال firewall filters  لابد من عمل تسمية او naming  لل terms  التى لدينا بداخلها .

يتم تطبيق ال firewall filters  على مستوى كلا من ال control plane  الخاص بال routers  ذاته مثل ال telnet  او ال icmp traffic  مثل ال COPP  فى اجهزة cisco  التى كانت تعتمد على ال  والتى تناولتها بالشرح فى تدوينة سابقة ACL  للتحكم فى ال traffic  على ال control plane أو يتم تطبيق ال firewall filter  على مستوى ال data plane . لها الامكانية على عمل deep inspection  لل traffic  وذلك بالتحقق من ال state  الخاصة بال traffic  من خلال عمل check  داخل ال TCP fields و هذا ما يسمى بال stateful filtering  فى عالم ال security بالاضافة الى عمل policing  لل traffic يضا  يمكن استخدامها فى عمليات ال monitoring  حيث أن  لها الامكانية فى عمل counting  و بعض الاحصائيات لعددpackets  معينة او traffic محددة مثل  يمكن استخدامها فى عمل counting  لل UDP packets  الخارجة او الداخلة على ال router  .

تستخدم ال filewall filters  ل terms  3رئيسية وهم :

1-Terms ( named terms )
2-From ( matching )
3-then ( action)
كما هو موضح بالصورة :

قمنا باعداد firewall filter  بها 3 terms  و كل term  يختلف عن ال term  الاخر فى ال criteria التى سوف يستخدمها لعمل matching  لل traffic  ففى حالة عدم حدوث match  لل term  الاول  سوف يتم اللجوء لل Trem  الثانى ففى حالة انه قد حدث match  مع ال criteria  الموجودة بال from condition  له سوف يتم تنفيذ ال action  المحدد من ال then و ان لم يحدث match  مع ال term  الثانى سوف يتم الذهاب لل term  الثالث و بالمثل ولك هذا اخر  term فلا يوجد term اخر قد تم اعداده لذلك سوف  يكون ال action  فى حالة عدم وجود match  هو عمل discard  لل packet .

نتناول الان بالتوضيح أكثر كل من matching & actions
1-    Matching  :
يتم عمل match لكل مما يلى :
-         ال fields  بداخل layer3 & layer 4 Headers  .
-         ال ip addresses  سواء كان source address  او destination address.
-         ال protocols  المستخدمة .
-         ال numeric range  و المقصود بها ال Port numbers.
-         ال Bit fields  مثل ال ACK, SYN سواء بالقيمة 1  او 0.
و على حسب نوع ال PROTOCOLS  المستخدمة نستطيع عمل matching  لل fields  الخاصة به فمثلا لو نظرنا الى ال headers  الخاصة بكل من TCP , UDP , IP  نلاحظ ان كل منهم  له ال structure  الخاص به و ال fields  الخاصة به  فمثلا يمكننا عمل matching  لل flags  الخاصة بال TCP  فقط لأن ال UDP  لا يحتوى على flags  و هكذا فباختلاف البروتوكول يمكننا عمل matching  و deep inspections  لمحتويات ال fields  الخاصة به.


2-    ال Actions  تنقسم الى 3 انواع :
1-    Terminating :
وهى ال actions  القاطعة التى يتم تطبيقها مثل كلا من (Accept, Reject,Discard)
2-    Flow control
مثل عملية توجيه ال traffic  او ال Packet  من term الى term اخر .
3-    Modifiers
مثل عمل counting  لنوع محدد من ال packets  لغرض ال monitoring  أو عمل logging وارسال ال syslog messages  ل syslog server  خاص بال monitoring & Troubleshooting  و غيرها من ال features.
  
ملحوظة:ليس من المفترض وجود From statement  ففى حالة عدم وجودها فهذا يعنى " match all"


ناتى الان لكيفية عمل configuration  لل firewall filters  على ال juniper routers  بالتوضيح من المثال التالى : 
نريد ان ننشئ Firewall filter  وظيفتها هى السماح فقط ل network محددة بالخروج عبر ال interface  المواجه لل ISP  للدخول لل Internet  و نقوم بمنع اى network  اخرى بالخروج و ايضا نريد ان نقوم بعد ال packets  التى سوف تخرج عبر الinternet .
أولا : نقوم بانشاء firewall filter  و نقوم بتسميته وليكن Filter_out
ثانيا : ان نقوم بانشاء ال terms  الخاصة بال firewall filter   .. ال term  الاول ونسميه وليكن deny-spoof  و هييعمل match  لاى ip  غير تابع لل network  172.30.102.0/24  و ال action  سيكون عمل log  له و يعمل discard  له   و ال network  لو كانت 172.30.102.0  سوف يذهب لعمل check  لل term  الثانى  Accept-else  و هنا لم نضع matching  اى انه سوف يقوم بعمل matching  لل 172.30.101.2  و من ثم سوف يكون ال action  هنا هو عمل count  لل packets  و عمل accept  لها للخروج.
ثالثا : ان نقوم بتطبيق ال firewall filter  على ال interface  المواجه لل internet  و نقوم بتحدبيد ال direction  و هو out  اى يتم تطبيقها على ال packets  الخارجة من هذا ال interface
وهذه الصورة توضح الخطوات التى سوف نقوم باعدادها :

وها هى الاوامر المستخدمة :



المصادر التى استندت اليها :
 ·        Juniper online Documentations
·        Michael Shannon @ cbt nuggets           
        
أرجو ان يكون الموضوع بسيط ومفهوم....

1 comment: