پرش به محتویات

آموزش IPv6؛ شب دوازدهم: Firewall در RouterOS

Chain ورودی از خود Router و Chain فوروارد از Hostهای پشت آن محافظت می‌کند. Ruleهای IPv4 روی IPv6 اثری ندارند؛ پس Policy مستقل و قابل آزمایش می‌سازیم.

تا حد امکان از Firewall پیش‌فرض فعلی RouterOS آغاز کنید. Baseline زیر برای Lab کنترل‌شده و با فرض درست بودن Interface Listهای WAN و LAN است. ترتیب Ruleها مهم است و فرمان add آن‌ها را Append می‌کند؛ Policy دوم را زیر Final Drop نچسبانید.

محافظت از Router با input

/ipv6 firewall filter
add chain=input action=accept connection-state=established,related,untracked \
    comment="v6 input: established/related"
add chain=input action=drop connection-state=invalid \
    comment="v6 input: drop invalid"
add chain=input action=accept protocol=icmpv6 \
    comment="v6 input: ICMPv6 required"
add chain=input action=accept protocol=udp dst-port=546 \
    src-address=fe80::/10 in-interface-list=WAN \
    comment="v6 input: DHCPv6 client/PD"
add chain=input action=accept in-interface-list=LAN \
    src-address=fd12:3456:789a::/48 \
    comment="v6 input: management from trusted ULA"
add chain=input action=drop in-interface-list=WAN \
    comment="v6 input: drop other WAN"
add chain=input action=drop comment="v6 input: default deny"

ULA نمونه را جایگزین کنید یا Prefix مدیریت و Portها را محدودتر بنویسید. Rule مجاز باید پیش از Final Drop باشد. اگر مدیریت با GUA انجام می‌شود، همان Subnet را Match کنید. MAC Access روی Linkهای Route‌شده جای Policy را نمی‌گیرد.

پذیرش گستردهٔ ICMPv6 یک Baseline مناسب است. Ruleهای کامل پیش‌فرض MikroTik، رسیدگی دقیق‌تر RFC و Bogon List دارند؛ اگر موجودند حفظشان کنید. Rate Limit نسنجیده ممکن است ND را بشکند یا حمله را پنهان کند.

محافظت از Clientها با forward

در این Policy، Clientهای LAN اتصال خروجی می‌سازند و WAN فقط به HTTPS یک سرور مشخص دسترسی ورودی دارد:

/ipv6 firewall filter
add chain=forward action=accept connection-state=established,related,untracked \
    comment="v6 fwd: established/related"
add chain=forward action=drop connection-state=invalid \
    comment="v6 fwd: drop invalid"
add chain=forward action=accept protocol=icmpv6 \
    comment="v6 fwd: ICMPv6/PMTUD"
add chain=forward action=accept in-interface-list=LAN out-interface-list=WAN \
    connection-state=new comment="v6 fwd: LAN outbound"
add chain=forward action=accept in-interface-list=WAN protocol=tcp dst-port=443 \
    dst-address=2001:db8:1200:ab20::80 connection-state=new \
    comment="v6 fwd: HTTPS to web01"
add chain=forward action=drop in-interface-list=WAN connection-state=new \
    comment="v6 fwd: block unsolicited WAN"
add chain=forward action=drop comment="v6 fwd: default deny/inter-VLAN"

Ruleهای DNS، Mail، VPN و Inter-VLAN را آگاهانه پیش از Drop نهایی قرار دهید. انتشار بومی IPv6 به Destination NAT نیاز ندارد: DNS مستقیماً به GUA سرور اشاره می‌کند و Firewall Port را مجاز می‌کند.

ایمن‌سازی سرویس‌های Router

/ip service print
/ip service disable telnet,ftp,www,api
/tool mac-server set allowed-interface-list=LAN
/tool mac-server mac-winbox set allowed-interface-list=LAN
/ip neighbor discovery-settings set discover-interface-list=LAN

با وجود نام Menu، /ip service سرویس‌های IPv4 و IPv6 را کنترل می‌کند. SSH یا Winbox را فقط در صورت نیاز و محدود به مبدأهای مدیریت نگه دارید.

اثبات عملکرد

/ipv6 firewall filter print stats
/log print where topics~"firewall"

از بیرون و فقط روی سیستم‌های متعلق به خودتان:

nmap -6 -Pn -p 22,25,53,80,443 2001:db8:1200:ab20::80
curl -6 -I https://www.example.net/

Web، DNS، انتقال‌های وابسته به PMTU، Portهای مجاز و مسدود و مدیریت Router را آزمایش کنید. Counter باید Rule منطبق را نشان دهد. برای Debug فقط یک Rule محدود را موقت Log کنید؛ Log کردن همهٔ Packetها عملی نیست.