本文已经综合整理了互联网上,比较全面和热门的防火墙规则了,不用再去其他地方对比和寻找了,因为最近我也是在研究ros系统,就综合整理了这个文章,理论上应该没有什么其他要补充的,特殊规则的话,建议自行参照本文另外添加,或者仔细搜索,或者问ai,或者对照官方文档添加修改谢谢。有任何问题,可以联系笔者。祝您食用愉快(#.#)
-
网络接口列表设置
- 创建接口列表:定义了“WAN”和“LAN”两个接口列表,用于区分广域网和局域网接口,方便后续在防火墙规则中引用。
- 添加接口成员:将“lan”“wan”“pppoe-out1”“bridge”“ether1”等接口分别添加到对应的“WAN”或“LAN”列表中,明确各接口所属网络区域。
-
IPv4防火墙规则
- 输入链规则
- 允许特定流量:允许ICMP协议的ping请求通过,同时接受状态为“established”(已建立连接)、“related”(相关连接)和“untracked”(未跟踪)的连接,保障正常网络通信。
- 丢弃异常流量:丢弃连接状态为“invalid”(无效)的数据包,防止非法或异常连接进入;丢弃来自“WAN”接口的所有数据包,除非后续规则另有允许,增强网络安全性。
- 防范端口扫描:通过一系列规则,依据TCP协议的不同标志位组合,识别多种端口扫描行为,如NMAP FIN Stealth扫描、SYN/FIN扫描等,并将扫描源地址添加到“port scanners”地址列表,14天后自动移除;对于已在“port scanners”列表中的源地址,直接丢弃其数据包,有效抵御端口扫描攻击。
- 转发链规则
- 加速转发:对状态为“established”和“related”的连接进行快速转发(fasttrack - connection),提升网络数据传输效率。
- 允许与拒绝:接受状态为“established”“related”“untracked”的转发连接;丢弃连接状态为“invalid”的数据包;丢弃来自“WAN”接口且未进行目的网络地址转换(DSTNAT)的新建连接,确保网络转发的安全性和规范性。
- 输入链规则
-
IPv6防火墙规则
- 地址列表设置:创建“bad_ipv6”地址列表,包含如“::/128”(未指定地址)、“::1/128”(本地环回地址)等特殊IPv6地址范围,用于标记不允许或需特殊处理的IPv6地址。
- 输入链规则
- 允许特定流量:允许状态为“established”“related”“untracked”的连接;允许ICMPv6协议的数据包通过;允许目的端口在33434 - 33534之间的UDP协议的traceroute流量;允许源地址为“fe80::/16”、目的端口为546的UDP协议的DHCPv6 - Client前缀委托流量;允许目的端口为500和4500的UDP协议的IKE流量;允许IPsec - AH和IPsec - ESP协议的流量;允许符合IPsec策略的流量,满足网络正常运行所需的多种通信需求。
- 丢弃异常流量:丢弃连接状态为“invalid”的数据包;丢弃来自非“LAN”接口的其他所有流量,保证局域网的安全性。
- 转发链规则
- 允许与拒绝:接受状态为“established”“related”“untracked”的转发连接;丢弃连接状态为“invalid”的数据包;丢弃源地址或目的地址在“bad_ipv6”列表中的数据包;丢弃跳数限制(hop - limit)等于1的ICMPv6数据包;接受ICMPv6协议、协议号为139(HIP)、目的端口为500和4500的UDP协议(IKE)、IPsec - AH、IPsec - ESP以及符合IPsec策略的流量;丢弃来自非“LAN”接口的其他所有流量,确保IPv6网络转发的安全与稳定。
文档中的防火墙规则用于RouterOS系统,涵盖接口列表定义、IPv4和IPv6防火墙规则,目的是保障网络安全、规范数据传输。整理归类如下
-
定义接口列表
/interface list
add comment=defconf name=WAN
add comment=defconf name=LAN
/interface list member
add interface=lan list=LAN
add interface=wan list=WAN
add interface=pppoe-out1 list=WAN
add interface=bridge list=LAN
add interface=ether1 list=WAN
- 作用:定义了“WAN”和“LAN”两个接口列表,用于区分广域网和局域网接口,并将相关物理接口或逻辑接口加入对应的列表,方便后续在防火墙规则中引用。
- IPv4防火墙规则
- 输入链(input chain)规则
/ip firewall filter
add action=accept chain=input comment="accept ping" protocol=icmp
add action=accept chain=input comment="accept established,related,untracked" connection-state=established,related,untracked
add action=drop chain=input comment="drop invalid" connection-state=invalid
add action=drop chain=input comment="drop all from WAN" in-interface-list=WAN
add chain=input protocol=tcp psd=21,3s,3,1 action=add-src-to-address-list address-list="port scanners" address-list-timeout=14d comment="Port scanners to list" disabled=no
add chain=input protocol=tcp tcp-flags=fin,!syn,!rst,!psh,!ack,!urg action=add-src-to-address-list address-list="port scanners" address-list-timeout=14d comment="NMAP FIN Stealth scan"
add chain=input protocol=tcp tcp-flags=fin,syn action=add-src-to-address-list address-list="port scanners" address-list-timeout=14d comment="SYN/FIN scan"
add chain=input protocol=tcp tcp-flags=syn,rst action=add-src-to-address-list address-list="port scanners" address-list-timeout=14d comment="SYN/RST scan"
add chain=input protocol=tcp tcp-flags=fin,psh,urg,!syn,!rst,!ack action=add-src-to-address-list address-list="port scanners" address-list-timeout=14d comment="FIN/PSH/URG scan"
add chain=input protocol=tcp tcp-flags=fin,syn,rst,psh,ack,urg action=add-src-to-address-list address-list="port scanners" address-list-timeout=14d comment="ALL/ALL scan"
add chain=input protocol=tcp tcp-flags=!fin,!syn,!rst,!psh,!ack,!urg action=add-src-to-address-list address-list="port scanners" address-list-timeout=14d comment="NMAP NULL scan"
add chain=input src-address-list="port scanners" action=drop comment="dropping port scanners" disabled=no
- 作用:允许ICMP的ping请求,保障网络连通性测试正常进行;接受已建立、相关和未跟踪的连接,确保合法通信持续;丢弃无效连接数据包,防止异常流量进入;丢弃来自WAN接口的所有数据包,除非有其他规则允许,增强安全性;识别多种端口扫描行为,将扫描源地址加入“port scanners”列表并在14天后移除,同时丢弃来自该列表的数据包,防范端口扫描攻击。
- 转发链(forward chain)规则
/ip firewall filter
add action=fasttrack-connection chain=forward comment="defconf: fasttrack" connection-state=established,related
add action=accept chain=forward comment="accept established,related, untracked" connection-state=established,related,untracked
add action=drop chain=forward comment="drop invalid" connection-state=invalid
add action=drop chain=forward comment="drop all from WAN not DSTNATed" connection-nat-state=!dstnat connection-state=new in-interface-list=WAN
- 作用:对已建立和相关的连接进行快速转发,提高网络传输效率;接受已建立、相关和未跟踪的转发连接;丢弃无效连接数据包;丢弃来自WAN接口且未进行目的地址转换(DSTNAT)的新建连接,保障网络转发安全。
- IPv6防火墙规则
- 地址列表设置
/ipv6 firewall address-list
add address=::/128 comment="defconf: unspecified address" list=bad_ipv6
add address=::1/128 comment="defconf: lo" list=bad_ipv6
add address=fec0::/10 comment="defconf: site-local" list=bad_ipv6
add address=::ffff:0.0.0.0/96 comment="defconf: ipv4-mapped" list=bad_ipv6
add address=::/96 comment="defconf: ipv4 compat" list=bad_ipv6
add address=100::/64 comment="defconf: discard only " list=bad_ipv6
add address=2001:db8::/32 comment="defconf: documentation" list=bad_ipv6
add address=2001:10::/28 comment="defconf: ORCHID" list=bad_ipv6
add address=3ffe::/16 comment="defconf: 6bone" list=bad_ipv6
add address=::224.0.0.0/100 comment="defconf: other" list=bad_ipv6
add address=::127.0.0.0/104 comment="defconf: other" list=bad_ipv6
add address=::/104 comment="defconf: other" list=bad_ipv6
add address=::255.0.0.0/104 comment="defconf: other" list=bad_ipv6
- 作用:创建“bad_ipv6”地址列表,包含多种特殊或需特殊处理的IPv6地址范围,用于后续在防火墙规则中对特定源或目的地址的数据包进行过滤。
- 输入链(input chain)规则
/ipv6 firewall filter
add action=accept chain=input comment="defconf: accept established,related,untracked" connection-state=established,related,untracked
add action=drop chain=input comment="defconf: drop invalid" connection-state=invalid
add action=accept chain=input comment="defconf: accept ICMPv6" protocol=icmpv6
add action=accept chain=input comment="defconf: accept UDP traceroute" port=33434-33534 protocol=udp
add action=accept chain=input comment="defconf: accept DHCPv6-Client prefix delegation." dst-port=546 protocol=udp src-address=fe80::/16
add action=accept chain=input comment="defconf: accept IKE" dst-port=500,4500 protocol=udp
add action=accept chain=input comment="defconf: accept ipsec AH" protocol=ipsec-ah
add action=accept chain=input comment="defconf: accept ipsec ESP" protocol=ipsec-esp
add action=accept chain=input comment="defconf: accept all that matches ipsec policy" ipsec-policy=in,ipsec
add action=drop chain=input comment="defconf: drop everything else not coming from LAN" in-interface-list=!LAN
- 作用:允许已建立、相关和未跟踪的连接;丢弃无效连接数据包;允许ICMPv6协议数据包、特定UDP端口范围的traceroute流量、特定UDP端口和源地址的DHCPv6 - Client前缀委托流量、特定UDP端口的IKE流量、IPsec - AH和IPsec - ESP协议流量以及符合IPsec策略的流量通过;丢弃来自非LAN接口的其他所有流量,保障网络安全和正常通信。
- 转发链(forward chain)规则
/ipv6 firewall filter
add action=accept chain=forward comment="defconf: accept established,related,untracked" connection-state=established,related,untracked
add action=drop chain=forward comment="defconf: drop invalid" connection-state=invalid
add action=drop chain=forward comment="defconf: drop packets with bad src ipv6" src-address-list=bad_ipv6
add action=drop chain=forward comment="defconf: drop packets with bad dst ipv6" dst-address-list=bad_ipv6
add action=drop chain=forward comment="defconf: rfc4890 drop hop-limit=1" hop-limit=equal:1 protocol=icmpv6
add action=accept chain=forward comment="defconf: accept ICMPv6" protocol=icmpv6
add action=accept chain=forward comment="defconf: accept HIP" protocol=139
add action=accept chain=forward comment="defconf: accept IKE" dst-port=500,4500 protocol=udp
add action=accept chain=forward comment="defconf: accept ipsec AH" protocol=ipsec-ah
add action=accept chain=forward comment="defconf: accept ipsec ESP" protocol=ipsec-esp
add action=accept chain=forward comment="defconf: accept all that matches ipsec policy" ipsec-policy=in,ipsec
add action=drop chain=forward comment="defconf: drop everything else not coming from LAN" in-interface-list=!LAN
- 作用:允许已建立、相关和未跟踪的转发连接;丢弃无效连接数据包;丢弃源地址或目的地址在“bad_ipv6”列表中的数据包;丢弃跳数限制为1的ICMPv6数据包;允许ICMPv6协议、协议号为139(HIP)、特定UDP端口的IKE流量、IPsec - AH、IPsec - ESP协议以及符合IPsec策略的流量通过;丢弃来自非LAN接口的其他所有流量,确保IPv6网络转发安全可靠。