یادآوری این نکته ضروری است که به صورت پیش فرض ۵ ارتباط همزمان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های استاندارد توجه کنید:
مثال فوق دارای اشکالاتی می باشد. بنابراین به بررسی موارد آن می پردازیم.
قانون اول اجازه عبور و پیام های رسیده از سوی192.168.1.0 را نخواهد داد. به دلیل اینکه Wildcard Maskمشخص نشده است. بنابراینMask فوق به صورت0.0.0.0 بوده و نشان دهنده این است که باید مطابقت دقیق وجود داشته باشد .مشکل موجود در این قانون این است که ما اصولا این آدرس را نمیتوانیم در شبکه به کار بگیریم .زیرا که آدرس24/192.168.1.0 یک شماره شبکه می باشد و نه یک آدرسhost .
نکته : اولین و آخرین آدرسی که در هر شبکه قرار میگیرد را نمیتوان به host ها یا دستگاههای شبکه اختصاص داد. اولین آدرسی که در هر شبکه وجود دارد را به نام شماره شبکه یاNetwork Broadcast مینامیم.
قانون دوم نیز دچار همین مشکل است اما قانون های سوم و چهارم صحیح نوشته شده است.
میبینید که تنظیم یکACL میتواند کار زیرکانه ای باشد. به هر صورت شکل صحیح تری از مثال بالا به صورت زیر خواهد بود:
همانطوری که میبینید قانون اول اجازه عبور به ترافیک رسیده از کل شبکه 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 را حذف خواهد نمود و دیگر فرصت برای بررسی قانون سوم نخواهد رسید . برای همین باید قانون سوم را در ابتدا و قبل از قانون اول بیاوریم . یعنی به شکل زیر :
با نگاه دقیق تر به دستورات بالا باز هم مشاهده خواهید کرد که یک مشکل دیگر هنوز باقی مانده و آن هم این است که ما شماره ACL را در موقع فعال کردن روی Ethernet 0 به اشتباه روی عدد 2 تنظیم کرده ایم که این عدد باید برابر 1 باشد .
بنابراین قسمت آخر دستور نوشته شده را بخ صورت زیر اصلاح میکنیم :
البته این نکته را از یاد نبرید که قبل از فعال کردن ACL جدید در ابتدا باید ACL قدیم را حذف کرده و سپس اقدام به آن کار نمایید .
دو نمونه برای کسب مهارت بیشتر بر روی ACL_STD