عرض مشاركة واحدة
قديم 07-12-2010, 11:48 AM   #1
سيسكو 1
:
 
الصورة الرمزية سيسكو 1
 
تاريخ التسجيل: Feb 2010
المشاركات: 3,318
شكراً: 118
تم شكره 1,026 مرة في 362 مشاركة
سيسكو 1 is on a distinguished road
افتراضي Access List تعريفها و إستخداماتها


السلام عليكم

سأتناول اليوم موضوع مهم جداً في عالم الأمن والحماية وخصوصاً أجهزة المسيرات أو ما يعرف بالراوتر وأجهزة السويتشات.

عنوان الموضوع: ال Access list تعريفها و إستخداماتها - أنواعها - الإستفادة منها.

حسناً .......

ال access list هي عبارة عن قائمة بها تعليمات وشروط تتحكم وتصنف البيانات أو ال Packet على أن يتم تطبيق إجراء معين على هذه ال Packet ونقصد بالإجراء هنا إما تمرير ال Packet عبر الإنترفيس أو رفض تمريرها.

أهم إستخدام لل access list هو عمل فلترة أو تنقية للبيانات أو ال Packets الغير مرغوب بدخولها للشبكة أو خروجها من الشبكة.

ماذا يمكن أن نمنع بواسطة إستخدام ال access list ؟؟

يمكن أن نمنع عدة جهاز أو أجهزة من الدخول لشبكة معينة.
ويمكن أن نمنع شبكة من الدخول لشبكة أخرى.
ويمكن أن نمنع جهاز أو أجهزة من الإتصال بالإنترنت.
ويمكن أن نمنع أجهزة من خارج الشركة أن تدخل لشبكة الشركة أو جزء من شبكة الشركة.
ويمكن أن نمنع بروتوكول معين من الدخول أو الخروج للشبكة.
ويمكن ويمكن ويمكن .... إلخ

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

كيف نعمل ال access list ؟؟

طريقة عمل ال access list يا إخوان هي أشبه بالبرمجة، نعم هي نوع من أنواع البرمجة إن صح التعبير. ولكن كيف ؟؟؟؟

لمن يمتلك خبرة في البرمجة بأي لغة كانت، سواء كانت C++ أو Paython أو Perl أو غيرها، نلاحظ أنهم يستخدمون الأدوات الشرطية، فيكتبون: إذا (كذا) ف (كذا) ، كذا الأولى تعنى شرط، وكذا الثانية تعني الإجراء أو ال Action .

مثلاً: إذا حضر المدير فإفتحوا له الباب.

نلاحظ هنا أن إجراء فتح الباب مشروط بحضور المدير، ولكن ماذا لو لم يحضر المدير ؟؟ الجواب بسيط، الباب سيبقى مقفلاً مالم نعدل بشرط فتح الباب كأن نضيف مثلاً: إذا حضر المدير أو مساعده فإفتحوا الباب، وهنا نلاحظ أننا أضفنا مساعد المدير كشرط ثاني من شروط فتح الباب، وبالتالي فإن ال access list هي بحد ذاتها برمجة لآوامر مشروطة إذا توافر الشرط فيها فإن إجراءً ما سيحدث، وإن لم يتوافر الشرط فإن الإجراء لن يحدث على الإطلاق.

هذا كان مثال تشبيهي وذكرته لكي أسهل عليكم فهم ماوارء الكواليس لل access list .

لنبدأ الحديث عن ال access list ومعلومات مهمة عنها:

ال access list يتم بنائها في ال Global Configuration Mode الخاص بالرواتر أو السويتش، ولكن تطبيق هذه ال access list يتم على الإنترفيس، بمعنى لو أنك قمت بعمل مليون أكسس لست لكي تمنع كاظم الساهر من دخول الموقع ولم تقم بتطبيق هذه الأكسس لست على ال Interface فإنك لن تستطيع أن تمنع كاظم من دخول الموقع على الإطلاق، وهذه نقطة مهمة جداً، إنشاء ال access list يتم في ال Global Mode و تطبيقها يتم على الإنترفيس.

ال access list تتبع طريقة الفحص المتسلسل للتعليمات والشروط، بمعنى أن كل access list كما ذكرنا سابقاً تتكون من عدد من ال Statments ، أو عدد من الشروط والتعليمات ، عندما تأتي Packet معينة للرواتر وتحديداً لل Interface الذي طبقنا عليه ال access list فإن هذه الأكسس لست تقوم بفحص هذا ال Packet وتمريره على ال Statments أو الشروط بالترتيب من الأعلى للأسفل، الرواتر سيمسك ال Packet ويقارنها بالشرط الأول وسيسأل الرواتر نفسه: هي الشرط ينطبق على هذه ال Packet أو لا ؟؟؟

إذا إنطبق الشرط فإن الرواتر يتوقف ليقرأ الإجراء ، فلو كان الإجراء يقول:

*** مسموح المرور =====> فإن الراوتر سيتخذ الإجراء المنصوص عليه و سيمرر ال Packet عبر الإنترفيس المطبقة عليه ال access list ولن يقوم الراوتر بمقارنة ال Packet مع باقي الشروط أو ال Statments ، وهنا ينتهي دور ال access list .

*** غير مسموح المرور===> فإن الراوتر سيتخذ الإجراء المنصوص عليه و سقوم بمنع ال Packet من المرور عبر الإنترفيس، وسيقوم الراوتر بتحطيم ال Packet وتدميرها.

يرجى الإنتباه بأنه في نهاية كل access list نقوم بإنشائها يوجد إجراء أو Action مخفي ولا يمكن رؤيتها أو حتى قرائتها، هذا الإجراء يقول (( إمنع الكل )) ، مثلاً: قلنا لبواب العمارة: يا بواب إمنع فقط علي و خالد وعمر من دخول البناية، يوجد هناك أمر مخفي في ال access list يقول: إمنع الجميع، وبالتالي لو حضر مصطفى فلن يتمكن من الدخول، ليس بسبب أن إسم مصطفى مدرج من ضمن أسماء الأشخاص المحظور دخولهم، كلا يا إخوان، ولكن بسبب أنه يوجد تعليمة مخفية تقول إمنع الكل، وبالتالي إسم مصطفى هو من ضمن الكل صحيح ؟؟ وبالتالي تم منع مصطفى على هذا الأساس.

أنواع ال access list :

1- Standard access List

هذا النوع يستخدم عنوان أو IP Address للجهاز المرسل أو ال Source Address فقط، وبالتالي فإن الشرط هنا هو العنوان أو ال IP Address للجهاز المرسل فقط فقط فقط لا غير.

طيب ماذا تفهمون من كتابتي لكلمة فقط ثلاث مرات ؟؟؟؟ الجواب هو أن هذا النوع من ال access list ليس لديه المقدرة أن يمنع أو يمرر سوى IP Address للجهاز المرسل فقط، وبالتالي لن نتمكن من منع بروتوكول معين أو جهاز مستقبل، بل يتم هنا منع فقط جهاز مرسل معين له IP Address معين، أي أن هذا النوع من ال access list هو فقط يعمل على المستوى الثالث من الطبقات السبعة وهو ال Network Layer فقط.

يتم إنشاء هذا النوع عن طريق الدخول إلى ال Global Configuration Mode ومن ثم إعطاء الأمر Access-list ومن ثم كتابة رقم، يوجد لل Standard access list مجال من الأرقام المستخدمة، هذا المجال كما يالي:

من 1 ولغاية 99 ، يعني يمكنك كتابة أي رقم هذا ال Range للدلالة على إنشاء access list من نوع Standard ، وفرضاً أننا إخترنا الرقم 20 ليكون رقم الأكسس لست التي كتبناها فإنه يمكننا كتابة العديد من الشروط داخل هذه ال access list والتي رقمها 20 .

عندما صمم المبرمجين ال access list إعتقدوا أن الشركات لن تحتاج سوى لهذا ال Range من ال access list ولكن مع تطور الحياة وكما حصل مع نكبة ال IP Address Version 4 نفس الشيء حصل مع ال Standard access list ، ماذا حصل ؟؟؟ حصل أن بعض الشركات قد تضطر أحيانا لكتابة ألوف ال access list على أنظمتها، فطبعاً جلس مطورو ال access list وعملوا Range جديد إضافي لل Standard access list وأعطوه المجال التالي:

من 1300 ولغاية 1999 ، فلو كتبت للرواتر الرقم 1500 أو الرقم 20 فسيفهم الرواتر على الطاير أن هذه الأكسس لست هي من نوع Standard وبالتالي لن يعطيك أية خيارات سوى خيار منع أو السماح لل IP Address للجهاز المرسل لل Packet .
الموضوع الأصلى من هنا: منتديات سيسكو التعليمية | كن بين الخبراء ! http://www.ciscovb.com/vb/t680.html#post4976

مثال:

Router(config)#access-list 49 deny 192.168.0.0 0.0.255.255

2- Extended access List

هذا النوع يستخدم في تقييمه لل Packet العديد من الأمور، مثل: عنوان المرسل، عنوان المستقبل، نوع بروتوكول معين في المستوى الرابع أو Transport Layer، رقم Port للجهاز المرسل، رقم البورت للجهاز المستقبل. وبالتالي نلاحظ هما أنه يمكننا التحكم بمستويين من مستويات الطبقات السبعة وهما The Network Layer و The Transport Layer .

وهذا يعطي ال Extended access list قوة أكبر في إمكانية التفصيل بشكل أكبر في تحديد الشروط.

يتم إنشاء هذا النوع عن طريق الدخول إلى ال Global Configuration Mode ومن ثم إعطاء الأمر Access-list ومن ثم كتابة رقم، وكما في ال Standard فإنه أيضاً يوجد مجال أو Range لهذا النوع وهو ال Extended access list ، وهذا ال Range كما يلي:

من 100 ولغاية 199 ، يعني يمكنك كتابة أي رقم هذا ال Range للدلالة على إنشاء access list من نوع Extended ، وفرضاً أننا إخترنا الرقم 160 ليكون رقم الأكسس لست التي كتبناها فإنه يمكننا كتابة العديد من الشروط داخل هذه ال access list والتي رقمها 160 .

أيضاً صدم المبرمجين للأكسس لست بأن بعض الشركات يمكن أن تطبق عدد من الأكسس لست أكثر من ال Range الذي تم تصميمه، ولهذا فقد زادوا وأضافوا أيضاً Range إضافي لل Extended access list وهو كما يلي:

من 2000 ولغاية 2699، فلو كتبت للرواتر الرقم 2600 أو الرقم 2001 فسيفهم الرواتر على الطاير أن هذه الأكسس لست هي من نوع Extended وبالتالي سيعطيك الرواتر خيارات أكبر للمنع أو السماح، وهذه الخيارات طبعاً تكلمنا عنها سابقاً مثل عنوان الجهاز المرسل أو الجهاز المستقبل، رقم البورت للجهاز المرسل و رقم البورت للجهاز المستقبل، Protocol معين ... وهكذا.

مثال:

Router(config)access-list 115 deny tcp any host 172.16.16.1 eq 80

3- Named access list

هذا النوع صراحة أنا شخصياً لا أعتبره نوع !!! ولكن أعتبره طريقة لتسمية ال access list بإسم يدل على مضمون هذه ال access list وبالتالي يسهل علينا كمسؤلين عن جهاز الرواتر أو السويتش أن نعرف: لماذا أنشأنا هذه الأكسس لست، مثلاً لو أردنا منع التصفح على الإنترنت فبإمكاننا أن نكتب Named access list ونسميها No_Internet أو STOP_INTERNET ومن ثم نطبقها على الإنترفيس بنفس الإسم وبالتالي لو عدنا للأكسس لست في وقت لاحق فإننا سنعرف أن هذه الأكسس لست أنشأت لمنع الوصول للإنترنت.

طبعاً هذا النوع الثالث يستخدم النوعين السابقين من ال Acsess list وهما ال Standard و ال Extended ، فقط الإختلاف في ال Command .

مثال:

ٌRouter(config)#ip access-list standard NO_INTERNET

أو

ٌRouter(config)#ip access-list standard STOP_INTERNET

وعندما نريد أن نطبقها على الإنترفيس نستبدل الرقم ب الإسم الذي كتبناه.

عندما ننشأ أي access list وكما ذكرنا سابقاً فهي عديمة الفائدة مالم تطبق على ال Interface ، ولكي تطبق على الإنترفيس لابد من الذهاب للإنترفيس عن طريق الأمر Inteface xxxx ، طبعاً ال xxx هنا عنيت بها أي إنترفيس على الراوتر سواء كان إثرنت أو سيريال أو ATM أو غيره، ومن ثم و بعد أن نكون في ال Inteface Mode نقوم بتطبيق الأمر التالي:

Router(config-if)#ip access-group (access list number) (in or out)k

طبعاً ماقصدته ب access list number هو أي رقم من ضمن ال Range الذي تكلمنا عنه سواء لل Standard أو لل Extended .

ولكن ماذا أقصد ب in أو out ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

هذه هي نقطة الضعف عند معظم من يدرس ال access list ، ولكن سأعطيكم بعون الله طريقة لن تخطئوا على الإطلاق في كيفية تحديد أي من الخياران أن نختار، ولكن قبل ذلك دعونا نتكلم قليلاً عن ال in و ال out .

كما ذكرنا سابقاً يا إخوة أن ال access list عديمة الفائدة مالم تطبق على ال Interface ، وتطبيقها كما شرحنا سابقاً يتم على أن ندخل على الإنترفيس ومن ثم نصدر الأمر ip access-group ونتبعه برقم الأكسس لست، ومن ثم نتبعه ب in أو out ، كل هذا في سطر واحد، طيب ماذا نقصد ب in و ماذا نقصد ب out ؟؟؟

in هي إختصار ل Inbound access Lists و out هي إختصار ل Outbound access list ، يعنى ال access list تطبق على ال Packets الداخلة للراوتر أو الخارجة منه، طبعاً تحديد الإتجاه هو من العوامل المهمة جداً في نجاح تطبيق ال access list ، ولكي نعرف كيف نطبق ال access list في الإتجاه الصحيح دعونا نتبع هذه القاعدة السهلة جداً، ولو فهمتوا هذه القاعدة فلن ولن تخطؤا الإتجاه بعون الله على الإطلاق.

قاعدة تحديد إتجاه ال access list :

أول شيء نضع عيننا على ال Interface الذي سنطبق عليه ال access list ونلاحظ

----------O

ال O هي الراوتر ، وال ---- هي الإنترفيس، طيب خلينا نلاحظ التالي:

*** إذا كانت ال Packet موجودة داخل الراوتر ونريد منعها أو السماح لها بالخروج من الرواتر عبر ال Interface نقول: من ======> إلى ، أي من داخل الراوتر إلى خارجه ، أي من In إلى Out ، دائماً دائماً دائماً نختار الشق الثاني، وفي هذه الحالة هو Out .

*** إذا كانت ال Packet موجودة خارج الراوتر ونريد منعها أو السماح لها بالدخول للراوتر عبر ال Inteface نقول: من ======> إلى ، أي من خارج الراوتر إلى داخله ، أي من Out إلى In ، دائماً دائماً دائماً نختار الشق الثاني، و في هذه الحالة هو In .

هذه ببساطة هي القاعدة، وأقسم بالله يا إخوان منذ أن فهمت هذه القاعدة لم أخطئ يوماً على الإطلاق في تحديد هل ال access list ستطبق In أو Out ، وأنتم بعون الله لن تخطئوا على الإطلاق لو فهمتوا القاعدة بشكل صحيح.

ماهو ال Wildcard Mask ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

ال Wildcard Mask هو رقم من أربع مقاطع، شكله شكل ال Sunbet Mask بالضبط، صيغته تكون في الغالب مثل ال Subnet Mask يعني هكذا :

255.255.255.0

ولكنه ليس ال Subnet Mask على الإطلاق، ولاتقعوا في فخ من يدعي أنه إذا عكسنا ال Subnet Mask فإننا نحصل على ال Wildcard Mask ، هذه الطريقة للحصول على ال Wildcard Mask خطأ خطأ خطأ.

الطريقة الصحيحة لكتابة ال Wildcard Mask لننتبه على هذه النقطة التي سأكتبها:

مثلاً دعونا نأخذ هذا المثال:

ال IP Address هو 192.168.1.1 و ال Wildcard Mask له هو0.0.0.255

ماذا يعني هذا المثال ؟؟؟ دعونا نكتب العنوانين تحت بعضهم

192.168.1.1

0.0.0.255

الرواتر عندما نكتب له هذا العنوان ونتبعه بهذا ال Wildcard Mask فكأننا نقول له:

يا راوتر طبق ال access list والتي رقمها كذا على أي IP Address مقطعه الأول 192 ، ومقطعه الثاني 168 ، ومقطعه الثالث 1 ، وبالنسبة للمقطع الرابع فلا يهم، يعني طنش المقطع الرابع، يعني سواء كان المقطع الرابع هو الرقم 1 أو 7 أو 56 أو 99 أو أي قيمة بين 1 و 254 فطنشه ولا تهتم له.

طيب لماذا قال الرواتر هذا الكلام ؟؟؟؟

الرواتر قال هذا الكلام لأن قاعدة ال Wildcard Mask تقول بأنه لو كتبنا الرقم 0 فهذا (إلزام) ولا مجال للتغاظي أو التطنيش، وفي مثالنا السابق كان المقطع الأول والثاني والثالث هو من إنطبق عليهم قاعدة (إلزام).

ولو كتبنا للراوتر الرقم 255 فهذا يعني (لايهم) يعني كما شاهدنا في المثال السابق بالنسبة للمقطع الرابع إنطبق عليه قاعدة (لايهم).

طبعاً لن أثقل عليكم الآن بمزيد من المعلومات عن ال Wildcard Mask ولكن أعدكم بالتدرج في هذا الموضوع حتى نغطي جميع المعلومات المطلوية.


أتمنى من الله أن أكون وفقت في الشرح.

للأمانه الموضوع منقول


Access List juvdtih , Ysjo]hlhjih access juvdtih list Ysjo]hlhjih

__________________

سبحانك ربنا لا علم لنا الا ما علمتنا

للتواصل معي بخصوص المنتدى فقط
عبر تويتر وهو حساب رسمي لي تابع للمنتدى فقط
تويتر : ADNANKHH@


سيسكو 1 غير متواجد حالياً   رد مع اقتباس
الأعضاء الذين قالوا شكراً لـ سيسكو 1 على المشاركة المفيدة:
وليد بارباع (11-28-2010)
 

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36