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           
        
أرجو ان يكون الموضوع بسيط ومفهوم....

Wednesday, January 16, 2013

JunOS Users Management ( Part 3 )

تحدثت من قبل فى تدوينتين عن JunOS Users Management فى PART (I) , PART(II),s سوف استكمل حديثى اليوم فى هذه السلسلة وساستعرض فيها بشكل أساسى كيفية إخراج  User معين من ال system أو بمعنى آخر عمل logout له من خلال ال root user .

نفترض أن هنالك user بالاسم : Networking-Geek يقوم بعمل access على ال router و أنا دخلت على ال router لأقوم بعمل بعض الاعدادات ولا أريد أن يكون هنالك أى user له active connection على ال router .

أولا : نقوم بعرض ال users اللى ليها active connection و قمامت بالدخول على ال router باستخدام هذا ال command كما وضحنا من قبل :
"اضغط على الصورة لتظهر بالحجم الاصلى"
                   
ثانيا : نقوم باخراج ال user المسمى ب Networking-Geek بإستخدام ال command الاتى :


"اضغط على الصورة لتظهر بالحجم الاصلى"

أرجو ان تكون هذه التدوينة القصيرة ان تكون مفيدة...

Saturday, December 22, 2012

CISCO Control Plane Policing (CoPP) Part-1

تدوينة اليوم تدور حول ما يسمى بال Control Plan Policing او ما هو معروف بال CoPP و هى احد الطرق المستخدمة لعمل Control Plan Protection او ما يسمى بال CPP  و من خلال قراءة هذا المصطلح نستطيع فهم ان الغرض منها هو تطبيق Policy محدده على ال Control plan الخاص بال device , تستخدم ال CoPP غاليا فلى تطبيق معايير QOS على  ال routers و لحماية ال CPU Utilization عن طريق وضع قيود و حدود لبعض ال features او ال parameters كما سنرى .

 ال scenario الذى سوف اتناوله هو عمل قيود على ال ICMP Packets التى تاتى الى ال Control Plan مباشرة لتجنب اى ICMP flooding من خلال ارسال بعض الاشخاص لملايين ال PING Packets  فالحل هو تطبيق policy على ال control plane الخاص بال router مباشرة بدل من وضع restriction على كل interface متصل بال router.
فكما نرى ال PING من R1 لل loop back الخاص ب R2 مع زيادة حجم ال ICMP Packet الى 2000 , و ال Ping  يعمل بنجاح 



أولا : انشاء ACL بت match ال telnet :

ثانيا : انشاء Class-map يت match ال ACL الذى قمنا بانشاءها فى الخطوة السابقة: 

ثالثا : انشاء Police-map بت match ال Class-map الذى قمنا بانشاءها فى الخطوة السابقة ووضع restrictions على ال icmp packets التى سوف تمر على ال Control Plan الخاص ب R2 وهو فى حالة زيادة ال ICMP packets عن 8000kbps فال action المتخذ سيكون DROP:

رابعا : نطبق ال Police-map على ال control plane الخاص بال R2:

والان مع اعادة عمل PING ب size=2000 ها هى النتيجة :
و ال Normal Ping :

أرجو ان يكون الموضوع كان مفيد و مفهوم...

Tuesday, December 18, 2012

TCL Scripting Basics

موضوع اليوم عن استخدام لغة TCL "Tool Command Language"  فى عمل بعض ال scripts على ال routers للمساعدة بالاخص فى عمليات ال troubleshooting
قد يكون استخدام ال TCL فى عمليات ال PING هو الامر الشائع استخدامه لل Networks Engineers و لكن دعونا نقف لحظة لمعرفة ما هى هذه اللغة ؟

اولا تاريخ هذه اللغة يرجع الى عام 1980 وتصنف او تعتبر على انها interpreted programming language وباختصار انه هذه اللغة يتم تنفيذ ال code الخاص بها line by line باستخدام ما يسمى بال interpreter وتتميز بسرعة تنفيذ ال code وذلك لاننا كما قلنا يتم التنفيذ line by line و يتم كتابتها فى صورة مبسطة يمكن لاى مستخدم التعامل معها فهى ليست complex language .
حتى الان ال TCL لذيذة ومفهوم تاريخها ولكن كيف لنا ك networks engineers الاستفادة منها ؟
عملية ال combination بين ال CISCO IOS و ال TCL هى ما سوف ياخذ انتباهنا و الاتجاه الى فهم ماهيتها فباستخدام ال TCL يمكنك عمل customization لل IOS لاستخدامه فى اشياء توفر عليك الوقت و المجهود كما سنرى بعد قليل ز
عملية ال combination لل TCL مع ال IOS بدا من 12.3T و بدأت Cisco بعد ذلك فى دمجها مع العديد من ال IOS .

للدخول على ال TCL shell من ال Router :

لمعرفة ال version الخاص بال tcl الموجودة على ال IOS :
لوضع القيمة 9 فى variable X ثم اضافة 9 اخرى على ال X :
وهذا مثال اخر لاستخدام ال append command :
ناتى الان للجزء الخاص بنا ك networks engineers وهو استخدام ال TCL فى عمليات ال Troubleshooting :
 يتم استخدامها بكثرة فى عمليات ال Ping ولكن فى ال Huge Networks فبدلا من ان تقوم بعمل Ping على كل IP فى الشبكة سوف تقوم بكتابة script بسيط و تستخدمه كلما اردت التحقق من ال reachability لكل اجزاء ال network وما يلى مثال توضيحى عن كيفية كتابة هذا ال script :

نقوم بكتابته فى txt file سم نعمله paste داخل ال terminal وها هى النتيجة :

لمعرفة المزيد عن ال TCL و كيفية استخدامها مع ال EEM & IP SLA و مواضيع advanced عنها انصحكم بهذا الكتاب :
TCL scripting for cisco ios
وهذا الsite ايضا :
http://tcl.tk
أرجو ان يكون الموضوع كان بسيط ومفهوم...

Tuesday, November 27, 2012

changing the default EIGRP ADs

عندما نتحدث عن ال EIGRP AD  فبالتاكيد سوف نتحدث عن 3 ADs وليس AD واحد وذلك لاننا كما نعلم ان هنالك :
Internal AD =90
External AD =170
Summarized AD = 5 
تدوينة اليوم سوف نتناول بها كيفية استعراض و تغيير هذه القيم الافتراضية لل AD الخاص بال EIGRP و لكن بصراحة كتبت هذه التدوينة بالاخص من اجل عرض معلومات عن كيفية عرض و تغيير ال Summarized AD لل EIGRP ولكن سوف اجعل التدوينة اعم واشمل لتحتوى على هؤلاء الثلاثة..


جميع ال routers مفعل عليها ال EIGRP بال default configuration له ماعدا ال R1 .فكما نرى الاعدادات الخاصة بال routing  و ال redistribution على ال R1 :



والان دعونا نلقى نظرة لل routing table الخاص ب R2 :

فكما نرى ال 3 values المختلفة لل EIGRP AD  فال 90 تظهر امام ال routes التى تم تبادلها بين ال 3 routers باستخدام ال EIGRP , و ال 170 تظهر امام ال external route الذى تم ادخاله لل EIGRP باستخدام ال redistribution .

وللتحقق من قيمة ال AD الخاصة بال summarized address الذى قمنا باعداده على ال R1 نستخدم ال command الاتى :


فكما نرى distance =5 و بذلك قد قمنا باستعراض ال 3 values الخاصة بال EIGRP AD والان سوف نقوم بتغيير هذه القيم الافتراضية :

قمنا بتغيير قيمة ال Internal = 50  و ال External =120
وللتحقق من تغيير هذه القيم :

ناتى الان لتوضيح كيفية تغيير ال default distance لل summarized address بدلا من 5 نجعلها 8 :
للتحقق من ال AD بعد تغييره :

أرجو ان يكون الموضوع بسيط ومفهوم ....