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