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

لیست‌های کنترل دسترسی به یک روتر یا سوئیچ اجازه می‌دهند به‌طور انتخابی ترافیک را بر اساس اطلاعات منبع، مقصد، و پروتکل مجاز یا مسدود کنند، و پایه امنیت پایه شبکه و فیلترینگ ترافیک را تشکیل می‌دهند. این مقاله توضیح می‌دهد 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 نسبت به منبع و مقصد ترافیک برای پیاده‌سازی فیلترینگ مؤثر بدون مسدودکردن غیرعمدی ترافیک مشروع ضروری است.

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

مقالات مرتبط

عیب‌یابی سیستماتیک شبکه: یک روش‌شناسی که همه‌چیز را به هم پیوند می‌دهد

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

ادامه

NETCONF، YANG، و پایتون: پیکربندی برنامه‌ای شبکه در مقیاس

REST API ها و فرمت‌های JSON/YAML که پیش‌تر در این مجموعه پوشش داده شدند یک رویکرد به اتوماسیون شبکه را نشان می‌دهند، اما NETCONF و YANG یک جایگزین ساختاریافته‌تر و مبتنی‌بر-استاندارد فراهم می‌کنند که به‌طور خاص برای پیکربندی دستگاه شبکه ساخته شده. این مقاله توضیح می‌دهد چه چیزی NETCONF را از یک REST API ساده متمایز می‌کند، اینکه مدل‌های YANG چگونه دقیقاً تعریف می‌کنند داده پیکربندی چگونه به‌نظر می‌رسد را پوشش می‌دهد، و استفاده از پایتون برای تعامل برنامه‌ای با دستگاه‌های شبکه را مرور می‌کند.

ادامه

اصول IPsec VPN: امن‌سازی ترافیک در سراسر شبکه‌های نامورد‌اعتماد

اتصال دو سایت در سراسر اینترنت عمومی ترافیک را در معرض رهگیری قرار می‌دهد مگر اینکه به‌درستی رمزگذاری شود، و IPsec چارچوب استانداردی برای ساخت تونل‌های امن و احراز‌هویت‌شده بین سایت‌ها فراهم می‌کند. این مقاله فرآیند مذاکره دومرحله‌ای IKE را توضیح می‌دهد، تمایز بین پروتکل‌های AH و ESP را پوشش می‌دهد، پیکربندی یک VPN سایت-به-سایت پایه IPsec را مرور می‌کند، و دستورات تأیید ضروری را پوشش می‌دهد.

ادامه

اصول MPLS: توضیح سوئیچینگ برچسب

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

ادامه

Route Reflector و Confederation های BGP: مقیاس‌دهی iBGP فراتر از Full Mesh

نیازمندی full-mesh iBGP، که به‌طور مختصر پیش‌تر در این مجموعه ذکر شد، با رشد یک سیستم خودمختار به یک مسئله جدی مقیاس‌دهی تبدیل می‌شود، که نیازمند تعدادی جلسه است که به‌طور درجه‌دوم با تعداد روتر افزایش می‌یابد. این مقاله دقیقاً توضیح می‌دهد چرا full mesh مقیاس‌پذیر نیست، اینکه route reflector ها چگونه این را با شل‌کردن قوانین معمول انتشار-مسیر BGP حل می‌کنند مرور می‌کند، و confederation ها را به‌عنوان یک رویکرد جایگزین که یک AS واحد را به سیستم‌های خودمختار زیرمجموعه کوچک‌تر تقسیم می‌کند پوشش می‌دهد.

ادامه

بررسی عمیق انواع ناحیه OSPF: Stub، Totally Stubby، و NSSA

طراحی OSPF چندناحیه‌ای پایه، که پیش‌تر در این مجموعه پوشش داده شد، از قبل اندازه پایگاه‌داده را با نگه‌داشتن LSA های جزئی نوع ۱ و ۲ محلی به ناحیه خودشان کاهش می‌دهد، اما انواع ناحیه تخصصی OSPF فراتر می‌روند، و به‌طور خاص LSA های خارجی نوع ۵ را هدف قرار می‌دهند. این مقاله انواع LSA که باید برای ساخت هر نوع ناحیه تخصصی سرکوب شوند را توضیح می‌دهد، پیکربندی نواحی stub، totally stubby، و not-so-stubby را مرور می‌کند، و مبادلات خاصی که هر انتخاب طراحی شامل می‌شود را پوشش می‌دهد.

ادامه