Firewall

MikroTik RouterOS 防火墙提供有状态与无状态数据包过滤、NAT 与高级流量分类,用于保护网络数据流并阻止未授权访问。它包括 filter/raw、mangle 与 nat。

防火墙

防火墙基础

防火墙通过连接跟踪实现有状态数据包过滤,并可执行无状态过滤,从而提供用于管理进出路由器及穿过路由器数据流的安全功能。结合网络地址转换(NAT),它可用于阻止对直连网络和路由器本身的未授权访问,同时过滤出站流量。

网络防火墙可阻止外部威胁接触网络内部的敏感数据。当不同网络互联时,外部人员入侵 LAN 的风险始终存在。此类入侵可能导致私有数据被窃取和传播、重要数据被篡改或破坏,甚至整个硬盘被擦除。防火墙用于防止或降低连接其他网络所固有的安全风险。正确配置的防火墙是高效、安全网络基础设施部署的关键。

MikroTik RouterOS 拥有非常强大的防火墙实现,功能包括:

  • 无状态数据包检查。
  • 有状态数据包检查。
  • 七层协议检测。
  • 点对点协议过滤。
  • 按以下条件进行流量分类:
    • 源 MAC 地址。
    • IP 地址(网络或列表)与地址类型(广播、本地、组播、单播)。
    • 端口或端口范围。
    • IP 协议。
    • 协议选项(ICMP 类型与代码字段、TCP 标志、IP 选项与 MSS)。
    • 数据包进入或离开的接口。
    • 内部流与连接标记。
    • DSCP 字节。
    • 数据包内容。
    • 数据包到达速率与序列号。
    • 数据包大小。
    • 数据包到达时间。

以及更多功能!

防火墙分为三个主要模块:

  • filter/raw:用于根据配置策略拒绝流量。在 RAW 表中过滤可在不需要连接跟踪时节省资源。
  • mangle:用于标记特定连接、数据包、流,设置优先级以及执行其他任务。
  • nat:用于设置地址转换规则、重定向与端口转发。

链

防火墙过滤规则按链分组。这样可以让数据包在一个链中按某个共同条件匹配,然后传递到另一个链按其他共同条件处理。

例如,数据包需要按 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 中更详细的数据包处理流程请参阅 RouterOS 数据包流 图。