Firewall Filter در RouterOS برای اجازه یا مسدود کردن بستههایی است که به شبکهٔ محلی میروند، از روتر میآیند، یا مقصدشان خودِ روتر است. مسیر پیکربندی IPv4: /ip firewall filter (برای IPv6: /ipv6 firewall filter). این آموزش صفحهٔ رسمی Filter را دنبال میکند و روی دو زنجیرهٔ روزمره تمرکز دارد: input (حفاظت از خودِ روتر) و forward (حفاظت از کلاینتهای پشت روتر).
آموزش Firewall Filter میکروتیک؛ زنجیرههای input و forward
پیشنیازهایی که جا میماند: دسترسی WinBox یا SSH با کاربر admin، دانستن اینترفیس LAN (معمولاً bridge) و WAN (مثلاً ether1)، بکاپ با /export file=before-fw، و پنجرهٔ نگهداری — یک قانون drop غلط میتواند شما را از مدیریت بیرون بیندازد. مسیر WinBox انگلیسی: IP → Firewall → Filter Rules.
سه زنجیرهٔ ازپیشتعریفشده حذفشدنی نیستند:
- input — بسته از یک اینترفیس وارد میشود و IP مقصد یکی از آدرسهای خودِ روتر است. ترافیک عبوری اینجا پردازش نمیشود.
- forward — بسته از روتر عبور میکند (کلاینت ↔ اینترنت).
- output — بسته از خودِ روتر شروع میشود و خارج میشود؛ برای شروع روزمره کمتر به آن میپردازیم.
مستند دو استراتژی را مطرح میکند: (۱) فقط ترافیک لازم را قبول کنید و بقیه را drop کنید — از نظر امنیتی قویتر است ولی برای هر سرویس جدید باید قانون بگذارید؛ (۲) فقط ترافیک مخرب را drop کنید و بقیه آزاد باشد — برای شبکهٔ مشتری انعطافپذیرتر است. برای خودِ روتر معمولاً استراتژی اول را جدی بگیرید.
- اول قانون قبول established,related را بگذارید تا نشستهای شناختهشده CPU را پر نکنند. مثال از مستند: /ip firewall filter add action=accept chain=input connection-state=established,related
- یک address-list برای مدیریت بسازید (نمونهٔ مستند محدودهٔ ۱۹۲٫۱۶۸٫۸۸٫۲ تا ۱۹۲٫۱۶۸٫۸۸٫۲۵۴ با نام allowed_to_router) و قانون accept با src-address-list=allowed_to_router روی زنجیرهٔ input اضافه کنید.
- اگر ICMP لازم است، قانون accept با protocol=icmp روی input بگذارید.
- آخرین قانون input را action=drop کنید تا هر چیز غیرمجاز بیصدا بسته شود. قبل از اعمال از همان شبکهٔ مجاز WinBox را باز نگه دارید و تست کنید.
- برای LAN، مفهوم شبیه است ولی معمولاً ترافیک بد را میبندید و بقیه را میپذیرید. اول لیست not_in_internet را طبق نمونهٔ RFC6890 مستند بسازید (۱۰٫۰٫۰٫۰/۸، ۱۹۲٫۱۶۸٫۰٫۰/۱۶، لینکمحلی و …).
- روی forward: FastTrack برای established,related، بعد accept همان حالت، بعد drop برای connection-state=invalid با log=yes در صورت نیاز.
- قوانین نمونهٔ مستند را با اینترفیس واقعیتان تطبیق دهید: drop رسیدن به آدرس غیرعمومی از LAN، drop بستهٔ جدید از WAN بدون NAT مقصد (connection-nat-state=!dstnat روی اینترفیس عمومی)، و drop بسته از اینترنت با src غیرعمومی.
- در WinBox همان فیلدها را در IP → Firewall → Filter Rules با دکمهٔ + میبینید؛ ترتیب از بالا به پایین مهم است — اولین تطبیق برنده است.
اگر وسط کار قفل شدید، از کنسول سریال یا همان کلاینت داخل address-list وارد شوید و قانون drop را disable کنید. برای حملهٔ سنگین، log=yes روی drop ممکن است CPU را بیشتر فشار دهد؛ مستند همین نکته را یادآوری میکند.
در نظرات بنویسید نسخهٔ RouterOS، اینترفیس WAN/LAN و اینکه از WinBox قفل شدید یا نه (بدون رمز و بدون IP عمومی دقیق).
نکات امنیتی و خطاهای رایج
- قانون drop را بالای accept مدیریت نگذارید — دسترسی WinBox/SSH قطع میشود.
- ترافیک عبوری کلاینت را در input دنبال نکنید؛ جایش forward است.
- بدون FastTrack و accept برای established,related، هر بستهٔ برگشتی دوباره کل زنجیره را طی میکند و کند میشود.
- نام اینترفیس را از /interface print بگیرید؛ کپیکردن کورکورانهٔ ether1/bridge از مثال ممکن است اشتباه باشد.
- بعد از مجموعهٔ سالم، دوباره export بگیرید و روی lab قبل از سایت مشتری تمرین کنید.
شما بیشتر برای قفلکردن مدیریت روتر (input) میآیید یا برای بستن ترافیک مشکوک از اینترنت به LAN (forward)؟
مرجع کامل زنجیرهها، مثال محافظت روتر/LAN و اکشنهایی مثل accept، drop، fasttrack-connection و jump همان صفحهٔ Filter در مستندات RouterOS است؛ برچسبهای انگلیسی منو را ملاک بگیرید.
اگر فقط IPv4 دارید، همان منوی /ip firewall filter کافی است. برای IPv6 مستند مجموعهٔ جداگانهای میآورد چون کلاینتها اغلب بدون NAT مستقیم از اینترنت دیدهپذیرند — قوانین forward آنجا اجباریترند.
ترتیب پیشنهادی عملی: بکاپ، accept established روی input، address-list مدیریت، ICMP در صورت نیاز، drop input، بعد forward با FastTrack و قوانین ضد اسپوف/ضد !NAT. هر مرحله را از LAN مجاز تست کنید، نه از اینترنت خام.