Press "Enter" to skip to content

Mikrotik ROS防火墙chain区别

在 Mikrotik 的防火墙 filter 表中,input、output 和 forward 是三个最核心、最常用的链(chain)。它们代表了数据包流经路由器时不同阶段的处理点,针对不同方向和目的地的流量进行过滤。理解它们的区别是正确配置 Mikrotik 防火墙的关键。

简单来说:

  1. input 链: 处理进入路由器本身的数据包。
  2. output 链: 处理从路由器本身发出的数据包。
  3. forward 链: 处理经过路由器进行转发(即目的地不是路由器本身)的数据包。

下面详细解释:

  1. input 链 (Input Chain)
    • 处理对象: 目的地是路由器本身 IP 地址的数据包。这些数据包进入路由器后,不是为了被转发到其他网络,而是为了被路由器自身的进程处理(例如,访问路由器的 WebFig、SSH、Winbox 界面,路由器响应 ping 请求,DNS 查询到路由器,NTP 更新到路由器等)。
    • 目的: 主要用于保护路由器本身的服务和资源不受到未经授权的访问或恶意攻击。例如,你可以设置规则只允许特定 IP 地址或端口访问路由器的管理界面。
    • 常见用途:
      • 限制哪些 IP 可以访问 Winbox/SSH/WebFig。
      • 允许或拒绝 Ping 请求到路由器。
      • 允许或拒绝 DNS 查询到路由器(如果路由器作为 DNS 服务器)。
      • 允许路由器获取 NTP 时间同步。
  2. output 链 (Output Chain)
    • 处理对象: 源自路由器本身的数据包。这些数据包是路由器上的进程或服务产生的,将被发送到其他网络或主机(例如,路由器发起一个 Ping 请求,路由器进行 DNS 查询,路由器发送 SNMP 陷阱,路由器下载软件包更新,路由器回复管理界面的请求等)。
    • 目的: 主要用于控制路由器自身发出的流量。虽然不如 input 和 forward 常用,但在特定场景下(如控制路由器访问互联网、限制路由器发出的特定协议流量)会有用。
    • 常见用途:
      • 限制路由器自身可以访问哪些外部服务。
      • 控制路由器作为客户端进行 DNS 查询的行为。
      • 限制路由器发出的日志或 SNMP 陷阱流量。
  3. forward 链 (Forward Chain)
    • 处理对象: 进入路由器,但目的地不是路由器本身,而是通过路由器路由到其他网络或主机的数据包。这些数据包只是经过路由器进行转发。例如,局域网内的电脑访问互联网,DMZ 区的服务器访问内部网络资源等。
    • 目的: 主要用于控制不同网络之间(例如,局域网 LAN 与广域网 WAN 之间,不同 LAN 子网之间)的流量流动,实现网络隔离、访问控制、过滤掉不期望的流量等。这是在大多数网络环境中配置用户流量过滤、实现安全策略最常用到的链。
    • 常见用途:
      • 允许或拒绝局域网用户访问互联网。
      • 阻止内部网络访问某些外部网站或服务。
      • 限制不同内部网段之间的通信。
      • 实现基本的网络访问控制策略。

总结表格:

处理的数据包方向/目的地数据包的来源/去向主要用途
input进入路由器,目的地是路由器本身从外部到路由器内部进程保护路由器自身的服务和安全
output从路由器发出从路由器内部进程到外部控制路由器自身发出的流量
forward经过路由器转发从一个网络到另一个网络控制网络间(非路由器自身)的流量转发

数据包流向示意图(简化版):

网络接口 -> Prerouting -> 路由判断 (Packet destined for router or another network?)

  • 如果是去路由器本身的 -> input -> 本地进程
  • 如果是去其他网络的 -> forward -> Postrouting -> 网络接口

本地进程 -> output -> Postrouting -> 网络接口

理解这三个链的区别,能够帮助你准确地将防火墙规则放置在正确的位置,从而达到预期的过滤效果。将规则放在错误的链中,是防火墙配置中最常见的错误之一,会导致规则不起作用。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注