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

بخش 1: ACL چیست؟ و چرا از آن استفاده می‌کنیم؟

1.1. تعریف ACL

ACL (Access Control List) مجموعه‌ای از قوانین و فیلترها است که برای کنترل ترافیک ورودی و خروجی روی روترها، سوئیچ‌ها و فایروال‌های سیسکو استفاده می‌شود.

✅ ACLها به ما کمک می‌کنند که:

  • دسترسی‌ها را محدود کنیم (مثلاً کاربران غیرمجاز را مسدود کنیم).
  • امنیت شبکه را افزایش دهیم (جلوگیری از حملات مانند DDoS).
  • کنترل ترافیک را انجام دهیم (فیلتر کردن ترافیک ناخواسته).
  • QoS (Quality of Service) را پیاده‌سازی کنیم (اولویت‌بندی ترافیک خاص).

1.2. نحوه عملکرد ACL

هنگامی که یک پکت (Packet) وارد یک روتر یا سوئیچ سیسکو می‌شود، ACL بررسی می‌کند که آیا این پکت اجازه عبور دارد یا باید مسدود شود.

🔹 ACL بر اساس قوانین زیر عمل می‌کند:

  1. از بالا به پایین بررسی می‌شود (اولین قانون مطابق با پکت اجرا می‌شود).
  2. در پایان هر ACL یک implicit deny any وجود دارد (هر چیزی که صراحتاً اجازه نداشته باشد، مسدود می‌شود).

بخش 2: انواع ACL در سیسکو

ACL در سیسکو چند نوع اصلی دارد که در ادامه بررسی می‌کنیم:

2.1. ACL استاندارد (Standard ACL)

🔹 این نوع ACL فقط بر اساس آدرس IP مبدا تصمیم‌گیری می‌کند.

🔹 فرمت دستورات:

access-list <ACL_Number> {permit | deny} <Source_IP> <Wildcard_Mask

🔹 مثال:

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

این ACL اجازه می‌دهد شبکه 192.168.1.0/24 عبور کند و بقیه را مسدود می‌کند.

🔹 اعمال ACL روی اینترفیس:

interface GigabitEthernet0/0
ip access-group 10 in

in یعنی ACL روی ترافیک ورودی اعمال می‌شود.

2.2. ACL گسترده (Extended ACL)

🔹 ACL گسترده کنترل بیشتری دارد و می‌تواند IP مبدا و مقصد، پروتکل‌ها و پورت‌ها را بررسی کند.

🔹 فرمت دستورات:

access-list <ACL_Number> {permit | deny} <Protocol> <Source_IP> <Wildcard_Mask> <Destination_IP> <Wildcard_Mask> [Port]

🔹 مثال:

access-list 101 permit tcp 192.168.1.0 0.0.0.255 any eq 80
access-list 101 deny ip any any

این ACL فقط به شبکه 192.168.1.0/24 اجازه دسترسی به اینترنت از طریق پورت 80 (HTTP) را می‌دهد.

🔹 اعمال ACL روی اینترفیس:

interface GigabitEthernet0/0
ip access-group 101 in

2.3. ACL نام‌گذاری‌شده (Named ACL)

🔹 ACL نام‌گذاری‌شده همان ACL گسترده یا استاندارد است، اما با یک نام مشخص، خوانایی بیشتری دارد.

🔹 فرمت دستورات:

<ip access-list {standard | extended} <ACL_Name

🔹 مثال:

ip access-list extended WEB-TRAFFIC
permit tcp any any eq 80
deny ip any any

🔹 اعمال ACL روی اینترفیس:

interface GigabitEthernet0/0
ip access-group WEB-TRAFFIC in

مزیت ACL نام‌گذاری‌شده این است که می‌توان آن را به‌راحتی ویرایش کرد.


بخش 3: پیکربندی ACL در موقعیت‌های مختلف

3.1. استفاده از ACL برای امنیت و فیلتر کردن دسترسی

🔹 مثال: مسدود کردن دسترسی کاربران به یک سرور خاص

access-list 105 deny ip any host 192.168.1.100
access-list 105 permit ip any any

🔹 مثال: فقط اجازه دسترسی به سرور از یک IP خاص

access-list 110 permit ip host 10.0.0.10 host 192.168.1.100
access-list 110 deny ip any host 192.168.1.100

3.2. استفاده از ACL برای NAT

🔹 مثال: اجازه دادن به NAT فقط برای یک شبکه خاص

access-list 120 permit ip 192.168.1.0 0.0.0.255 any
ip nat inside source list 120 interface GigabitEthernet0/0 overload

در این مثال فقط شبکه 192.168.1.0/24 اجازه ترجمه NAT را دارد.

3.3. استفاده از ACL برای VPN

🔹 مثال: اجازه دادن به ترافیک VPN Site-to-Site بین دو شبکه

access-list VPN-TRAFFIC permit ip 10.0.0.0 0.0.0.255 192.168.2.0 0.0.0.255
crypto map VPN-MAP 10 match address VPN-TRAFFIC

این ACL مشخص می‌کند که فقط ترافیک بین 10.0.0.0/24 و 192.168.2.0/24 از طریق VPN عبور کند.

3.4. استفاده از ACL برای QoS (کنترل کیفیت سرویس)

🔹 مثال: اولویت دادن به ترافیک VoIP در شبکه

access-list VOIP-TRAFFIC permit udp any any range 16384 32767
class-map match-all VOIP
match access-group name VOIP-TRAFFIC
policy-map QOS
class VOIP
priority 1000

این پیکربندی باعث می‌شود ترافیک VoIP دارای اولویت بیشتری در شبکه باشد.

بخش 4: ACLهای پیشرفته در سیسکو

در این بخش، به بررسی انواع پیشرفته ACL در سیسکو می‌پردازیم که شامل:
Reflexive ACL – ACL بازتابی برای امنیت بالاتر
Dynamic ACL – ACL پویا برای کنترل بهتر دسترسی‌ها
Time-Based ACL – ACL زمان‌بندی‌شده برای محدود کردن دسترسی‌ها در بازه‌های خاص


4.1. Reflexive ACL (ACL بازتابی)

🔹 Reflexive ACL نوعی ACL دینامیک است که به‌طور خودکار ترافیک مجاز را در مسیر برگشت اجازه می‌دهد. این نوع ACL برای افزایش امنیت فایروال و جلوگیری از حملات مفید است.

🔹 مثال: اجازه دسترسی به ترافیک خروجی و برگشتی

ip access-list extended OUTBOUND
permit tcp 192.168.1.0 0.0.0.255 any reflect MY-SESSION
permit udp 192.168.1.0 0.0.0.255 any reflect MY-SESSION

ip access-list extended INBOUND
evaluate MY-SESSION
deny ip any any

🔹 اعمال ACL روی اینترفیس:

interface GigabitEthernet0/0
ip access-group OUTBOUND out
ip access-group INBOUND in

توضیح:

  • ACL OUTBOUND اجازه ارسال ترافیک TCP/UDP را می‌دهد و بازتاب (Reflect) می‌کند.
  • ACL INBOUND بررسی می‌کند که آیا ترافیک برگشتی از قبل مجاز بوده یا نه.
  • اگر ترافیک برگشتی در لیست MY-SESSION باشد، اجازه ورود می‌گیرد.

4.2. Dynamic ACL (ACL پویا یا Lock-and-Key)

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

🔹 مثال: تنظیم ACL پویا برای احراز هویت کاربران

aaa new-model
aaa authentication login MYAUTH local

username admin password mysecurepass

ip access-list extended DYNAMIC-ACCESS
deny ip any any

interface GigabitEthernet0/0
ip access-group DYNAMIC-ACCESS in

🔹 فعال‌سازی اتصال پویا از طریق Telnet یا SSH:

line vty 0 4
login authentication MYAUTH
autocommand access-enable host timeout 10

توضیح:

  • فقط کاربران احراز هویت‌شده می‌توانند از ACL عبور کنند.
  • اتصالات پس از 10 دقیقه به‌صورت خودکار بسته می‌شوند.

4.3. Time-Based ACL (ACL مبتنی بر زمان)

🔹 ACL زمان‌بندی‌شده برای مدیریت دسترسی‌ها در بازه‌های خاص زمانی استفاده می‌شود. به عنوان مثال، می‌توان دسترسی به اینترنت را در ساعات کاری محدود کرد.

🔹 ایجاد یک بازه زمانی:

ip access-list extended INTERNET-ACCESS
permit tcp any any eq 80 time-range WORK-HOURS
permit tcp any any eq 443 time-range WORK-HOURS
deny ip any any

🔹 ایجاد ACL که فقط در ساعات کاری فعال باشد:

ip access-list extended INTERNET-ACCESS
permit tcp any any eq 80 time-range WORK-HOURS
permit tcp any any eq 443 time-range WORK-HOURS
deny ip any any

توضیح:

  • کاربران فقط در ساعات 08:00 - 18:00 اجازه استفاده از اینترنت را دارند.
  • در سایر زمان‌ها، ترافیک مسدود می‌شود.

بخش 5: مدیریت و بهینه‌سازی ACL در شبکه‌های بزرگ

🔹 در شبکه‌های بزرگ، مدیریت ACL بهینه بسیار مهم است. در این بخش، روش‌هایی برای بهبود عملکرد و امنیت ACL ارائه می‌دهیم.

5.1. نکات حرفه‌ای برای مدیریت ACL

1. ACLها را همیشه مستند کنید

  • برای خوانایی بهتر، از توضیحات (remark) در ACLها استفاده کنید.

access-list 101 remark "این ACL فقط ترافیک HTTP و HTTPS را مجاز می‌کند"

2. قوانین ACL را بهینه‌سازی کنید

  • پرکاربردترین قوانین را در ابتدای لیست ACL قرار دهید.
  • قوانین اضافی و غیرضروری را حذف کنید تا عملکرد بهتری داشته باشید.

3. همیشه لاگ‌گیری را فعال کنید

  • برای بررسی فعالیت‌های مشکوک، لاگ‌های ACL را بررسی کنید.

access-list 105 deny ip any any log

4. بررسی کنید که ACLها به درستی روی اینترفیس اعمال شده‌اند

show ip interface GigabitEthernet0/0

5. برای هر ACL یک شماره یا نام خاص در نظر بگیرید

ip access-list extended PROTECT-SERVER

بخش 6: عیب‌یابی (Troubleshooting) ACL در سیسکو

🔹 گاهی ممکن است ACL آن‌طور که انتظار دارید کار نکند. در اینجا برخی مشکلات رایج و روش‌های حل آن‌ها آورده شده است.

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

راه‌حل:

  • بررسی کنید که ACL به درستی روی اینترفیس اعمال شده باشد.

show run interface GigabitEthernet0/0

بررسی کنید که ACL قوانین لازم را در ابتدا دارد.

6.2. مشکل: ACL باعث عدم دسترسی به اینترنت شده است

راه‌حل:

  • بررسی کنید که NAT پس از ACL اجرا می‌شود.

show ip nat translations

بررسی کنید که ACL اجازه DNS، HTTP و HTTPS را می‌دهد.

6.3. مشکل: ACL لاگ نمی‌گیرد

راه‌حل:

  • مطمئن شوید که log در ACL فعال شده است.

access-list 110 deny ip any any log

  • از دستور debug برای بررسی استفاده کنید.

debug ip packet detail

بخش 7: نتیجه‌گیری و خلاصه مقاله

در این مقاله، ACL را از سطح مبتدی تا پیشرفته بررسی کردیم:

  • انواع ACL (استاندارد، گسترده، نام‌گذاری‌شده، پیشرفته)
  • نحوه اعمال ACL روی اینترفیس‌ها
  • ACLهای خاص مانند Reflexive، Dynamic و Time-Based
  • استفاده از ACL در NAT، VPN، و QoS
  • نکات بهینه‌سازی و عیب‌یابی ACL

🔹 اکنون شما مهارت کامل در نوشتن و مدیریت ACL در سیسکو دارید! 🚀
🔹 اگر سوالی دارید یا به پیکربندی خاصی نیاز دارید، بپرسید! 😊

پاسخی بگذارید

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