یادآوری این نکته ضروری است که به صورت پیش فرض ۵ ارتباط همزمانInterface را می توان به یک روتر برقرار نمود که با مشخص کردن ارتباط اول ، یعنی0 و ارتباط آخر یعنی4 اینACL در روی تمامی 5 ارتباط فعال خواهند شد .اگر به خاطر دلایلی مثل فراموشی، ACL ایجاد شده را روی تعدادی از ارتباطاتtelnet  فعال نساخته باشیم باعث بروز مشکلات امنیتی در شبکه خواهیم شد. پارامترin باعث اعمال محدودیت بر روی ارتباطاتtelnet ورودی بر روی روتر می‌شود اما پارامترout گزینه منحصر به فردی است .با به کار بردن این پارامتر می توان مشخص کرد که این روتر قادر به برقراری ارتباط telnet به وسیله دستوراتtelnet یا connect با چه دستگاههای باشد .درACL های استاندارد این یک استثنا میباشد و روتر را مجبور میکند که آدرس های مشخص شده در قانون هایACL را به عنوان آدرس مقصد در نظر بگیرد .در این شرایط را قبل از این که اجازه برقراریtelnet از طریق روتر خودمان به سوی دستگاه‌های دیگر را بدهد ،ACLرا بررسی کرده و در صورت لزوم اجازه را صادر خواهد کرد.

 

 مثال ساده زیر ایجاد و فعال کردن یکACL را برای یک ارتباطtelnet نشان می دهد :

Router(config)#access-list 99 permit 192.168.1.0  0.0.0.255

Router(config)#line vty 0 4

Router(config-line)#access-class 99 in

 

 

در مثال بالا فقط دستگاه‌های موجود در شبکه92.168.1.0/24 اجازه برقراری ارتباط به روتر ما را دارند. نیازی به نوشتن دستوراتdeny نداریم .زیرا که وجودimplicit deny در آخر هر یک از قانون هایACL به طور خود به خودی بقیه ترافیک ها به غیر از آنهایی که اجازه عبور دارند را حذف خواهد نمود .

در قسمت بعدی سری مقالات ACL مشاهده خواهید کرد که به وسیله استفاده ازACL های extended نیز می‌توان در انتقال ترافیک روترها اعمال محدودیت نمود .اما مراحل این کار کمی پیچیده تر می باشد.ACL های گسترده بر رویInterface های روتر تاثیر می گذارند و نمی توان آنها را برای اعمال محدودیت در دسترسی telnet به دستگاه‌های دیگر مورد استفاده قرار داد. همچنین وقتی که یکACL را در روی یک Interfaceفعال می سازیم ،کارایی آنInterface کاهش خواهد یافت که بسته به مدل، نسخه نرم افزارIOS و امکانات دستگاه ،این کاهش در کارایی و عملکرد دستگاه متفاوت خواهد بود .بنابراین اگر قصد اعمال محدودیت در دسترسی به طریقtelnet را دارید، استفاده از ACLهای استاندارد و دستورaccess-list بهترین گزینه می باشد. به مثال دیگر از ACLهای استاندارد توجه کنید:

  1. Router(config)# access-list 2 deny 192.168.1.0
  2. Router(config)# access-list 2 deny 172.16.0.0
  3. Router(config)# access-list 2 permit 192.168.1.0
  4. Router(config)# access-list 2 permit 0.0.0.0 255.255.255.255
  5. Router(config)# interface Ethernet 0
  6. Router(config-if)#ip access-group 1 out

 

 مثال فوق دارای اشکالاتی می باشد. بنابراین به بررسی موارد آن می پردازیم.

 قانون اول اجازه عبور و پیام های رسیده از سوی192.168.1.0 را نخواهد داد. به دلیل اینکه Wildcard Maskمشخص نشده است. بنابراینMask فوق به صورت0.0.0.0 بوده و نشان دهنده این است که باید مطابقت دقیق وجود داشته باشد .مشکل موجود در این قانون این است که ما اصولا این آدرس را نمی‌توانیم در شبکه به کار بگیریم .زیرا که آدرس24/192.168.1.0 یک شماره شبکه می باشد و نه یک آدرسhost .

 نکته : اولین و  آخرین آدرسی که در هر شبکه قرار می‌گیرد را نمی‌توان به host ها یا دستگاه‌های شبکه اختصاص داد. اولین آدرسی که در هر شبکه وجود دارد را به نام شماره شبکه یاNetwork Broadcast  می‌نامیم.

 قانون دوم نیز دچار همین مشکل است اما قانون های سوم و چهارم صحیح نوشته شده است.

میبینید که تنظیم یکACL می‌تواند کار زیرکانه ای باشد. به هر صورت شکل صحیح تری از مثال بالا به صورت زیر خواهد بود:

  1. Router(config)# access-list 2 deny 192.168.1.0 0.0.0.255
  2. Router(config)# access-list 2 deny 172.16.0.0 0.0.255.255
  3. Router(config)# access-list 2 permit 192.168.1.1
  4. Router(config)# access-list 2 permit 0.0.0.0 255.255.255.255
  5. Router(config)# interface Ethernet 0
  6. Router(config-if)# ip access-group 1 out

 

 

 همانطوری که می‌بینید قانون اول اجازه عبور به ترافیک رسیده از کل شبکه 192.168.1.0/24 را نخواهد داد.

 قانون دوم نیز به همین شکل اجازه عبور به ترافیک مربوط به شبکه172.16.0.0/16 را نمی دهد.

 قانون سوم این اجازه را به دستگاهی با آدرس 192.168.1.1داده و قانون چهارم نیز همه ترافیک های رسیده را می پذیرد .اما هنوز مشکلی در دستورات فوق به چشم می خورد .به قانون های اول و سوم توجه کنید .آیا روتر قانون سوم را پردازش خواهد کرد یا نه؟ اگر جواب شما نه باشد درست حدس زده اید که در نوشتن قانون های یک ACL باید موارد اختصاصی تر را در اول قرار دهیم . در مثال بالا وقتی روتر قانون اول را میبیند ، تمامی ترافیک مربوط به شبکه 192.168.1.024 را حذف خواهد نمود . در حالیکه در قانون سوم اجازه عبور به ترافیک دستگاه 192.168.1.1 که جزئی از 192.168.1.024 میباشد داده شده است . روتر با پردازش قانون اول ، ترافیک رسیده از 192.168.1.1 را حذف خواهد نمود و دیگر فرصت برای بررسی قانون سوم نخواهد رسید . برای همین باید قانون سوم را در ابتدا و قبل از قانون اول بیاوریم . یعنی به شکل زیر :

  1. Router(config)# access-list 2 permit 192.168.1.1
  2. Router(config)# access-list 2 deny 192.168.1.0 0.0.0.255
  3. Router(config)# access-list 2 deny 172.168.0.0 0.0.255.255
  4. Router(config)# access-list 2 permit deny
  5. Router(config)#interface Ethernet 0
  6. Router(config-if) # ip access-group 1 out

 

با نگاه دقیق تر به دستورات بالا باز هم مشاهده خواهید کرد که یک مشکل دیگر هنوز باقی مانده و آن هم این است که ما شماره ACL را در موقع فعال کردن روی Ethernet 0 به اشتباه روی عدد 2 تنظیم کرده ایم که این عدد باید برابر 1 باشد .

بنابراین قسمت آخر دستور نوشته شده را بخ صورت زیر اصلاح میکنیم :

  1. Router(config)# interface Ethernet 0
  2. Router(config-if)# no ip access-group 1 out
  3. Router(config-if)# ip access-group 2 out

 

البته این نکته را از یاد نبرید که قبل از فعال کردن ACL جدید در ابتدا باید ACL قدیم را حذف کرده و سپس اقدام به آن کار نمایید .

 

دو نمونه برای کسب مهارت بیشتر بر روی ACL_STD

 ACL STD

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *