Firewall
MikroTik RouterOS 防火墙提供有状态与无状态的数据包过滤、NAT 以及高级流量分类能力,用于保护网络数据流并阻止未授权访问。它包含 filter/raw、mangle 和 nat 模块,并通过预定义链实现高效的规则管理。
防火墙

防火墙通过利用连接跟踪(connection tracking)实现有状态的数据包过滤,并提供无状态数据包过滤,从而提供用于管理流入、流出及穿过路由器的数据流的安全功能。它结合网络地址转换(NAT),既可用于阻止对直连网络和路由器本身的未授权访问,也可作为出站流量的过滤器。
网络防火墙可以阻止外部威胁接触网络内部的敏感数据。只要不同的网络连接在一起,就始终存在网络外部人员闯入你的 LAN 的威胁。这类入侵可能导致私有数据被窃取和散布、重要数据被篡改或破坏,甚至整个硬盘被清空。防火墙用于防止或尽量降低连接到其他网络时固有的安全风险。正确配置的防火墙在高效、安全的网络基础设施部署中起着关键作用。
MikroTik RouterOS 拥有非常强大的防火墙实现,其功能包括:
- 无状态数据包检测。
- 有状态数据包检测。
- 第 7 层协议检测。
- 点对点(P2P)协议过滤。
- 按以下方式对流量进行分类:
- 源 MAC 地址。
- IP 地址(网络或列表)及地址类型(广播、本地、组播、单播)。
- 端口或端口范围。
- IP 协议。
- 协议选项(ICMP type 和 code 字段、TCP flags、IP options 和 MSS)。
- 数据包进入或离开的接口。
- 内部流标记和连接标记。
- DSCP 字节。
- 数据包内容。
- 数据包到达速率和序列号。
- 数据包大小。
- 数据包到达时间。
以及更多!
防火墙分为三大模块:
- filter/raw —— 用于根据配置的策略拒绝流量。在 RAW 表中进行过滤,可在无需连接跟踪时节省资源。
- mangle —— 用于标记特定的连接、数据包、数据流,设置优先级以及执行其他任务。
- nat —— 用于设置地址转换规则、重定向和端口转发。
链
防火墙过滤规则按链(chain)分组。这样可以先在一个链中按某个共同条件匹配数据包,然后将它转到另一个链中按其他共同条件进行处理。
例如,某个数据包需要按 IP 地址:端口 的组合进行匹配。当然,你可以向 forward 链中添加任意多条包含 IP 地址:端口 匹配条件的规则来实现,但更好的做法是先添加一条匹配来自特定 IP 地址流量的规则。然后,就可以把针对各个端口进行匹配的规则添加到 "mychain" 链中,而无需再指定 IP 地址。
/ip/firewall/filter
add chain=mychain protocol=tcp dst-port=22 action=accept
add chain=mychain protocol=tcp dst-port=23 action=accept
add action=jump chain=input src-address=1.1.1.2/32 jump-target="mychain"
处理链时,会按从上到下的顺序依次取出链中的规则。如果数据包匹配某条规则的条件,则对其执行指定的动作,并且该链中后续规则不再处理(passthrough 动作以及某些 Mangle 动作除外)。
如果数据包未匹配链中的任何规则,则该数据包被接受。
每个防火墙模块都有自己的预定义链:
- raw:
- prerouting
- output
- filter:
- input
- forward
- output
- mangle:
- prerouting
- input
- forward
- output
- postrouting
- nat:
- srcnat
- dstnat
- input
- output
RouterOS 中更详细的数据包处理流程见 Packet Flow in the RouterOS 图示。