cisco icnd1 أنواع لوائح التحكم في الوصول ACL


محمد أحمد العيل

توجد أنواع كثيرة من لوائح التحكّم في الوصول، إذ توجد لوائح لبروتوكول IP الإصدار الرابع (IPv4)، وأخرى للإصدار السادس (IPv6)، وتتخصّص لوائح أخرى في بروتوكولات خاصّة مثل IPX (اختصار لـ Internetwork Packet Exchange، تبادل الرزم بين الشبكات) المستخدَم في شبكات Novell، وبروتوكول AppleTalk الذي كان مستخدَمًا في أجهزة ماكنتوش. سنركِّز أولًّا على الإصدار الرابع من IP، ثم نتحدَّث في دروس لاحقة عن الإصدار السادس.

اللوائح المعيارية واللوائح المُوسَّعة

تُقسَّم لوائح التحكم في الوصول بالنسبة للإصدار الرابع من IP - حسب الوظائف التي توفّرها - إلى قسميْن:

  • اللوائح المعيارية Standard ACL: تتحقّق من مصدر الرزمة التي نريد توجيهها. تمكّن اللوائح المعيارية من قبول أو منع مرور بيانات تجميعة بروتوكولات (Protocols suite) كاملة إلى الخارج، بناءً على المصدر، سواء كان شبكة، أو شبكة فرعيّة، أو مضيفا.
  • اللوائح المُوسَّعةExtended ACL: تتحقّق من مصدر الرزمة وكذلك وجهتها. ويمكنها التحقّق من بروتوكل محدَّد، أو أرقام المنافذ، أو وسائط أخرى؛ ممّا يمنح مدير الشبكة مرونةً أكثر في التحكم في حركة البيانات.

لا يمكن للوائح التحكم في الوصول المعيارية النظر في وِجهة الرزم، وهو ما يمثٍّل قيدًا يقلّل من أهميّتها في كثير من الحالات. كما أنها لا تتعامل مع البروتوكولات العاملة على مستوى طبقة النقل (Transport layer) وطبقة التطبيق (Application layer). على العكس من لوائح التحكم المعيارية، تسمح لوائح التحكم المُوسَّعة بالتحقق من مصدر الرزمة، ووجهتها؛ وتسمح كذلك بالنظر في طبقتيْ النقل (TCP أو UDP) والتطبيق (HTTP، ‏FTP،‏ ‏DNS وغيرها).

توجد طريقتان لاستخدام لوائح التحكم في الوصول :

  • لوائح التحكم في الوصول المُرقَّمة (Numbered ACLs)، وتعتمد على الأرقام لتعريف اللوائح،
  • لوائح التحكم في الوصول المُسمَّاة (Named ACLs)، وتستخدم أسماء لتعريف اللوائح.

تُعرَّف لوائح التحكم المُرقَّمة بمُعرِّفات في المجالات من 1 إلى 99، ومن 1300 إلى 1999 بالنسبة للوائح المعيارية، ومن 100 إلى 199، ومن 2000 إلى 2699 بالنسبة للوائح المُوسَّعة. بالنسبة للمعرّفات في المجاليْن [1300-1999] و[2000-2699] فهي قليلة الاستخدام.

أضيفت إمكانية تسميّة لوائح التحكم في الوصول إلى أجهزة Cisco قبل أكثر من عقد من الزمن بعد سنوات طويلة من الاقتصار على استخدام الأرقام لتعريف اللوائح. تمكِّن تسمية لوائح التحكم من تعريفها بوصف واضح يساعد في معرفة وظيفة اللائحة. إضافةً إلى ذلك، من السهل تعديل لوائح التحكّم المُسمَّاة بإضافة مُدخلات جديدة أو حذف تلك الموجودة.

اللوائح المعيارية

ذكرنا سابقًا أن اللوائح المعيارية لا تتحقّق إلّا من مصدر الرزمة. يعني هذا أنها لن تهتمّ بترويسة الإطار (Frame header) التي يستخدمها بروتوكول الطبقة الثانية (طبقة وصل البيانات، مثل Ethernet) وستنظُر مباشرة إلى ترويسة رزمة IP‏ (Packet header) وتتحقّق من الرزمة بناءً على هذه المعلومة فقط. أي أن لوائح التحكم المعياريّة لن تصل إلى طبقة النقل.

ملحوظة : يُرجى الانتباه إلى أن لوائح التحكم في الوصول لا تصل إلى البيانات التي تحملها الرزمة، وستحتاج إلى وظائف متقدّمة في الجدار الناري ليمكنك ذلك.

01-standard-acl.jpg

نأتي الآن إلى كيفية كتابة التعليمات لضبط لوائح التحكم في الوصول على أجهزة Cisco. يجب علينا أولًّا أن نعلم أن إعداد لوائح التحكم في الوصول يتم على مستوى وضع الضبط العامّ (Global configuration). نستخدم الأمر access-list ثم نحدِّد معرّفًا للائحة. بما أننّا نريد إعداد لوائح معياريّة فسيكون معرِّف اللائحة بين 1 و99. يتعرَّف الموجِّه تلقائيًّا على نوعية اللائحة انطلاقًا من المعرِّف الذي نمرّره للأمر access-list. يتيح استخدام علامة الاستفهام ? بعد كتابة الأمر عرض إرشادات حول صيغة الأمر. إذا كتبنا مثلاً الرقم 101 بعد الأمر access-list ثم علامة الاستفهام ? فإنّ الموجِّه سيعرض صيغة اللوائح الموسَّعة. لذا يجب الانتباه إلى معرِّفات اللوائح. يأتي بعد معرِّف اللائحة الإجراءُ الذي نريد تطبيقه (القبول permit أو المنع deny). يمكن كذلك وضع ملاحظة (remark)، وهي وصف لللائحة. وفي الأخير نمرّر العنوان وقناع محرف البدل.

نلاحظ في المثال أدناه أننا نطلب المساعدة بعلامة الاستفهام بعد كل جزء من الأمر. تشير <cr> إلى زرّ الإدخال (Enter).

R0(config)#
R0(config)# access-list 1 ?
  deny    Specify packets to reject
  permit  Specify packets to forward
  remark  Access list entry comment
R0(config)# access-list 1 permit ?
  Hostname or A.B.C.D  Address to match
  any                  Any source host
  host                 A single host address
R0(config)# access-list 1 permit 192.168.2.0 ?
  /nn or A.B.C.D  Wildcard bits
  log             Log matches against this entry
  <cr>
R0(config)# access-list 1 permit 192.168.2.0 0.0.0.255 ?
  log  Log matches against this entry
  <cr>
R0(config)# access-list 1 permit 192.168.2.0 0.0.0.255
R0(config)#

ينشئ الأمر ‎access-list 1 permit 192.168.2.0 0.0.0.255 أعلاه لائحة معيارية للتحكم في الوصول بها مُدخَل واحد يقبل البيانات القادمة من مجال العناوين 192.168.2.0 – 192.168.2.255، أي الشبكة 192.168.2.0/24‎.

يمكن أن نضيف مُدخَلات (Entries) أخرى لللائحة نفسها بكتابة الأمر access-list 1 متبوعًا بالإجراء (permit أو deny) وعنوان وقناع محرف بدل.

لا يوجد حدّ أقصى لعدد المُدخَلات في اللائحة الواحدة. بالنسبة للحدّ الأدنى فهو مُدخَل واحد بإجراء القبول. يمكن أن تتضمَّن لائحة الوصول مُدخَلًا وحيدًا بإجراء منع (deny)، إلّا أن ذلك غير مفيد عمليًّا نظرًا لأن السلوك المبدئي في لوائح التحكم في الوصول هو المنع.

يُستخدَم الأمر show access-lists في وضع التفعيل لعرض لوائح التحكم في الوصول المضبوطة على الموجِّه.

R1# show access-lists
Standard IP access list 1
10 permit 192.168.2.0, wildcard bits 0.0.0.255

يعرض الأمر لوائح التحكّم في الوصول حسب أنواعها. في المثال السابق لدينا لائحة تحكّم معيارية واحدة لبروتوكول IP الإصدار الرابع (Standard IP access list). يظهر أمام مُدخَلات اللائحة عدد ترتيبي مُولَّد تلقائيًّا (10). إنْ أضفنا مُدخَلاً آخر فسيأخذ الرقم الترتيبي 20، وهكذا.

الخطوة التالية هي تطبيق لائحة التحكّم على بطاقة شبكة لتفعيلها عليها. بالنسبة للوائح المعيارية فإنّها تُطبَّق على بطاقة شبكة الموجّه الأقرب إلى الوِجهة. فلنفترض مثلًا أن لدينا الشبكة التالية.

02-applying-standard-acl.png

إذا أردنا ضبط لائحة التحكّم لمنع البيانات القادمة من الجهاز ذي العنوان 192.168.2.101 (المصدر) في الشبكة الصفراء من الوصول إلى الجهاز ذي العنوان 192.168.1.100 (الوجهة) في الشبكة الخضراء فإنّ بطاقة الشبكة Fa0/1 هي الأقرب للوِجهة (192.168.1.100) وبالتالي فإن الموجِّه R0 وبالتحديد البطاقة Fa0/1 هو ما سنطبِّق عليه لائحة التحكم.

يُستخدَم الأمر ip access-group لتفعيل لائحة التحكم على البطاقة، بعد الدخول في وضع إعدادها :

R0(config)# access-list 1 deny 192.168.2.100 0.0.0.0
R0(config)# int fa0/1
R0(config-if)# ip access-group 1 out 

نمرِّر للأمر رقم لائحة التحكّم (1)، ثم أحد الوسيطيْن out أو in. نريد هنا التحكّم في البيانات الخارجة من البطاقة باتجاه الوِجهة (192.168.1.100)، وبالتالي نستخدم الوسيط out.

اللوائح المُوسَّعة

تختلف اللوائح المُوسَّعة عن المعيارية في درجة المرونة التي توفّرها، إذ يمكنها تطبيق إجراءات على مصدر الرزم، أو وجهتها، أو البروتوكول المستخدَم. كما يمكن الجمع بين تلك الوسائط (المصدر، والوجهة، والبروتوكول) في لائحة واحدة.

access-list ACL_Identifier_number permit|deny IP_protocol
source_address  source_wildcard_mask [protocol_information] destination_address destination_wildcard_mask [protocol_information] [log]

نمرّر للأمر معرٍّف اللائحة ( [100-199] بالنسبة لللوائح المُوسَّعة)، ثم الإجراء (permit أو deny)، ثم البروتوكول المستهدَف(IP_protocol)، ثم العنوان المصدر (source_address) وقناع المحرف المرافق له (source_wildcard_mask)، ثم بيانات البروتوكول إنْ تطلّب ذلك ([protocol_information])، نفس الشيء بالنسبة للوِجهة، ونحدِّد اختياريًّا إذا ما كنا نريد تسجيل (log) الرزم التي تُطبَّق عليها اللائحة.

تُفعَّل لوائح التحكم المُوسَّعة على البطاقة والموجِّه الأقرب للمصدر الذي نريد تطبيق اللائحة عليه.

إذا أردنا مثلًا أن نقبل مرور الرزم القادمة من المضيف 192.168.1.100‎ إلى الشبكة 192.168.2.0/24‎ فإننا نفعّل لائحة التحكم التالية على بطاقة الشبكة Fa0/1‎.

R1(config)# access-list 100 permit ip 192.168.1.100 0.0.0.0 192.168.2.0 0.0.0.255
R1(config)# int fa0/1
R1(config-if)# ip access-group 100 in

استخدام اللوائح المُسمَّاة

تسمح موجِّهات Cisco بتسميّة لوائح التحكم في الوصول مما يمنح مرونة أكبر في إدارة مداخل اللوائح كما سنرى لاحقا. يُستخدَم الأمر ip access-list لإنشاء لائحة تحكّم مسمّاة، ونمرّر له نوع اللائحة (standard أو extended) ثم الاسم الذي نريد إعطاءه للائحة. يظهر بعد ذلك محثّ (Prompt) جديد نكتب فيه عمل اللائحة على نحو مشابه لللوائح المُرقَّمة.

يمكننا حذف لائحة تحكّم بالوصول بتنفيذ الأمر no access-list في وضع الضبط العامّ متبوعًا برقم اللائحة، كما يمكن إبطال عمل اللائحة على بطاقة معيَّنة دون حذف اللائحة. نبطل في ما يلي عمل اللائحة 100 السابقة من بطاقة الشبكة Fa0/1‎ بالأمر no ip access-group ثم ننشئ لائحة بالاسم ACL1 ونطبّقها على البطاقة :

R1(config-if)# no ip access-group 100 in
R1(config-if)# 
R1# conf t
R1(config)# ip access-list extended ACL1
R1(config-ext-nacl)# permit ip 192.168.1.100 0.0.0.0 192.168.2.0 0.0.0.255
R1(config-ext-nacl)# end
R1# conf t
R1(config)# ip access-group ACL1 in

تعديل لوائح التحكم في الوصول

فلنفترض أن لدينا لائحة تحكّم معيارية تتضمّن المُدخَليْن التاليّيْن :

Router# show access-lists 1
Standard IP access list 1
10 deny host 192.168.1.2
20 permit 192.168.1.0, wildcard bits 0.0.0.255

تسمح هذه اللائحة للرزم القادمة من الشبكة 192.168.1.0/24 ما عدا تلك القادمة من المضيف ذي العنوان 192.168.1.2. إذا أضفنا مُدخَلًا جديدًا لمنع المضيف 192.168.1.200 فستُصبح اللائحة على النحو التالي :

Router# show access-lists 1
Standard IP access list 1
10 deny host 192.168.1.2
20 permit 192.168.1.0, wildcard bits 0.0.0.255
30 deny host 192.168.1.200

إلّا أن المشكلة هنا هي أنّ لائحة التحكم لن تصل إلى المُدخَل الثالث نظرًا لكون المضيف 192.168.1.200 داخل في مطابقة العنوان 192.168.1.0 مع قناع محرف البدل 0.0.0.255 في المُدخَل الثاني. يعني هذا أننا نحتاج لنقل المُدخل الثالث ليكون قبل المُدخَل الثاني. لا تتيح تعليمات اللوائح المُرقَّمة (الأمر access-list) تعديل المُدخَلات بسهولة، إذ نحتاج لحذف المُدخَلات التي نريد ترتيبها ثم إضافتها بالترتيب الذي نريد، وهو ما يأخذ وقتًا، ويجعل عمل اللائحة ناقصًا خلال مدة التعديل.

نلجأ لصيغة اللوائح المُسمَّاة لتعديل مُدخلات اللائحة، ونمرّر لها المعرِّف (رقم اللائحة أو اسمها)، ثم نمنح عددًا ترتيبيًّا للمُدخَل الذي نريد إضافته بحيث يحتلّ الموقع الذي نريده له. بالنسبة للمثال السابق نمنح المُدخَل العدد الترتيبي 15 على النحو التالي :

Router(config)# ip access-list standard 1
Router(config-std-nacl)# 15 deny host 192.168.1.200

بالعودة إلى وضع التفعيل وعرض لائحة التحكم نجد النتيجة التالية :

Router# show access-lists 1
Standard IP access list 1
10 deny host 192.168.1.2
15 deny host 192.168.1.200
20 permit 192.168.1.0, wildcard bits 0.0.0.255

يمكننا - إن إردنا – إعادة تنظيم الأعداد الترتيبيّة بتمرير الوسيط resequence ثم معرِّف اللائحة، ثم القيمة الابتدائيّة، ثم قيمة الخطوة (الفارق بين عدديْن ترتيبيّيْن) إلى الأمر ip access-list في وضع الضبط العام:

Router(config)# ip access-list resequence 1 10 20
Router(config)# end
Router# show access-lists 1

Standard IP access list 1
10 deny host 192.168.1.2
30 deny host 192.168.1.200
60 permit 192.168.1.0, wildcard bits 0.0.0.255

ترجمة – وبتصرّف – للمقال Types of Access Control Lists





تفاعل الأعضاء


لا توجد أيّة تعليقات بعد



يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن