فایروال میکروتیک در نگاه اول ترسناک است: صدها گزینه و چند جدول. ولی منطقش ساده است و با فهمیدن سه مفهوم، میتوانید هر فایروالی را بخوانید: chain، connection state و ترتیب ruleها.
سه chain اصلی
| chain | چه بستهای | مثال |
|---|---|---|
input | بستههایی که مقصدشان خود روتر است | WinBox، SSH، DNS روتر، ping به روتر |
forward | بستههایی که از روتر عبور میکنند | کامپیوتر داخلی که سایتی را باز میکند |
output | بستههایی که خود روتر میفرستد | آپدیت، NTP، ایمیل بکاپ |
input از روتر محافظت میکند و forward از شبکهٔ پشت روتر. بیشتر روترهای هکشدهای که دیدهایم، chain input شان خالی بوده است.
connection state
فایروال میکروتیک هر اتصال را دنبال میکند و به هر بسته یکی از این برچسبها را میزند:
- new: اولین بستهٔ یک اتصال تازه.
- established: بستهای از اتصالی که قبلاً اجازه گرفته.
- related: اتصالی که به یک اتصال مجاز ربط دارد (مثل پاسخ خطای ICMP).
- invalid: بستهای که به هیچ اتصال شناختهشدهای نمیخورد؛ باید دور ریخته شود.
ترفند اصلی: اول بستههای established و related را قبول کنید (بیشتر ترافیک همین است و سریع رد میشود)، و فقط برای new تصمیم بگیرید.
ترتیب ruleها
ruleها از بالا به پایین خوانده میشوند و اولین ruleی که با بسته جور شود، تصمیم را میگیرد. یعنی یک drop کلی بالای یک accept، آن accept را بیاثر میکند. به همین دلیل همیشه این الگو را رعایت کنید: اول accept های مشخص، آخر یک drop برای همهٔ بقیه.
فایروال پایهٔ آماده
این فایروال برای روتری است که مثل مقالهٔ قبل کانفیگ شده (لیستهای WAN و LAN). مدیریت روتر فقط از شبکهٔ داخلی و VPN ممکن است:
/ip/firewall/address-list/add list=mgmt address=192.168.10.0/24 comment="LAN"
/ip/firewall/filter
add chain=input action=accept connection-state=established,related,untracked comment="input: established"
add chain=input action=drop connection-state=invalid comment="input: invalid"
add chain=input action=accept protocol=icmp comment="input: ping"
add chain=input action=accept src-address-list=mgmt in-interface-list=LAN comment="input: LAN management"
add chain=input action=drop in-interface-list=!LAN comment="input: drop all not from LAN"
add chain=forward action=fasttrack-connection connection-state=established,related hw-offload=yes comment="forward: fasttrack"
add chain=forward action=accept connection-state=established,related,untracked comment="forward: established"
add chain=forward action=drop connection-state=invalid comment="forward: invalid"
add chain=forward action=drop connection-state=new connection-nat-state=!dstnat in-interface-list=WAN comment="forward: drop new from WAN not port-forwarded"آخرین rule یعنی «هیچ اتصال تازهای از اینترنت به شبکهٔ داخلی نیاید، مگر پورتهایی که خودتان forward کردهاید». این همان رفتاری است که از هر روتر انتظار دارید.
اعمال فایروال بدون قفل شدن
کابوس همه: یک rule اشتباه و دسترسی به روتر از راه دور قطع میشود. میکروتیک برای این Safe Mode دارد. در ترمینال Ctrl+X بزنید (در WinBox دکمهٔ Safe Mode بالای صفحه). اگر در Safe Mode ارتباط قطع شود، روتر همهٔ تغییرات را خودش برمیگرداند. بعد از اطمینان، دوباره Ctrl+X تا تغییرات ثبت شوند.
باز کردن پورت (port forward)
مثلاً دوربین مداربسته روی 192.168.10.20 پورت ۸۰۸۰:
/ip/firewall/nat/add chain=dstnat in-interface-list=WAN protocol=tcp dst-port=8080 \
action=dst-nat to-addresses=192.168.10.20 to-ports=8080 comment="camera"address-list: بلاک کردن مهاجمها
address-list یک لیست IP است که ruleها میتوانند به آن ارجاع بدهند. یک کاربرد رایج: هر IPی که پورتهای معروف را اسکن کند، یک روز بلاک شود:
/ip/firewall/raw/add chain=prerouting in-interface-list=WAN src-address-list=blocked action=drop
/ip/firewall/filter/add chain=input in-interface-list=WAN protocol=tcp dst-port=22,23,3389,8291 \
action=add-src-to-address-list address-list=blocked address-list-timeout=1d \
place-before=0 comment="trap scanners"rule در جدول raw قبل از connection tracking اجرا میشود و برای drop کردن حجم زیاد سبکتر است.
چک کردن
/ip/firewall/filter/print stats: کنار هر rule تعداد بستههایی که به آن خورده. ruleی که همیشه صفر است یا اشتباه است یا لازم نیست.- برای عیبیابی موقتاً
log=yes log-prefix="DROP"را به rule آخر اضافه کنید و/log/printرا ببینید. - از بیرون شبکه (مثلاً اینترنت موبایل) با یک پورتاسکنر IP عمومی روتر را چک کنید؛ نباید هیچ پورتی جز پورتهایی که عمداً باز کردهاید جواب بدهد.
منابع
- MikroTik Manual — Building your first firewall help.mikrotik.com/docs/display/ROS/Building+Your+First+Firewall
- MikroTik Manual — Securing your router manual.mikrotik.com/docs/getting-started/securing-your-router