CCNAآموزش شبکه

آموزش CCNA : آموزش ACL در سیسکو

مدیریت ترافیک شبکه Cisco

ACL در ios سیسکو برای مدیریت کردن ترافیک شبکه مورد استفاده قرار میگیرد. زمانیکه شما ترافیک یک شبکه رو مشخص میکنید میتوانید آنرا به روش های گوناگونی مدیریت کنید برای مثال شما میتوانید به آن اجازه، رد، محدود یا آز آن برای محدود کردن به روز شدن مسیر یابی Routing Update استفاده نمایید.

اکسس لیست ها یا بطور مختصر ACL ، در واقع یکسری قواعد و دستورات می باشند که بطور معمول برای کنترل ترافیک شبکه مورد استفاده قرار می گیرند. از Access List ها در دستگاه هایی مانند روترها یا فایروال ها که قابلیت فیلترینگ پکت ها را بر عهده دارند مورد استفاده قرار می گیرد. دستورات و قواعد اکسس لیست معمولا بر روی اینترفیس ها اعمال می شود چرا که پکت ها از را اینترفیس ها به شبکه وارد می شوند و یا از آن خارج می گردند.

در اینجا برای اینکه شما با مفهوم ACL بیشتر آشنا شوید،با یک مثال آن را توضیح می دهیم.به شکل زیر توجه کنید:

آشنایی با Access List یا ACL در سیسکو
آشنایی با Access List یا ACL در سیسکو

بیائید اینگونه در نظر بگیریم که سرور S1 ، یک سرور حاوی اسناد و اطلاعات مهم می باشد که فقط دسترسی به این اطلاعات برای مدیران شرکت مجاز است. ما می توانیم با استفاده از دستورات اکسس لیست به شکلی روتر R1 را پیکربندی کنیم که فقط ترافیک هایی که از سمت شبکه Management به سمت سرور ارسال می شوند اجازه عبور داشته باشند و در غیر اینصورت مابقی ترافیک ها بلاک شوند. این مسئله باعث می شود که ما مطمئین شویم تنها کاربرانی که احراز هویت شده اند می توانند به S1 دسترسی داشته باشند.

بطور کلی ACL ها به دوسته تقسیم می شوند :

اکسس لیست های استاندارد : با استفاده از این اکسس لیست ها شما فقط قادر خواهید بود پکت ها را از سمت Source IP Address فیلتر نمایید. این دسته از ACL ها زیاد کاربردی و قوی نمی باشند اما پردازش کمتری را بر روتر تحمیل می کنند.

باز هم بهتر است تا با استفاده از یک مثال مفهوم Standard Access List را تشریح کنیم. به شکل زیر توجه کنید:

آشنایی با Access List یا ACL در سیسکو
آشنایی با Access List یا ACL در سیسکو

این مثال همان مثال قبلی می باشد که در بالا آن را توضیح دادیم. همانطور که مشاهده می کنید ما ترافیک هایی را که از سمت شبکه های خارج از روتر به روتر وارد می شوند فیلتر می کنیم. یعنی در واقع همان آدرس های IP از مبدا. در اینجا ما آدرس هایی را که به روتر وارد می شوند مورد بررسی قرار داده و تنها آدرس هایی حق عبور دارند که از سمت شبکه Management باشند.

اکسس لیست های Extended : با استفاده از Extended Access List شما قادر خواهید بود تا با دقت و جزئیات بیشتری فیلترینگ را انجام دهید. در این حالت شما می توانید آدرس منبع و مقصد را مورد ارزیابی قرار دهید و همینطور پورت های منبع و مقصد را. پیکربندی این دسته از اکسس لیست ها کمی سخت تر می باشد و پردازش بیشتری را به روتر تحمیل خواهد کرد ، اما به شما این امکان را می دهد تا سطح بیشتری از کنترل را اعمال کنید.

باز هم به سراغ یک مثال می رویم :

آشنایی با Access List یا ACL در سیسکو
آشنایی با Access List یا ACL در سیسکو

در مثال قبلی ما با استفاده از اکسس لیست استاندارد موفق شدیم تا دسترسی کاربران به سرور S1 را بلاک کنیم. اما اگر در شبکه دو سرور داشته باشیم با این کار اجازه دسترسی از سرور S2 را نیز بلاک خواهیم کرد. در اینجا باید از Extended Access List استفاده کنیم و طوری آن را پیکربندی کنیم که اجازه دسترسی به S1 را بلاک کند ولی اجازه دسترسی به S2 را بدهد.

آشنایی با Access List یا ACL در سیسکو
آشنایی با Access List یا ACL در سیسکو

در کل دو نوع Access List در شبکه داریم که با شماره‌ های مختلف مشخص شده‌ اند.

  • Access List استاندارد با شماره‌ های 1 تا 99 و 1300 تا 1999
  • Access List  پیشرفته (Extended) با شماره های 100 تا 199 و 2000 تا 2699

آشنایی با لیست های دسترسی مجاز

لیست های دسترسی مجاز (یا Access Control List) یکسری قانون بوده که با استفاده از آنها می توان پکت های تبادل شده در روتر را مورد بررسی و نظارت قرار داد. به عنوان مثال با استفاده از ACL میتوان مشخص کرد تا تنها پکت هایی به سمت شبکه وارد شوند که دارای آدرس مبدا و یا آدرس پورت خاصی باشند. ACLها بیشتر شبیه به دستورات شرطی بوده که با استفاده از آنها می توان یکسری تصمیمات خاصی را برای پکت ها اتخاذ نمود. به عنوان مثال می توان مشخص کرد که اگر پکت هایی با آدرس مبدا 54.52.10.20 به سمت شبکه شما ارسال شد، آنها را Drop کرد و درغیراینصورت اجازه ارسال و دریافت به پکتها داده شود.

به بیانی دیگر ACLها همانند یک صافی عمل کرده و تنها پکت هایی از این صافی ها عبور میکنند که دارای یکسری شرایط خاص باشند.

در هنگامی که پکت ها با ACLها مقایسه میشوند، سه موضوع توسط روتر بررسی می شود:

  1. پکت ها با تک تک ACLها به صورت ترتیبی مقایسه میشوند.
  2. پکت ها تا زمانی با ACLها مقایسه میشوند که با یکی از آنها مطابقت پیدا کند. توجه داشته باشید که به محض برقراری شرط، عملیات مقایسه با سایر ACLها متوقف خواهد شد.
  3. در انتهای هر ACL یک دستور Drop به صورت انتزاعی قرار دارد و باعث می شود تا اگر که هیچ یک از ACLها با پکت مطابقت پیدا نکند، پکت Drop شود.

لیست های دسترسی دارای نام (یا Named ACL): یک نوع دیگر از ACLها وجود دارد که Named ACL نامیده می شوند. در حقیقت این دسته از ACLها می توانند هم از نوع استاندارد و یا از نوع Extended باشند. از آنجایی که برای فراخوانی این دسته از ACLها از روشی دیگر نسبت به سایر ACLها استفاده می شود، Named ACL نامیده شده اند وگرنه از لحاظ عملکردی با سایر ACLها تفاوتی ندارند.

هنگامی که یک ACL در روتر تعریف شد، هیچ فیلتری برروی پکتها اعمال نمی شود تا زمانی که ACLها برروی پورت های روتر اعمال شود و اینکه مشخص گردد که ACLها برروی ترافیک های خروجی و یا ورودی اعمال گردند. پس با توجه به این موضوع مسیر جریان های هر اینترفیس، به دو دسته تقسیم می شود که شامل:

ترافیک های لبه ورودی (یا Inbound): در این حالت روتر قبل از اینکه اقدام به مسیریابی پکت ها کند، شرط های ACL را مورد بررسی قرار می دهد و در صورتی که شرایط مشخص شده در ACL برقرار گردید، عملیات مسیریابی پکت ها صورت میپذیرد.

ترافیک های لبه خروجی (یا Outbound): در این حالت روتر بعد از اینکه عملیات مربوط به مسیریابی پکت را انجام داد، قبل از اینکه پکت به سمت خارج هدایت شود، شرط های ACL را مورد بررسی قرار میدهد و در صورتی که شرایط مشخص شده در ACL برقرار گردید، عملیات مسیریابی پکت ها صورت میپذیرد.

در هنگام استفاده از ACLها باید چند نکته را مدنظر قرار دهید که در ادامه این موارد را مورد بررسی قرار داده ایم:

  • تنها یک ACL را می توان برروی ترافیک های Inbound و یک ACL برروی ترافیک های Outbound تعریف کنید.
  • ACLها را به نحوی تعریف کنید که فیلترهای کلی در ابتدای لیست قرار داشته باشند و فیلترهای جزئی در انتهای لیست.
  • شرط های ACL را نمی توان تغییر داد و در صورت نیاز باید کل ACL را حذف کرده و مجددا آن را ایجاد نمایید. ACLهایی که از نوع Named هستند از این قانون مستثنی هستند.
  • در صورتی که در اتنهای ACL از دستور permit any استفاده نشود و پکت ها با شرط های مشخص شده مطابقت نداشته باشد، پکت دور ریخته (Drop) خواهد شد.
  • ACLها تنها به ترافیک هایی اعمال خواهد شد که از روتر عبور میکنند، پس درنتیجه ترافیک هایی که از روتر تولید و ارسال می شوند با ACLها محدود نخواهند شد.
  • ACLهایی که از نوع Standard هستند را تا حد ممکن برروی روترهای نزدیک به مقصد تعریف کنید، چرا که این دسته از ACLها تنها قادر به فیلتر کردن آدرس مبدا و مقصد هستند.
  • ACLهایی که از نوع Extended هستند را تا حد ممکن برروی روترهای نزدیک به مبدا تعریف کنید، چرا که با استفاده از این دسته از ACLها میتوان جزئیات بیشتری از پکت ها را مورد بررسی قرار داد و فیلترهای بیشتری را اعمال نمود. این موضوع باعث می شود تا ترافیک های قرار گرفته برروی لینک به حداقل ممکن برسد و از پهنای باند استفاده موثر گردد.

موارد دیگر استفاده از ACL ها:

علاوه بر فعالیت اصلی ACLها که فیلتر کردن ترافیک‌های انتقالی در شبکه است از آن‌ها در موارد دیگر نیز می‌توان استفاده کرد. برای نمونه چند کاربرد عمده آن‌ها عبارتند از:

  • محدود کردن دسترسی از طریق VTY TELNET
  • فیلتر کردن اطلاعات routing
  • اولویت‌بندی ترافیک مربوط به WAN
  • تغییر پارامتر Administrative distance
  • برقراری تماس‌های تلفنی (DDR‏) Dial-Demand Routing

Access List استاندارد:

این نوع از Access List ها از شماره‌ های ذکرشده در بالا استفاده می‌ کنند و فقط ترافیک‌ های مربوط به مبدأ را مورد بررسی قرار می‌ دهند. با نحوه ی کار این Access List  آشنا می‌ شویم.

Deny: این دستور در access List برای جلوگیری از دسترسی یک Node خاص به یک شبکه ی دیگر است که بسیار پر کاربرد و خطرناک است، به دلیل اینکه با یک اشتباه، نصف یا کل شبکه از کار می‌ افتد.

Permit: این دستور ضد دستور Deny است و برای دسترسی به شبکه کاربرد دارد.

در این مثال می‌ خواهیم از دسترسی pc1 به Pc3 و Pc4 جلوگیری کنیم.

آموزش کانفیگ Access List یا ACL در سیسکو
آموزش کانفیگ Access List یا ACL در سیسکو

ما میخواهیم سناریوی بالا را پیاده سازی بکنیم، در این سناریو میخواهیم دسترسی به سرور را محدود کنیم.

تنظیمات اولیه هر یک از روتر های به شکل زیر می باشد:

کانفیگ روتر R1:

R1(config)#interface fastEthernet 0/0
R1(config-if)#no shutdown
R1(config-if)#ip address 192.168.254.1 255.255.255.0
R1(config-if)#interface fastEthernet 0/1
R1(config-if)#ip address 192.168.1.1 255.255.255.0
R1(config-if)#no shutdown
R1(config-if)#ip route 192.168.2.0 255.255.255.0 fastEthernet 0/0

کانفیگ روتر R2:

R2(config)#interface fastEthernet 0/0
R2(config-if)#no shutdown
R2(config-if)#ip address 192.168.254.2 255.255.255.0
R2(config-if)#interface fastEthernet 0/1
R2(config-if)#ip address 192.168.2.1 255.255.255.0
R2(config-if)#no shutdown
R2(config-if)#ip route 192.168.1.0 255.255.255.0 fastEthernet 0/0

نکته: بهترین جا برای نوشتن Access List استاندارد نزدیک ترین نقطه به مقصد مورد نظر است، برای مثال در شکل بالا بهترین جا برای نوشتن Access List استاندارد برای عدم دسترسی PC1 به سرور ، روتر R2 اینترفیس fastEthernet 0/1 می باشد.

با دستور زیر در روتر R2 ما دسترسی از هاست Pc1 به سرور رو بر روی اینترفیس f0/1 محدود کردیم، به این صورت که تمام ترافیکی که مبدا PC1 را با ای پی 192.168.1.10 دارند که در access-list شماره 1 قرار دارند deny شوند.

R2(config)#access-list 1 deny host 192.168.1.10

سپس با دستور زیر access-list 1 را برای اینترفیس fastEthernet 0/1 در مسیر out آن قرار دادیم، یعنی هر هاستی که در access-list 1 یا همان access-group 1 ما قرار دارد اجازه خارج شدم از اینترفیس fastEthernet 0/1 در روتر R2 را ندارد.

R2(config)#interface fastEthernet 0/1
R2(config-if)#ip access-group 1 out

نکته بسیار مهم: بعد از نوشتن هر access-list یک access-list به صورت deny any به اخر آن اظافه می شود که در این سناریو اگر از PC2 و PC3 نیز Server و PC5 و PC6 را ping بگیریم تمام بسته های ما deny می شود. پس برای رفع این مشکل از دستور زیر استفاده می کنیم:

R2(config)#access-list 1 permit any

با اضافه کردن permit any به access-list 1 ما اجازه عبور دیگر بسته ها را بجز مبدا مورد نظر می دهیم.

اکسس لیست های Extended

با دستورات بالا تمام ارتباط PC1 با Server و PC5 و PC6  نیز قطع شده است در صورتی که ما فقط میخواستیم دسترسی به Server را قطع کنیم، این کار با استفاده از Access List استاندارد شدنی نیست و باید از Extended ها استفاده کنیم.

برای این که لازم نباشه سناریو خود را تغییر دهیم فقط Access List قبلی رو با دستور زیر پاک می کنیم:

R2(config-if)#no ip access-group 1 out

نکته: برای نوشتن Extended ها برعکس Standard بهتر است بر روی نزدیک ترین اینترفیس به مبدا نوشته شود که در این سناریو روتر R1 اینترفیس fastEthernet 0/1 می باشد. دلیل همچین کاری هم درگیر نکردن و اضافه نکردن بار پرداز الکی به دیگر دستگاه ها و روتر های مسیر می باشد.

حالا می خواهیم به کمک Extended فقط جلوی دسترسی PC1 رو به سرور بگیریم و با دیگر دستگاه ها امکان برقراری ارتباط داشته باشد:

در مرحله اول یک extended با نام دلبخواه به اسم PC1 ساختیم

R1(config)#ip access-list extended PC1

حالا دسترسی ادرس PC1 که 192.168.1.10 بود را به سرور خود که 192.168.2.20 است deny کردیم

R1(config-ext-nacl)#deny ip host 192.168.1.10 host 192.168.2.20

و با دستور زیر اجازه دسترسی به دیگر دستگاه ها رو دادیم

R1(config-ext-nacl)#permit ip any any

حال کافی بر روی اینترفیس مورد نظر این اکسس لیست رو معرفی کنیم، ما این کار را بر روی in یا ترافیک ورودی نوشتیم

R1(config)#interface fastEthernet 0/1
R1(config-if)#ip access-group PC1 in

اگه شما دستور زیر را وارد کنید اطلاعات جدول access-lists PC1 را مشاهده می کنید

R1#show ip access-lists PC1

show ip access-lists
show ip access-lists

اگه به تصویر بالا نگاه کنید دوتا عدد پشت دستورات نوشته شده می بینید، این اعداد ترتیب اعمال فیلتر نوشته شده هستن یعنی هرچی کمتر و بالانر باشند اول از همه اعمال می شود و سپس مورات پایین تر برسی می شود.

با تعریفی که الان کردیم ما میخواهیم به PC1 اجازه عبور Telnet را بدیم، پس مانند زیر عمل می کنیم:

R1(config)#ip access-list extended PC1
R1(config-ext-nacl)#5 permit tcp host 192.168.1.10 host 192.168.2.20 eq telnet

و اگه دوباره show ip access-lists PC1 بگیریم میبینم که یک فیلتر با عدد 5 بالاتر از باقی موارد قرار گرفته است.

show ip access-lists
show ip access-lists

 

بعضی از Commands های پر کاربرد در Access List

clear access-list ipv4

clear access-list ipv6

copy access-list ipv4

copy access-list ipv6

deny (IPv4)

deny (IPv6)

ipv4 access-group

ipv4 access-list

ipv4 access-list log-update rate

ipv4 access-list log-update threshold

ipv6 access-group

ipv6 access-list

ipv6 access-list log-update rate

ipv6 access-list log-update threshold

ipv6 access-list maximum ace threshold

ipv6 access-list maximum acl threshold

permit (IPv4)

permit (IPv6)

remark (IPv4)

remark (IPv6)

resequence access-list ipv4

resequence access-list ipv6

show access-lists afi-all

show access-lists ipv4

show access-lists ipv6

Shares:

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

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