توجد أنواع كثيرة من لوائح التحكّم في الوصول، إذ توجد لوائح لبروتوكول 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) وتتحقّق من الرزمة بناءً على هذه المعلومة فقط. أي أن لوائح التحكم المعياريّة لن تصل إلى طبقة النقل.
ملحوظة : يُرجى الانتباه إلى أن لوائح التحكم في الوصول لا تصل إلى البيانات التي تحملها الرزمة، وستحتاج إلى وظائف متقدّمة في الجدار الناري ليمكنك ذلك.
نأتي الآن إلى كيفية كتابة التعليمات لضبط لوائح التحكم في الوصول على أجهزة 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
، وهكذا.
الخطوة التالية هي تطبيق لائحة التحكّم على بطاقة شبكة لتفعيلها عليها. بالنسبة للوائح المعيارية فإنّها تُطبَّق على بطاقة شبكة الموجّه الأقرب إلى الوِجهة. فلنفترض مثلًا أن لدينا الشبكة التالية.
إذا أردنا ضبط لائحة التحكّم لمنع البيانات القادمة من الجهاز ذي العنوان 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
أفضل التعليقات
لا توجد أية تعليقات بعد
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.