Firewall Filter در RouterOS برای اجازه یا مسدود کردن بسته‌هایی است که به خود روتر می‌رسند، از آن خارج می‌شوند، یا از میانش عبور می‌کنند. سه زنجیرهٔ پیش‌فرض input، forward و output حذف‌شدنی نیستند؛ قواعد از بالا به پایین خوانده می‌شوند و اولین تطبیق معمولاً کار را تمام می‌کند. این آموزش همان الگوی رسمی میکروتیک را برای محافظت روتر و LAN از صفر جمع می‌کند.

آموزش Firewall Filter میکروتیک؛ محافظت روتر و LAN از صفر

قبل از هر قاعدهٔ drop روی زنجیرهٔ input، مسیر دسترسی جایگزین داشته باشید: کنسول فیزیکی، Winbox از طریق MAC، یا Safe Mode. اگر از راه دور فقط با یک IP مدیریت می‌کنید و همان را تصادفی ببندید، قفل می‌شوید. نام اینترفیس WAN (مثلاً ether1) و LAN (مثلاً bridge) و ساب‌نت مدیریت (مثلاً ۱۹۲٫۱۶۸٫۸۸٫۰/۲۴) را روی کاغذ بنویسید.

prerequisites checklist
input forward output chains

طبق مستند میکروتیک، دو راهبرد کلی وجود دارد: فقط ترافیک لازم را بپذیرید و بقیه را drop کنید (امن‌تر برای خود روتر)، یا فقط ترافیک بد را ببندید و بقیه را باز بگذارید (برای شبکهٔ مشتری گاهی عملی‌تر است). برای زنجیرهٔ input معمولاً راه اول توصیه می‌شود.

  1. در Winbox مسیر IP → Firewall → Filter Rules را باز کنید؛ یا در ترمینال به /ip firewall filter بروید.
  2. اولین قاعده را برای connection-state=established,related با action=accept روی input بسازید تا نشست‌های شناخته‌شده سبک بمانند.
  3. یک address-list برای میزبان‌های مجاز مدیریت بسازید (مثلاً ۱۹۲٫۱۶۸٫۸۸٫۲ تا ۱۹۲٫۱۶۸٫۸۸٫۲۵۴) و قاعدهٔ accept با src-address-list اضافه کنید.
  4. اگر به پینگ تشخیصی نیاز دارید، ICMP را روی input بپذیرید.
  5. در پایان زنجیرهٔ input یک قاعدهٔ action=drop بگذارید — فقط بعد از همهٔ allowها.
Winbox filter path
CLI input protect router

نمونهٔ فشردهٔ مستند رسمی برای محافظت خود روتر:

/ip firewall filter add action=accept chain=input connection-state=established,related

/ip firewall address-list add address=192.168.88.2-192.168.88.254 list=allowed_to_router

/ip firewall filter add action=accept chain=input src-address-list=allowed_to_router

/ip firewall filter add action=accept chain=input protocol=icmp

/ip firewall filter add action=drop chain=input

اگر در آزمایشگاه بعد از drop هنوز از LAN وارد می‌شوید ولی از اینترنت نه، یعنی address-list درست کار کرده‌است. اگر کلاً قطع شدید، از کنسول Safe Mode را تمام کنید یا قاعده را disable کنید. در نظرات بدون نوشتن IP عمومی بگویید روی کدام زنجیره گیر کردید تا گام بعدی روشن شود.

زنجیرهٔ forward، FastTrack و نکات امنیتی

CLI forward FastTrack
security notes

برای ترافیک عبوری (LAN به اینترنت و برعکس) روی forward کار می‌کنید، نه input. الگوی رسمی ابتدا FastTrack برای established/related می‌گذارد، بعد همان حالت را accept می‌کند، سپس invalid را drop می‌کند. FastTrack فقط IPv4 است و باید قاعدهٔ accept متناظر هم داشته باشد وگرنه رفتار گیج‌کننده می‌شود.

  1. add action=fasttrack-connection chain=forward connection-state=established,related
  2. add action=accept chain=forward connection-state=established,related
  3. add action=drop chain=forward connection-state=invalid — در صورت نیاز با log=yes و پیشوند کوتاه.
  4. قواعد پیشرفته‌تر مستند (مثل بستن آدرس‌های غیرعمومی از LAN یا ترافیک غیرNAT از WAN) را فقط وقتی اینترفیس‌ها و ساب‌نت‌ها را درست نام‌گذاری کرده‌اید اضافه کنید.
quick checklist

ترتیب مهم است: قاعدهٔ drop کلی را بالای allowهای ضروری نگذارید. log=yes زیر حمله می‌تواند CPU را بالا ببرد؛ برای عیب‌یابی موقت مفید است، نه همیشه روشن. از راه دور همیشه Safe Mode را قبل از تغییر خطرناک فعال کنید و با نشست دوم تست بگیرید.

مرجع رسمی در Filter - RouterOS - MikroTik Documentation آمده‌است. برای سناریوی بعدی، فقط input را سفت می‌کنید یا مستقیم سراغ forward و address-listهای RFC6890 می‌روید؟

در شبکه‌های خانگی و اداری کوچک، بیشتر نفوذها از سرویس‌های مدیریت باز روی WAN شروع می‌شود: Winbox، SSH یا API که به هر آدرسی listen می‌کنند. بستن input با allow فقط از ساب‌نت مدیریت، همان اولین لایهٔ دفاع است؛ NAT به‌تنهایی به‌معنای امن بودن روتر نیست.

تفاوت input و forward را در عیب‌یابی قاطی نکنید. اگر کلاینت LAN به اینترنت نمی‌رود، اول forward و NAT را ببینید. اگر خودتان نمی‌توانید Winbox بزنید، مشکل در input یا آدرس مدیریت است. output کمتر دست‌کاری می‌شود مگر بخواهید ترافیک خودِ روتر (DNS، NTP) را محدود کنید.

address-list خوانایی را بالا می‌برد: به‌جای تکرار IP در ده قاعده، یک فهرست allowed_to_router دارید و شیفت بعدی فقط همان را به‌روز می‌کند. برای مهمان Wi-Fi جدا از کارکنان، فهرست جدا بسازید تا اشتباه کپی‌پیست یک allow بی‌جا نسازد.

پس از ارتقای RouterOS یا بازگردانی backup، یک‌بار /ip firewall filter print بگیرید تا قواعد disabled یا جابه‌جا نشده باشند. ثبت کوتاه در مستند تیم که ether1 همان WAN است و bridge همان LAN، از حدس زدن اینترفیس هنگام کپی مثال‌های مستند جلوگیری می‌کند.

IPv6 زنجیره و address-list جدا دارد (/ipv6 firewall filter). اگر IPv6 را روشن کرده‌اید، کلاینت‌ها ممکن است از اینترنت مستقیم دیده شوند؛ بدون فیلتر forward مناسب، الگوی IPv4 به‌تنهایی کافی نیست. جزئیات ICMPv6 و DHCPv6 در همان صفحهٔ Filter آمده‌است.

RAW فیلتر (/ip firewall raw) قبل از connection tracking است و برای کاهش بار یا notrack کردن پروتکل‌هایی مثل OSPF در سناریوهای خاص به‌کار می‌رود؛ برای آموزش اول، تا وقتی filter معمولی پایدار نشده سراغش نروید تا علت قطعی گم نشود.