معرفی و آموزش کار با ACL در میکروتیک همراه با مثال‌های کاربردی

ACL در میکروتیک

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

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

مفهوم کلی ACL

ACL یک مجموعه از قوانین (Ruleها) است که مشخص می‌کند کدام بسته‌های داده مجاز به عبور از یک رابط (Interface) شبکه هستند و کدام بسته‌ها باید مسدود شوند. هر قانون در یک ACL شرایط خاصی را تعریف می‌کند که بر اساس آن بسته‌ها ارزیابی می‌شوند.

اجزای تشکیل دهنده یک ACL

یک ACL معمولاً شامل اجزای زیر است:

ترتیب (Order): قوانین به ترتیب از بالا به پایین ارزیابی می‌شوند. اولین قانونی که با شرایط بسته مطابقت داشته باشد، اعمال می‌شود.

شرایط (Conditions): معیارهایی که بسته باید برای مطابقت با قانون داشته باشد، مانند:

آدرس IP منبع (Source IP Address): آدرس IP که بسته از آن ارسال شده است.
آدرس IP مقصد (Destination IP Address): آدرس IP که بسته به آن ارسال می‌شود.
پروتکل: مانند TCP، UDP، ICMP.
پورت منبع و مقصد: شماره پورت‌های منبع و مقصد برای پروتکل‌های TCP و UDP.
عملیات (Action): تعیین می‌کند که در صورت مطابقت بسته با شرایط، چه عملی انجام شود. معمولاً شامل:

اجازه (Permit/Accept): بسته اجازه عبور دارد.
مسدود (Deny/Drop): بسته مسدود شده و دور ریخته می‌شود.

انواع ACLها

ACL‌ها به دو نوع اصلی تقسیم می‌شوند:

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

ویژگی اصلی ACL استاندارد شامل موارد زیر است:

ACL استاندارد فقط بر اساس آدرس IP منبع تصمیم‌گیری می‌کنند.
این نوع ACL ساده‌تر و سریع‌تر هستند، اما کنترل کمتری بر روی ترافیک ارائه می‌دهند.
استفاده از ACL استاندارد باعث مسدود کردن تمام ترافیک از یک آدرس IP خاص می‌شود.

ACLهای توسعه‌یافته (Extended ACL)

ویژگی ACLهای توسعه‌یافته (Extended ACL) شامل موارد زیر است:

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

نحوه عملکرد ACL در روتر یا فایروال

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

کاربردهای مهم ACL

امنیت شبکه

مسدود کردن دسترسی غیرمجاز به شبکه داخلی.
جلوگیری از حملات شبکه‌ای مانند DoS.

کنترل ترافیک

محدود کردن پهنای باند برای کاربران یا سرویس‌های خاص.
اولویت‌بندی ترافیک مهم.

مدیریت دسترسی

اجازه یا مسدود کردن دسترسی به منابع خاص مانند سرورها یا برنامه‌ها.
اعمال سیاست‌های سازمانی بر روی دسترسی کاربران.

نکات مهم در استفاده از ACL

ساده نگه‌داشتن قوانین

از تعریف قوانین پیچیده که مدیریت آن‌ها دشوار است خودداری کنید.

مستندسازی

توضیحات (Comments) برای هر قانون بنویسید تا هدف آن مشخص باشد.

ترتیب قوانین

قوانین با شرایط خاص‌تر را در بالا قرار دهید تا ترافیک به درستی مدیریت شود.

آزمایش و مانیتورینگ

پس از اعمال ACL، ترافیک را مانیتور کنید تا مطمئن شوید که قوانین به درستی عمل می‌کنند.

به‌روزرسانی منظم

ACL‌ها را بر اساس نیازهای شبکه و تغییرات امنیتی به‌روزرسانی کنید.

ACL در میکروتیک

کاربرد ACL در میکروتیک به صورت پیاده سازی قوانین فایروال است. شما می‌توانید با استفاده از Firewall Filter Rules، ترافیک را بر اساس پارامترهای مختلف کنترل کنید.

ALC در میکروتیک

مثالا:

استفاده از ACL در میکروتیک برای مسدود کردن ترافیک از یک آدرس IP خاص

/ip firewall filter add chain=input src-address=192.168.1.100 action=drop

اجازه دادن به ترافیک HTTP به یک سرور داخلی

/ip firewall filter add chain=forward protocol=tcp dst-port=80 dst-address=192.168.1.200 action=accept

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

با استفاده از ACL در میکروتیک میتوانید قوانین فایروال مورد نیاز خود را پیاده‌سازی و مدیریت کنید. برای آشنایی بیشتر در زیر چندین نمونه قوانین کاربردی فایرال با استفاده از ACL در میکروتیک را مشاهده می‌کنید. این مثال‌ها شامل توضیحات کامل درباره نحوه عملکرد و کاربرد هر قانون نیز هستند.

استفاده از ACL در میکروتیک برای مسدود کردن دسترسی SSH به روتر از اینترنت
هدف از این رول جلوگیری از دسترسی کاربران خارجی به پورت SSH (پورت 22) روتر برای افزایش امنیت است.

/ip firewall filter add chain=input protocol=tcp dst-port=22 in-interface=ether1 action=drop

توضیح این رول به صورت زیر است:

chain=input: این قانون برای ترافیکی است که به خود روتر ارسال می‌شود (نه ترافیک عبوری).
protocol=tcp: این قانون برای پروتکل TCP اعمال می‌شود.
dst-port=22: فقط ترافیکی که به پورت SSH (22) می‌رسد مسدود خواهد شد.
in-interface=ether1: این قانون فقط برای ترافیک ورودی از اینترفیس WAN (اینترفیس متصل به اینترنت) اعمال می‌شود.
action=drop: بسته‌هایی که با شرایط بالا مطابقت دارند، مسدود می‌شوند.
این قانون از دسترسی به SSH از اینترنت جلوگیری می‌کند، اما دسترسی داخلی همچنان مجاز است.

استفاده از ACL در میکروتیک برای مسدود کردن پینگ (ICMP) از اینترنت به روتر با استفاده از
هدف از این رول جلوگیری از پینگ (ICMP) به روتر از سمت اینترنت برای جلوگیری از شناسایی روتر و کاهش احتمال حملات است.

/ip firewall filter add chain=input protocol=icmp in-interface=ether1 action=drop

توضیح:

protocol=icmp: این قانون برای پروتکل ICMP که برای پینگ استفاده می‌شود، اعمال می‌شود.
in-interface=ether1: فقط ترافیک ICMP که از سمت اینترنت می‌آید، مسدود می‌شود.
action=drop: بسته‌های ICMP دور ریخته می‌شوند.
این قانون کمک می‌کند که روتر از طریق پینگ از اینترنت قابل شناسایی نباشد.

استفاده از ACL در میکروتیک برای محدود کردن پهنای باند کاربران داخلی برای HTTP/HTTPS
هدف از این رول محدود کردن پهنای باند کاربران شبکه داخلی برای ترافیک HTTP و HTTPS جهت جلوگیری از استفاده بیش از حد پهنای باند است.

/ip firewall mangle add chain=forward protocol=tcp dst-port=80,443 action=mark-connection new-connection-mark=http_conn
/ip firewall mangle add chain=forward connection-mark=http_conn action=mark-packet new-packet-mark=http_packet
/queue tree add name=”HTTP Limit” parent=global packet-mark=http_packet max-limit=10M

توضیح:

mangle rule: ابتدا ترافیک HTTP/HTTPS شناسایی می‌شود و به هر ارتباط یک علامت (mark) اختصاص داده می‌شود.
connection-mark: همه ارتباطات مربوط به پورت 80 (HTTP) و 443 (HTTPS) علامت‌گذاری می‌شوند.
packet-mark: بسته‌های مربوط به این ارتباطات نیز علامت‌گذاری می‌شوند.
queue tree: در نهایت یک صف (Queue) با محدودیت پهنای باند 10Mbps برای ترافیک HTTP/HTTPS ایجاد می‌شود.
این قانون اجازه می‌دهد تا ترافیک وب محدود شده و مانع از استفاده ناعادلانه از پهنای باند توسط کاربران داخلی شود.

استفاده از ACL در میکروتیک برای اجازه دادن به ترافیک از یک شبکه داخلی خاص به اینترنت (NAT)
هدف از این رول اجازه دادن به ترافیک از یک شبکه خاص (مثلاً 192.168.10.0/24) به اینترنت و استفاده از NAT است.

/ip firewall nat add chain=srcnat src-address=192.168.10.0/24 out-interface=ether1 action=masquerade

توضیح:

chain=srcnat: این قانون برای ترافیکی است که از داخل به خارج از شبکه (اینترنت) فرستاده می‌شود.
src-address=192.168.10.0/24: این قانون فقط برای آدرس‌های IP داخلی 192.168.10.0/24 اعمال می‌شود.
out-interface=ether1: اینترفیس خروجی که به اینترنت متصل است.
action=masquerade: آدرس‌های داخلی تغییر یافته و از آدرس IP عمومی روتر برای دسترسی به اینترنت استفاده می‌شود (NAT).
این قانون برای شبکه داخلی خاص، امکان دسترسی به اینترنت را فراهم می‌کند.

استفاده از ACL در میکروتیک برای مسدود کردن ترافیک خروجی از یک IP داخلی به یک مقصد خاص
هدف از این رول جلوگیری از دسترسی یک کاربر خاص در شبکه داخلی (مثلاً 192.168.1.100) به یک وب‌سایت یا آدرس IP خارجی (مثلاً 8.8.8.8) است.

ip firewall filter add chain=forward src-address=192.168.1.100 dst-address=8.8.8.8 action=drop

توضیح:

chain=forward: این قانون برای ترافیکی است که از شبکه داخلی عبور کرده و به اینترنت می‌رود.
src-address=192.168.1.100: فقط ترافیک از IP داخلی خاص (192.168.1.100) بررسی می‌شود.
dst-address=8.8.8.8: مقصد مورد نظر، IP خاص خارجی (مانند سرور DNS گوگل).
action=drop: ترافیک مسدود و بسته‌ها دور ریخته می‌شوند.
این قانون دسترسی کاربر داخلی 192.168.1.100 به آدرس IP 8.8.8.8 را مسدود می‌کند.

استفاده از ACL در میکروتیک برای اجازه دسترسی از یک محدوده IP خاص به یک سرور داخلی
هدف از این رول اجازه دسترسی تنها به کاربران یک محدوده IP مشخص به یک سرور داخلی با آدرس IP 192.168.1.200 و سرویس HTTP (پورت 80) داده شود.

/ip firewall filter add chain=forward src-address=192.168.0.0/24 dst-address=192.168.1.200 protocol=tcp dst-port=80 action=accept

توضیح:

chain=forward: این قانون برای ترافیک عبوری به سرور داخلی است.
src-address=192.168.0.0/24: تنها ترافیک از محدوده IP مشخصی (192.168.0.0/24) بررسی می‌شود.
dst-address=192.168.1.200: مقصد، سرور داخلی با آدرس IP 192.168.1.200 است.
protocol=tcp: این قانون فقط برای پروتکل TCP است.
dst-port=80: این قانون فقط برای ترافیک HTTP (پورت 80) اعمال می‌شود.
action=accept: ترافیک مجاز به عبور است.
این قانون اجازه می‌دهد فقط کاربران از محدوده IP 192.168.0.0/24 به سرویس HTTP سرور داخلی دسترسی داشته باشند.

برای دریافت خدمات نصب و راه اندازی میکروتیک با شماره تلفن02163877763 یا09355213763 تماس بگیرید.

برای افزایش امنیت و جلوگیری از حملاتی مانند پورت اسکن، بروت فورس، و حملات به تانل PPTP در روترهای میکروتیک، می‌توان از Firewall Filter Rules مناسب استفاده کرد. در زیر چند مثال حرفه‌ای از این قوانین آورده شده است.

استفاده از ACL در میکروتیک برای جلوگیری از پورت اسکن با استفاده از Address List
هدف از این رول شناسایی و مسدود کردن آی‌پی‌های مشکوکی که در حال انجام پورت اسکن هستند.

/ip firewall filter add chain=input protocol=tcp psd=21,3s,3,1 action=add-src-to-address-list address-list=port_scanners address-list-timeout=1d
/ip firewall filter add chain=input src-address-list=port_scanners action=drop

توضیح:

psd=21,3s,3,1: پارامتر PSD (Port Scan Detection) تشخیص می‌دهد که اگر در 3 ثانیه بیش از 3 بسته TCP با تفاوت پورت 21 دریافت شود، این نشانه‌ای از پورت اسکن است.
add-src-to-address-list=port_scanners: آی‌پی مشکوک به لیست port_scanners اضافه می‌شود.
address-list-timeout=1d: آی‌پی‌های مشکوک به مدت 1 روز مسدود می‌شوند.
action=drop: آی‌پی‌های موجود در لیست port_scanners به طور خودکار مسدود می‌شوند.
این قانون از شناسایی پورت‌های باز توسط پورت اسکنرها جلوگیری می‌کند.

استفاده از ACL در میکروتیک برای جلوگیری از حملات بروت فورس به سرویس‌های ورودی
هدف از این رول مسدود کردن آی‌پی‌هایی که تلاش می‌کنند با چندین تلاش ناموفق به سرویس‌های SSH یا PPTP متصل شوند.

استفاده از ACL در میکروتیک برای جلوگیری از بروت فورس به SSH

/ip firewall filter add chain=input protocol=tcp dst-port=22 connection-state=new src-address-list=ssh_blacklist action=drop
/ip firewall filter add chain=input protocol=tcp dst-port=22 connection-state=new action=add-src-to-address-list address-list=ssh_stage1 address-list-timeout=1m
/ip firewall filter add chain=input src-address-list=ssh_stage1 protocol=tcp dst-port=22 connection-state=new action=add-src-to-address-list address-list=ssh_blacklist address-list-timeout=1d

توضیح:

dst-port=22: پورت SSH.
connection-state=new: فقط برای اتصالات جدید اعمال می‌شود.
src-address-list=ssh_blacklist: آی‌پی‌هایی که در این لیست قرار دارند، مسدود می‌شوند.
add-src-to-address-list=ssh_stage1: اولین تلاش برای اتصال، آی‌پی کاربر را به لیست ssh_stage1 اضافه می‌کند.
add-src-to-address-list=ssh_blacklist: اگر در مدت زمان 1 دقیقه چندین تلاش ناموفق داشته باشد، آی‌پی به لیست سیاه ssh_blacklist اضافه و به مدت 1 روز مسدود می‌شود.
این قانون از حملات بروت فورس به SSH جلوگیری می‌کند.

استفاده از ACL در میکروتیک برای جلوگیری از بروت فورس به PPTP

/ip firewall filter add chain=input protocol=tcp dst-port=1723 connection-state=new src-address-list=pptp_blacklist action=drop
/ip firewall filter add chain=input protocol=tcp dst-port=1723 connection-state=new action=add-src-to-address-list address-list=pptp_stage1 address-list-timeout=1m
/ip firewall filter add chain=input src-address-list=pptp_stage1 protocol=tcp dst-port=1723 connection-state=new action=add-src-to-address-list address-list=pptp_blacklist address-list-timeout=1d

توضیح:

مشابه قانون SSH، اما برای پورت 1723 (پورت PPTP VPN) استفاده می‌شود.
آی‌پی‌هایی که چندین تلاش ناموفق برای اتصال به PPTP دارند، مسدود می‌شوند.

استفاده از ACL در میکروتیک برای جلوگیری از حملات ICMP Flood

هدف از این رول جلوگیری از حملات ICMP Flood که می‌تواند موجب از کار افتادن شبکه یا روتر شود.

/ip firewall filter add chain=input protocol=icmp limit=5,10 action=accept
/ip firewall filter add chain=input protocol=icmp action=drop

توضیح:

limit=5,10: تنها 5 بسته ICMP در ثانیه مجاز است و بعد از آن تا 10 بسته در یک دوره زمانی خاص مسدود می‌شود.
action=accept: بسته‌های ICMP تا حد مجاز پذیرفته می‌شوند.
action=drop: سایر بسته‌های ICMP که از حد مجاز تجاوز کنند، مسدود می‌شوند.
این قانون از حملات ICMP مانند Ping Flood جلوگیری می‌کند.

استفاده از ACL در میکروتیک برای مسدود کردن ترافیک غیرمجاز به سرویس PPTP
هدف از این رول اجازه دسترسی فقط به آی‌پی‌های مشخصی جهت دسترسی به سرویس PPTP و مسدود شدن سایر آی‌پی‌ها است.

/ip firewall filter add chain=input protocol=tcp dst-port=1723 src-address-list=pptp_allowed action=accept
/ip firewall filter add chain=input protocol=tcp dst-port=1723 action=drop

توضیح:

src-address-list=pptp_allowed: تنها آی‌پی‌هایی که در لیست pptp_allowed هستند، به پورت 1723 (PPTP) دسترسی دارند.
action=drop: هر آی‌پی دیگری که بخواهد به پورت 1723 متصل شود، مسدود می‌شود.
این قانون به شما امکان می‌دهد تنها به کاربران مشخصی اجازه اتصال به PPTP بدهید.

استفاده از ACL در میکروتیک برای جلوگیری از حملات SYN Flood
هدف از این رول جلوگیری از حملات SYN Flood که می‌تواند باعث اشغال منابع روتر و سرورها شود.

/ip firewall filter add chain=input protocol=tcp tcp-flags=syn connection-limit=100,32 action=drop

توضیح:

tcp-flags=syn: فقط بسته‌های SYN بررسی می‌شوند (بسته‌هایی که آغازگر ارتباط TCP هستند).
connection-limit=100,32: اگر بیش از 100 ارتباط TCP از یک آدرس آی‌پی در جریان باشد، مسدود می‌شود.
action=drop: بسته‌های SYN اضافی مسدود می‌شوند.
این قانون از حملات SYN Flood که می‌تواند باعث مصرف بی‌رویه منابع شود، جلوگیری می‌کند.

جمع‌بندی
استفاده از ACL‌ در میکروتیک برای افزایش امنیت شبکه ضروری است. قوانین فوق به شما کمک می‌کنند تا از حملاتی مانند پورت اسکن، بروت فورس، ICMP Flood و SYN Flood جلوگیری کنید و امنیت سرویس‌هایی مانند PPTP و SSH را افزایش دهید.

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