لیست‌های کنترل دسترسی: فیلترکردن ترافیک روی روترهای سیسکو

لیست‌های کنترل دسترسی به یک روتر یا سوئیچ اجازه می‌دهند به‌طور انتخابی ترافیک را بر اساس اطلاعات منبع، مقصد، و پروتکل مجاز یا مسدود کنند، و پایه امنیت پایه شبکه و فیلترینگ ترافیک را تشکیل می‌دهند. این مقاله توضیح می‌دهد ACL ها چگونه ترافیک را به‌ترتیب پردازش می‌کنند، تفاوت بین ACL های استاندارد و توسعه‌یافته را پوشش می‌دهد، محاسبه ماسک wildcard را مرور می‌کند، و قوانین حیاتی مکان‌گذاری که تعیین می‌کنند آیا یک ACL همان‌طور که مورد نظر بود کار می‌کند را توضیح می‌دهد.

لیست کنترل دسترسیماسک Wildcardمکان‌گذاری ACL

~7 دقیقه مطالعه · آخرین به‌روزرسانی ۱۸ شهریور ۱۴۰۵

یک لیست کنترل دسترسی واقعاً چه کاری انجام می‌دهد

یک Access Control List (ACL) یک لیست مرتب از قوانین است که یک روتر یا سوئیچ در برابر ترافیکی که از میان آن عبور می‌کند ارزیابی می‌کند، و ترافیک را بر اساس معیارهایی مانند آدرس منبع، آدرس مقصد، پروتکل، یا شماره پورت مجاز یا رد می‌کند. ACL ها دو هدف اصلی خدمت می‌کنند: امنیت پایه ترافیک (مسدودکردن ترافیک ناخواسته) و شناسایی ترافیک برای سایر ویژگی‌ها، مانند شناسایی اینکه کدام ترافیک باید مدیریت خاصی در سیاست‌های QoS یا NAT که بعداً در این مجموعه پوشش داده می‌شوند دریافت کند.

ACL ها چگونه ترافیک را پردازش می‌کنند: بالا-به-پایین، اولین تطبیق برنده است

هر ACL قوانینش، به نام Access Control Entries (ACEs)، را دقیقاً به ترتیبی که پیکربندی شده‌اند، از بالا به پایین، ارزیابی می‌کند، و به‌محض یافتن اولین ورودی منطبق متوقف می‌شود — باقی لیست هرگز برای آن بسته خاص مشورت نمی‌شود.

مثال ترتیب پردازش ACL:
access-list 10 permit 192.168.1.10
access-list 10 deny 192.168.1.0 0.0.0.255
access-list 10 permit any

یک بسته از 192.168.1.10 با خط ۱ تطبیق دارد و
مجاز است — خطوط ۲ و ۳ حتی برای این بسته خاص
هرگز بررسی نمی‌شوند

یک بسته از 192.168.1.50 با خط ۱ تطبیق ندارد،
با خط ۲ تطبیق دارد (deny)، و دور ریخته می‌شود —
خط ۳ برای این بسته هرگز بررسی نمی‌شود

این رفتار بالا-به-پایین و اولین-تطبیق توضیح می‌دهد چرا ترتیب ACE حیاتی است: قراردادن یک عبارت deny گسترده پیش از یک عبارت permit خاص‌تر که باید ابتدا تطبیق پیدا می‌کرد، بی‌سروصدا ترافیکی که واقعاً قصد اجازه‌دادنش وجود داشت را مسدود می‌کند.

Deny ضمنی: یک قانون مخفی حیاتی

هر ACL با یک Implicit Deny (deny ضمنی) نامرئی و غیرقابل‌پیکربندی پایان می‌یابد — اگر یک بسته با هیچ خط صراحتاً پیکربندی‌شده‌ای تطبیق نداشته باشد، به‌طور پیش‌فرض دور ریخته می‌شود.

access-list 10 permit 192.168.1.0 0.0.0.255
-- (deny any ضمنی، در پیکربندی دیده نمی‌شود،
--  اما همیشه حاضر است)

یک بسته از 10.0.0.5 با تنها خط پیکربندی‌شده
تطبیق ندارد و بی‌سروصدا دور ریخته می‌شود، به‌دلیل
deny ضمنی در انتهای هر ACL

این deny ضمنی یکی از رایج‌ترین منابع از‌دست‌دادن اتصال غیرمنتظره پس از اعمال یک ACL جدید است — یک مدیر که قصد دارد فقط یک نوع ترافیک خاص را مسدود کند باید صراحتاً هر چیز دیگری را مجاز کند، چون هر چیزی که صراحتاً مجاز نشده به‌طور پیش‌فرض دور ریخته می‌شود.

ACL های استاندارد: فیلتر فقط بر اساس آدرس منبع

یک Standard ACL (ACL استاندارد) فقط می‌تواند بر اساس آدرس IP منبع فیلتر کند، که آن را ساده اما محدود در دقت می‌کند.

Router(config)# access-list 10 permit 192.168.1.0 0.0.0.255
Router(config)# access-list 10 deny any

Router(config)# interface gigabitethernet 0/1
Router(config-if)# ip access-group 10 out

ACL های استاندارد از 1 تا 99 شماره‌گذاری می‌شوند (و 1300-1999 برای یک بازه گسترش‌یافته) و، چون فقط می‌توانند روی آدرس منبع تطبیق داشته باشند، باید تا حد ممکن نزدیک به مقصد اعمال شوند — اعمال یکی خیلی نزدیک به منبع ریسک مسدودکردن ناخواسته ترافیکی که واقعاً مقصدش جای دیگری بود را دارد.

درک ماسک Wildcard

ACL ها از یک Wildcard Mask (ماسک wildcard) به‌جای یک ماسک زیرشبکه استاندارد استفاده می‌کنند تا مشخص کنند کدام بیت‌های آدرس باید دقیقاً تطبیق داشته باشند و کدام می‌توانند هر چیزی باشند — از نظر مفهومی عکس یک ماسک زیرشبکه.

ماسک زیرشبکه 255.255.255.0 یعنی: دقیقاً تطبیق کن
ماسک wildcard 0.0.0.255 یعنی: بازه معادل،
  اما به‌صورت بیت‌های "اهمیت‌نداشتن" بیان‌شده

تبدیل یک ماسک زیرشبکه به ماسک wildcard:
255.255.255.0  → هر octet را از 255 کم کن
0.0.0.255      → ماسک wildcard

wildcard برای تطبیق یک هاست تکی:
0.0.0.0  (هر بیت باید دقیقاً تطبیق داشته باشد)

wildcard برای تطبیق با هر آدرسی به‌طور مطلق:
255.255.255.255  (هر بیت "اهمیت‌ندارد")
-- معمولاً با کلیدواژه "any" کوتاه می‌شود

یک بیت 0 در ماسک wildcard یعنی آن موقعیت بیت باید دقیقاً تطبیق داشته باشد، در حالی که یک بیت 1 یعنی آن موقعیت می‌تواند هر چیزی باشد — این منطق معکوس در مقایسه با یک ماسک زیرشبکه منبع رایجی از سردرگمی برای کسانی است که اولین‌بار ACL ها را یاد می‌گیرند.

ACL های توسعه‌یافته: فیلتر بر اساس منبع، مقصد، پروتکل، و پورت

یک Extended ACL (ACL توسعه‌یافته) می‌تواند روی آدرس منبع، آدرس مقصد، پروتکل (TCP، UDP، ICMP)، و شماره پورت تطبیق داشته باشد، که فیلترینگ بسیار دقیق‌تری را امکان‌پذیر می‌کند.

Router(config)# access-list 100 permit tcp 192.168.1.0 0.0.0.255 any eq 80
Router(config)# access-list 100 permit tcp 192.168.1.0 0.0.0.255 any eq 443
Router(config)# access-list 100 deny ip any any

Router(config)# interface gigabitethernet 0/0
Router(config-if)# ip access-group 100 in

این ACL توسعه‌یافته فقط ترافیک HTTP (پورت 80) و HTTPS (پورت 443) از شبکه 192.168.1.0/24 به هر مقصدی را مجاز می‌کند، و هر چیز دیگری را رد می‌کند — نوعی کنترل دقیق که با یک ACL استاندارد غیرممکن است. ACL های توسعه‌یافته، شماره‌گذاری‌شده از 100 تا 199 (و 2000-2699 برای بازه گسترش‌یافته)، باید تا حد ممکن نزدیک به منبع اعمال شوند، چون از قبل می‌توانند روی مقصد خاص تطبیق داشته باشند و ریسک فیلترکردن ناخواسته ترافیک نامرتبط را که یک ACL استاندارد اعمال‌شده زودهنگام می‌تواند داشته باشد ندارند.

ACL های نام‌دار: یک جایگزین قابل‌مدیریت‌تر

Router(config)# ip access-list extended WEB-TRAFFIC
Router(config-ext-nacl)# permit tcp 192.168.1.0 0.0.0.255 any eq 80
Router(config-ext-nacl)# permit tcp 192.168.1.0 0.0.0.255 any eq 443
Router(config-ext-nacl)# deny ip any any

-- ACL های نام‌دار همچنین اجازه می‌دهند ورودی‌های
-- منفرد بدون بازساخت کل لیست حذف یا در یک شماره
-- توالی خاص درج شوند

ACL های نام‌دار معمولاً در پیکربندی‌های مدرن نسبت به ACL های شماره‌دار ترجیح داده می‌شوند، چون نام توصیفی هدف ACL را بلافاصله روشن می‌کند، و ورودی‌های منفرد می‌توانند بدون حذف و بازسازی کل لیست ویرایش شوند — یک مزیت عملی قابل‌توجه نسبت به نحو ACL شماره‌دار، که نیازمند حذف و افزودن دوباره کل لیست برای حتی یک تغییر کوچک است.

تأیید پیکربندی ACL و برخوردها

Router# show access-lists

Extended IP access list WEB-TRAFFIC
    10 permit tcp 192.168.1.0 0.0.0.255 any eq 80 (245 matches)
    20 permit tcp 192.168.1.0 0.0.0.255 any eq 443 (1502 matches)
    30 deny ip any any (18 matches)

شمارنده‌های تطبیق نشان‌داده‌شده در show access-lists برای عیب‌یابی ارزشمند هستند — تأیید اینکه یک قانون خاص واقعاً برخورد می‌شود (یا به‌طور غیرمنتظره برخورد نمی‌شود) اغلب سریع‌ترین راه برای تعیین اینکه آیا یک ACL همان‌طور که مورد نظر بود رفتار می‌کند، به‌ویژه وقتی ترافیک به‌طور غیرمنتظره مسدود یا به‌طور غیرمنتظره اجازه‌داده‌شده باشد.

چرا تسلط بر ACL یک مهارت امنیتی اصلی است

لیست‌های کنترل دسترسی در سراسر تقریباً هر وظیفه شبکه‌ای مرتبط-با-امنیت ظاهر می‌شوند — محدودکردن دسترسی مدیریتی به دستگاه‌های شبکه، کنترل اینکه کدام ترافیک می‌تواند بین سگمنت‌های شبکه عبور کند، و شناسایی ترافیک برای سیاست‌های QoS یا NAT که بعداً در این مجموعه پوشش داده می‌شوند. درک ترتیب ارزیابی سخت‌گیرانه بالا-به-پایین، deny ضمنی، محاسبه درست ماسک wildcard، و مکان‌گذاری درست ACL نسبت به منبع و مقصد ترافیک برای پیاده‌سازی فیلترینگ مؤثر بدون مسدودکردن غیرعمدی ترافیک مشروع ضروری است.

نوشته و پژوهش‌شده توسط دکتر شاهین صیامی

مقالات مرتبط

ترجمه آدرس شبکه: اشتراک‌گذاری آدرس‌های IP عمومی

تأمین محدود آدرس‌های IPv4 عمومی باعث شد غیرممکن باشد هر دستگاه در سراسر جهان آدرس یکتای جهانی خودش را داشته باشد، و NAT این را با اجازه‌دادن به بسیاری دستگاه خصوصی برای اشتراک‌گذاری تعداد کمی آدرس عمومی حل کرد. این مقاله سه نوع اصلی NAT را توضیح می‌دهد، پیکربندی static NAT، dynamic NAT، و PAT روی یک روتر سیسکو را مرور می‌کند، و دستورات ضروری برای تأیید ترجمه‌های فعال را پوشش می‌دهد.

ادامه

DHCP و DNS: آدرس‌دهی خودکار و تفکیک نام

پیکربندی دستی یک آدرس IP روی هر دستگاه مقیاس‌پذیر نیست، و به‌خاطرسپاری آدرس‌های IP عددی برای هر سرویس غیرعملی است، به همین دلیل DHCP و DNS به‌عنوان سرویس‌های پشتیبان ضروری در تقریباً هر شبکه‌ای وجود دارند. این مقاله توضیح می‌دهد DHCP چگونه به‌طور خودکار اطلاعات آدرس‌دهی IP را اختصاص می‌دهد، پیکربندی یک دستگاه سیسکو به‌عنوان یک سرور DHCP یا عامل رله را پوشش می‌دهد، و توضیح می‌دهد DNS چگونه نام‌های قابل‌فهم برای انسان را به آدرس‌های IP تبدیل می‌کند.

ادامه

مسیریابی بین-VLAN: اتصال VLAN ها با Router-on-a-Stick و SVI

VLAN ها دامنه‌های پخش را از یکدیگر در لایه ۲ ایزوله می‌کنند، اما اپلیکیشن‌های واقعی همچنان نیاز دارند دستگاه‌ها در VLAN های مختلف با یکدیگر ارتباط برقرار کنند، که نیازمند مسیریابی بین آن‌ها در لایه ۳ است. این مقاله رویکرد قدیمی router-on-a-stick با استفاده از زیراینترفیس‌ها، رویکرد مدرن‌تر و مقیاس‌پذیرتر Switch Virtual Interface روی سوئیچ‌های لایه ۳، و دستورات پیکربندی و تأیید ضروری برای هر دو را توضیح می‌دهد.

ادامه

EtherChannel: ترکیب چند لینک در یک اتصال منطقی واحد

به‌جای انتخاب بین افزونگی و پهنای باند، EtherChannel چند لینک فیزیکی را در یک اتصال منطقی واحد ترکیب می‌کند که هر دو را هم‌زمان فراهم می‌کند، بدون اینکه Spanning Tree هیچ‌کدام از لینک‌ها را مسدود کند. این مقاله توضیح می‌دهد EtherChannel چگونه پورت‌ها را با هم بسته‌بندی می‌کند، پروتکل‌های مذاکره PAgP و LACP مورد استفاده برای تشکیل امن یک بسته را مقایسه می‌کند، و دستورات پیکربندی و تأیید ضروری را پوشش می‌دهد.

ادامه

پروتکل Spanning Tree: جلوگیری از حلقه در شبکه‌های سوئیچ‌شده

لینک‌های فیزیکی افزونه بین سوئیچ‌ها تحمل‌پذیری خطا فراهم می‌کنند اما حلقه‌های لایه ۲ ایجاد می‌کنند که می‌توانند کل شبکه را در چند ثانیه از کار بیندازند. این مقاله توضیح می‌دهد چرا حلقه‌ها در شبکه‌های سوئیچ‌شده فاجعه‌بارند، پروتکل Spanning Tree چگونه یک root bridge انتخاب می‌کند و مسیرهای افزونه را برای جلوگیری از آن‌ها مسدود می‌کند، و دستورات ضروری برای تأیید عملیات STP روی یک سوئیچ سیسکو را پوشش می‌دهد.

ادامه

VLAN و ترانک: بخش‌بندی شبکه‌های سوئیچ‌شده

یک VLAN یک سوئیچ فیزیکی واحد را به چند دامنه پخش از نظر منطقی جداگانه تقسیم می‌کند، که ایزوله‌سازی ترافیک و انعطاف‌پذیری سازمانی را بدون سخت‌افزار اضافی امکان‌پذیر می‌کند. این مقاله توضیح می‌دهد یک VLAN واقعاً چیست، چگونه VLAN ها ساخته و پورت‌ها به آن‌ها اختصاص می‌یابند، لینک‌های ترانک چگونه ترافیک چند VLAN را روی یک اتصال فیزیکی واحد با استفاده از تگ‌گذاری 802.1Q حمل می‌کنند، و دستورات تأیید ضروری مورد استفاده برای تأیید پیکربندی درست را پوشش می‌دهد.

ادامه