ACL یا Access Control List (لیست کنترل دسترسی) در شبکههای کامپیوتری، یک مکانیزم برای مدیریت دسترسی به منابع شبکه و کنترل ترافیک شبکه است. ACLها به مدیران شبکه اجازه میدهند تا بتوانند ترافیک شبکه را بر اساس قوانین و مقررات خود مدیریت کنند. ACLها به صورت لیستهای ساخته شده از قواعد، هر کدام با یک مجموعه از شرایط (مثلاً آدرس IP، پورت و ...) و عملیاتهای (مثل مجاز یا غیرمجاز کردن ترافیک) تعریف میشوند.
در سیسکو، برای تنظیم ACLها از دو دسته دستورات استفاده میشود: دستورات Standard ACL و دستورات Extended ACL.
Standard ACL: - برای تعیین یا محدود کردن ترافیک بر اساس آدرس IP مبدا استفاده میشود.
- مثال:
```
access-list 10 permit 192.168.1.0 0.0.0.255
access-list 10 deny any
```
در این مثال، ACL با شماره 10 اجازه داده است که ترافیک از آدرسهای IP 192.168.1.0 تا 192.168.1.255 عبور کند و برای هر آدرس دیگر اجازه عبور نداده است.
Extended ACL: - برای تعیین یا محدود کردن ترافیک بر اساس انواع مختلفی از اطلاعات مانند آدرس IP مبدا و مقصد، پورتها، پروتکلها و ...
- مثال:
```
access-list 100 permit tcp host 192.168.1.2 host 10.0.0.1 eq 80
access-list 100 deny ip any any
```
در این مثال، ACL با شماره 100 اجازه داده است که ترافیک از آدرس IP 192.168.1.2 به آدرس IP 10.0.0.1 و با استفاده از پورت 80 (برای HTTP) عبور کند و برای ترافیک همهی دیگر، اجازه عبور نداده است.
ACLها به شبکهها امنیت اضافه میکنند و میتوانند برای ایجاد سیاستهای دسترسی به منابع شبکه و کنترل ترافیک به کار روند.
موقعیتهای وایلدکارد (Wildcard Masks):
وقتی شما یک ACL (لیست کنترل دسترسی) ایجاد میکنید، میتوانید موقعیتهای وایلدکارد (wildcard masks) را برای تطابق آدرسهای IP مورد نظر استفاده کنید. این موقعیتها به شما اجازه میدهند آدرسها را به صورت عمومی و با ماسکهای وایلدکارد مشخص کنید.
- وایلدکارد 0.0.0.0: این موقعیت به معنای تطابق دقیق با یک آدرس IP خاص است.
- وایلدکارد 255.255.255.255: این موقعیت به معنای تطابق با همهی آدرسهای IP است.
- وایلدکارد 0.0.0.255: این موقعیت به معنای تطابق با آدرسهای IP در همان شبکه است و آخرین بایت (آخرین 8 بیت) آدرسها را نادیده میگیرد.
مثال:
- `192.168.1.0 - 0.0.0.255` نشاندهندهی تمام آدرسهای IP در شبکهی 192.168.1.0 با طول پیشوند 24 بیت (یعنی اعتبار دارند تا بیتهای اول سه بایت) میباشد.
Implicit Deny و Explicit Deny:
- Implicit Deny: وقتی که یک ACL را ایجاد میکنید و در آن هیچ قانونی تطابق نکند، به صورت پیشفرض (ضمنی) همیشه یک عملیات Explicit Deny دارید. این به معنای این است که اگر ترافیک با هیچ یک از قوانین ACL تطابق نکند، آن ترافیک مسدود خواهد شد.
- Explicit Deny: این نوع Deny به صورت صریح توسط شما تعریف میشود. شما میتوانید تعیین کنید که چه ترافیکی از قوانین ACL منع شود. مثال:
```
access-list 10 deny host 192.168.1.2
```
در این مثال، ترافیک با آدرس IP 192.168.1.2 به صورت صریح مسدود میشود.
IP و Host:
- IP: وقتی از IP استفاده میکنید، شما یک آدرس IP خاص را مشخص میکنید. مثلا:
```
access-list 10 permit 192.168.1.1
```
- Host: وقتی از Host استفاده میکنید، به صورت دقیق یک آدرس IP خاص را مشخص میکنید. مثلا:
```
access-list 10 permit host 192.168.1.1
```
در این مثال، تنها آدرس IP 192.168.1.1 تطابق دارد و سایر بخشهای شبکه نادیده گرفته میشوند.
Port:
- برای تنظیم ACL برای ترافیک براساس پورتها (مانند پورت 80 برای HTTP یا پورت 22 برای SSH) از دستورات مشابه استفاده میکنید. مثلا:
```
access-list 100 permit tcp any any eq 80
```
در این مثال، ترافیک TCP با پورت مقصد 80 (برای HTTP) اجازه عبور دارد.
با استفاده از این عناصر، میتوانید ACLهای خود را برای کنترل ترافیک شبکه براساس نیازهای خود تنظیم کنید.
در ACLهای استاندارد و ACLهای توسعه یافته (Extended ACL) در سیسکو، شمارههای معینی برای هر نوع ACL وجود دارد. این شمارهها در دو بازه تعریف شدهاند:
1. ACLهای استاندارد:
- ACLهای استاندارد از شماره 1 تا 99 تعریف میشوند.
2. ACLهای توسعه یافته (Extended ACL):
- ACLهای توسعه یافته از شماره 100 تا 199 و همچنین از شماره 2000 تا 2699 تعریف میشوند.
از این بازههای شمارهگذاری استفاده میشود تا ACLها را به راحتی از یکدیگر تفکیک کرد و برای ترتیب و مدیریت ACLها در دستگاههای سیسکو از آنها استفاده میشود.
ترمینولوژیهای مرتبط با ACL (لیست کنترل دسترسی) در شبکهها عبارتند از:
1. ACL (Access Control List):
لیست کنترل دسترسی یا ACL به عنوان یک مکانیزم برای مدیریت دسترسی به منابع شبکه و کنترل ترافیک شبکه استفاده میشود.
2. Entry (قانون یا مورد):
هر مورد یا قانون در یک ACL شامل شرایط و اعمالی است که ترافیک باید با آن تطابق داشته باشد.
3. Implicit Deny:
این عبارت به معنای عدم اجازه عبور ترافیک بدون تطابق با هیچ یک از قوانین یک ACL است. این عمل به صورت پیشفرض وجود دارد.
4. Explicit Deny: این عبارت به معنای اجازه عبور ترافیک از قوانینی که به صورت صریح توسط مدیر تعریف شدهاند، است.
5. Standard ACL:
ACL استاندارد که بر اساس آدرسهای IP مبدا تعیین میشود.
6. Extended ACL:
ACL توسعه یافته که از عناصر گوناگونی مانند آدرسهای IP مبدا و مقصد، پورتها و پروتکلها برای تنظیم دسترسی استفاده میکند.
7. Wildcard Mask:
ماسک وایلدکارد که برای تعیین تطابق عنوانهای IP با موقعیتهای وایلدکارد در ACL استفاده میشود.
8. Permit:
اجازه عبور ترافیک از طریق ACL برای تطابقهای معین.
9. Deny:
مسدود کردن ترافیک برای تطابقهای معین در ACL.
10. Host:
استفاده از "host" به معنای تطابق دقیق با یک آدرس IP خاص در ACL استفاده میشود.
11. IP:
این عنصر به معنای تطابق با آدرسهای IP در ACL استفاده میشود.
12. Port:
برای تعیین تطابق بر اساس پورتهای مختلف مانند پورت 80 (برای HTTP) یا پورت 22 (برای SSH) در ACL استفاده میشود.
این ترمینولوژیها به مدیران شبکه کمک میکنند تا ACLها را برای کنترل دسترسی به منابع شبکه تنظیم کرده و ترافیک شبکه را مدیریت کنند.
در ACL (لیست کنترل دسترسی)ها، دستورات اجرا بر اساس اولویت و اولویتبندی ترتیبی درج میشوند. به طور کلی، دستورات از بالا به پایین در ACL بررسی میشوند و اگر ترافیک با یک دستور تطابق کند، عملیات مربوط به آن دستور اجرا میشود و بقیه دستورات بررسی نمیشوند.
در ACLها، دستورات به دو نوع اصلی تقسیم میشوند:
1. Permit (اجازه):
این دستور به معنای اجازه عبور ترافیک میباشد. اگر ترافیک با یک دستور Permit تطابق کند، اجازه عبور داده میشود.
2. Deny (ممنوع):
این دستور به معنای ممنوع شدن عبور ترافیک میباشد. اگر ترافیک با یک دستور Deny تطابق کند، ترافیک مسدود میشود.
در مورد اجرای دستورات، اولویتها به صورت زیر تعیین میشوند:
1. اجازهها (Permit) از بالا به پایین اجرا میشوند. یعنی دستورهای Permit در قسمت بالای ACL ابتدا اجرا میشوند.
2. ممنوعها (Deny) از بالا به پایین اجرا میشوند. یعنی دستورهای Deny در قسمت بالای ACL ابتدا اجرا میشوند.
از این روند ترتیبی اجرای دستورات در ACL میتوان برای تعیین سیاستهای دسترسی و کنترل ترافیک در شبکه استفاده کرد. ترتیب و اولویتدهی در ACL مهم است تا سیاستهای دقیق و مورد نیاز برای شبکه تعیین شود.