Cisco Access List در ترجمه لغوی به معنای لیست دسترسی سیسکو می باشد که زیاد هم از معنای واقعی خود دور نیست.
همانطور که از اسم آن بر می آید به وسیله این ابزار میتوانیم بر روی سخت افزارهای سیسکو فایروال ایجاد کنیم.
از آنجا که بحث فایروال بسیار گسترده است و تنها به یک   access list  منتهی نمیشود به این نوع فایروال packet filter گفته میشود.
حتما خوانندگان عزیز سیسکو را شناخته و از کارایی آن خبر دارند.
از آنجا که ورودی اینترنت 80 درصد شبکه هایی که ما با آنها کار می کنیم Cisco هست میتوانیم با بکار گیری Access list در آنها امنیت زیادی را برای خود به ارمغان بیاوریم. نا گفته نماند که مهمترین گزینه در Packet filter ها کانفیگ خوب آنهاست نه Brand یا مدل دستگاه. شما اگر با اصول Packet Filtering آشنایی داشته باشید بر روی هر سیستم عامل یا سخت افزاری تنها با آموختن Syntax آن میتوانید یک فایروال ایجاد کنید.
من در اینجا به توضیح قوائد آن در سیسکو میپردازم.
برای ایجاد access list شما نیاز به IOS های بالاتر از ورژن 8.3 دارید.
دو مرحله برای ایجاد یک access list داریم. اول میبایست ACL مربوطه را نوشته و دوم آن را به یک اینترفیس اعمال کنیم.
بدیهیست در صورت عدم اعمال ACL به یک اینترفیس ACL مذکور بلا استفاده می ماند.
پر کاربردترین ACL ها IP Access list است. زیرا اکثر ترافیکها بر روی پروتکل IP انتقال می یابد.
خود IP access list دو نوع است. Standard و Extended
Standard تنها بر اساس SOURCE IP address می تواند کنترل کند.
Extended بر حسب SOURCE and DESTINATION IP address و SOURCE and DESTINATION Port می تواند محدودیت ایجاد کند.
معمولا برای نام گذاری access list ها از اعداد استفاده میشود. که از شماره 1 تا 99 برای Standard و 100 تا 199   برای Extended استفاده میشود. البته اعداد 1300  تا 1999 برای Standard و 2000 تا 2699 برای Extended  رزرو شده اند.

قائده یک  Standard Access list بدین صورت است:


access-list access-list-number {permit|deny} {host|source source-wildcard|any}

یعنی در ابتدا میبایست عبارت access-list را تایپ نموده سپس یک شماره به آن اختصاص میدهیم و در آخر وظیفه آن که نابودی یا اجازه عبور یک پکت هست را مشخص میکنیم.

در مثال زیر میخواهیم تنها به یک رنج IP اجازه عبور از اینترفیس Ethernet0 را بدهیم.

ابتدا access list مورد نظر را می نویسیم

access-list 10 permit 192.168.20.0    0.0.0.255
access-list 10 deny any


سپس به یک اینترفیس اعمال میکنیم

interface ethernet0
ip access-group 10 in
exit


Extended access list ها را وقتی به کار میگیریم که نیاز به انعطاف بیشتری داریم. مثلا وقتی نیاز به فیلتر یک پورت خاص است.
قائده آن بدین صورت است:

access-list access-list-number {deny|permit} protocol source source-wildcard destination destination-wildcard [precedence precedence][tostos][log]


پس از عبارت access-list میبایست شماره آن را از همان رنج ذکر شده انتخاب کنیم .سپس action آن را که حذف یا عبور packet است را انتخاب کرده و آدرس مقصد و مبدا و همچنین پروتکل یا پورت آن را مشخص میکنیم.
برای نوشتن پروتکل ما مجاز به استفاده از پروتکل های زیر هستیم:

eigrp, gre, icmp, igmp, igrp, ip, ipinip, nos, ospf, tcp, or udp

همچنین می توان از یک keyword بین 0 تا 255 استفاده کرد که هر کدام بیانگر پروتکلی خاص است.
اگر ما عبارت ip را استفاده کنیم به عنوان تمامی پروتکل های IP شناخته میشود.
برای مشخص کردن هر آدرسی (any) نیز باید از عبارت 255.255.255.255 استفاده کرد.

Option های precedence و tos نیز دو ابزار اختیاریست که برای سرویس های خاص به کار می رود. که باید سرویس مورد نظر را با وارد کردن کد آن که precedence از 0 تا 7 و tos از 0 تا 15 مشخص شده اند را فعال کرد.
Log نیز یک ابزار اختیاری دیگر است که با فعال کردن آن میتوانیم از access list خود گزارش برداریم.

با مثالی بیشتر با Extended access list آشنا میشویم:


اجازه دسترسی سابنت 217.219.102.0/24 با آدرس 192.168.20.27 با هر پروتکلی

 access-list 105 permit ip 217.219.102.0   0.0.0.255   192.168.20.27   0.0.0.0


اجازه دسترسی آدرس 217.219.108.15 به سابنت 192.168.20.0/24 با هر پروتکلی

access-list 105 permit ip 217.219.108.15  0.0.0.0   192.168.20.0   0.0.0.255


اجازه دسترسی سابنت   10.0.0.0/24 به سابنت  172.22.18.0/24 تنها با پورت 23 (telnet)

access-list 105 permit tcp 10.0.0.0   0.255.255.255   172.22.18.0   0.0.0.255 eq 23


عدم اجازه دسترسی همه جا به همه جا روی پورت snmp که 161 است

access-list 105 permit udp any any eq 161


عدم اجازه پینگ (echo reply icmp type 0) از سابنت 172.12.0.0/16 به همه جا

access-list 105 deny icmp 172.12.0.0   0.0.255.255  any  0

عدم دسترسی کلیه packet های دیگر

access-list 105 deny ip any any

و در آخر اعمال آن به یک اینترفیس

interface serial0
ip access-group 105 out
exit

همانطور که میدانید ترتیب در access list ها مهم است.
به همین علت وقتی که لیست ACL ها را مشاهده میکنیم یک سری اعداد کنار آنها مینویسد که بیانگر اولویت آنهاست.
ما میتوانیم خود دستی آنها را وارد کنیم:

مثال 1:
ACL ما بدین صورت است

Router#show access-list
Extended IP access list 101
    10 permit tcp any any
    20 permit udp any any
    30 permit icmp any any

حال میخواهیم در ابتدای آن یک خط اضافه کنیم

Router#configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#ip access-list extended 101
Router(config-ext-nacl)#5 deny tcp any any eq telnet
Router(config-ext-nacl)#exit
Router(config)#exit
Router#

هم اکنون بدین صورت می شود.

Router#show access-list
Extended IP access list 101
    5 deny tcp any any eq telnet
    10 permit tcp any any
    20 permit udp any any
    30 permit icmp any any
Router#

مثال 2:

قبلا یکبار به آن یک خط اضافه کرده ایم. برای بار دوم چنین عمل میکنیم

routerB#show access-lists
Extended IP access list 101
    10 permit tcp any any
    15 permit tcp any host 172.162.2.9
    20 permit udp host 172.16.1.21 any
    30 permit udp host 172.16.1.22 any

routerB#configure terminal

Enter configuration commands, one per line.  End with CNTL/Z.
routerB(config)#ip access-list extended 101
routerB(config-ext-nacl)#18 per tcp any host 172.162.2.11
routerB(config-ext-nacl)#^Z


 ترتیب آن بدین صورت می شود:

routerB#show access-lists
Extended IP access list 101
    10 permit tcp any any
    15 permit tcp any host 172.162.2.9
    18 permit tcp any host 172.162.2.11
    20 permit udp host 172.16.1.21 any
    30 permit udp host 172.16.1.22 any
routerB#

نکته 1:
برای برداشتن یک access list میبایست همان ACL را تایپ نموده و در ابتدای سطر یک no قرار دهیم:

no access-list 105 deny ip any any

نکته2:
برای مشاهده ACL ها از دستور زیر استفاده میکنیم.

show access-list