امشب فایروال پایه را به سیاستی روشن تبدیل می‌کنیم: مدیریت فقط از میزبان مشخص، اینترنت فقط از LAN و شعبه فقط طبق Prefixهای تعریف‌شده.

این نوشته بخشی از دورهٔ MTCNA در ۳۰ شب است. مبنای مثال‌ها RouterOS 7 و آزمایشگاه ایزولهٔ دوره است؛ پیش از تغییر، Snapshot و دسترسی Console داشته باشید.

سیاست قبل از فرمان#

مبدأ مدیریت A برابر 192.168.50.10 است. WAN در Interface List خودش، LAN برابر bridge-lan و Transit برابر ether4 است. ICMP برای تشخیص مجاز است. DHCP Reply از WAN لازم است. DNS Resolver روتر هنوز برای کاربران فعال نیست.

برای اینکه تنظیم پایه را حذف نکنیم، دو Chain جدید می‌سازیم. این فرمان‌ها فقط یک‌بار روی R1 آزمایشگاهی و با Console اجرا شوند. هر Chain با Drop تمام می‌شود؛ در صورت رسیدن به پایان، به Ruleهای قدیمی تکیه نمی‌کند.

/ip firewall address-list add list=mtcna-admin address=192.168.50.10 comment="MTCNA admin A"
/ip firewall filter add chain=mtcna-input connection-state=established,related action=accept
/ip firewall filter add chain=mtcna-input connection-state=invalid action=drop
/ip firewall filter add chain=mtcna-input in-interface-list=LAN src-address-list=mtcna-admin protocol=tcp dst-port=22,8291 action=accept
/ip firewall filter add chain=mtcna-input in-interface-list=LAN protocol=icmp action=accept
/ip firewall filter add chain=mtcna-input in-interface=ether4 src-address=10.10.12.0/30 protocol=icmp action=accept
/ip firewall filter add chain=mtcna-input in-interface-list=WAN protocol=udp src-port=67 dst-port=68 action=accept
/ip firewall filter add chain=mtcna-input in-interface-list=LAN protocol=udp src-port=68 dst-port=67 action=accept
/ip firewall filter add chain=mtcna-input action=drop comment="MTCNA policy input drop"
/ip firewall filter add chain=mtcna-forward connection-state=established,related action=accept comment="MTCNA policy established"
/ip firewall filter add chain=mtcna-forward connection-state=invalid action=drop
/ip firewall filter add chain=mtcna-forward in-interface-list=LAN out-interface-list=WAN src-address=192.168.50.0/24 action=accept
/ip firewall filter add chain=mtcna-forward in-interface-list=LAN out-interface=ether4 src-address=192.168.50.0/24 dst-address=192.168.60.0/24 action=accept
/ip firewall filter add chain=mtcna-forward in-interface=ether4 out-interface-list=LAN src-address=192.168.60.0/24 dst-address=192.168.50.0/24 action=accept
/ip firewall filter add chain=mtcna-forward action=drop comment="MTCNA policy forward drop"

Chainهای آماده را با Jump در ابتدای Chain اصلی فعال کنید:

/ip firewall filter add chain=input action=jump jump-target=mtcna-input comment="MTCNA input jump"
/ip firewall filter move [find comment="MTCNA input jump"] 0
/ip firewall filter add chain=forward action=jump jump-target=mtcna-forward comment="MTCNA forward jump"
/ip firewall filter move [find comment="MTCNA forward jump"] 0

move به شمارهٔ آغاز همین جدول فعلی اشاره می‌کند؛ ابتدا print و یکتایی Commentها را کنترل کنید. ترتیب دو Jump نسبت به یکدیگر مهم نیست، چون Chain اصلی‌شان متفاوت است.

آزمون و بازگشت#

از A ورود تازهٔ SSH/WinBox، از B DHCP و اینترنت، از WAN ورود مدیریتی ناموفق و از A اتصال شعبه را امتحان کنید. پاسخ نشست قبلی کافی نیست. MAC-WinBox از سیاست IP عبور نمی‌کند؛ تنظیم‌های شب پنجم همچنان لازم‌اند.

برای بازگشت، از Console فقط Jumpهای MTCNA input jump و MTCNA forward jump را Disable کنید؛ Chainهای پایهٔ شب چهارم دوباره تصمیم می‌گیرند. Chain سفارشی بدون Jump فعال، خودش ترافیک نمی‌بیند.

خودآزمایی: چرا Address List به‌تنهایی چیزی را Drop نمی‌کند؟ چرا ICMP روتر را در input و انتشار سرویس داخلی را در forward بررسی می‌کنیم؟ آیا این سیاست IPv4 از IPv6 هم محافظت می‌کند؟

منبع#

مرجع Firewall Filter .