跳至内容
Secret Knock

通过 iPhone、iPad 和 Mac 进行 MikroTik 端口敲门

RouterOS 没有敲门守护进程,但其防火墙可以通过地址列表分阶段处理敲门:每个匹配的数据包都会将源地址加入一个列表,最后一个列表会开放 Winbox 或 SSH。Secret Knock 可发送两种 MikroTik 敲门方式:端口和 ping 大小。

通过端口敲门

按顺序进行三次连接尝试,会将地址从一个列表移至另一个列表;只有位于最终列表中的地址才能访问 Winbox (8291)。请将这些规则置于任何丢弃输入流量的规则之前。

/ip firewall filter
add chain=input protocol=tcp dst-port=4311 action=add-src-to-address-list \
    address-list=knock-1 address-list-timeout=10s comment="knock 1"
add chain=input protocol=tcp dst-port=5822 src-address-list=knock-1 \
    action=add-src-to-address-list address-list=knock-2 address-list-timeout=10s comment="knock 2"
add chain=input protocol=udp dst-port=6133 src-address-list=knock-2 \
    action=add-src-to-address-list address-list=knocked address-list-timeout=1h comment="knock 3"
add chain=input protocol=tcp dst-port=8291 src-address-list=knocked action=accept comment="Winbox after the knock"
add chain=input protocol=tcp dst-port=8291 action=drop comment="Winbox for everyone else"
RouterOS 终端

通过 ping 大小敲门

RouterOS 还可以匹配 ICMP 回显请求的大小。packet-size 是整个 IPv4 数据包的大小:20 字节 IP 标头、8 字节 ICMP 标头以及 ping 数据,因此 100 字节数据到达时为 128 字节。在 Secret Knock 的 ping 编辑器中,您输入数据大小;它会显示生成的 ICMP、IPv4 和 IPv6 数据包大小,并在超过 1280 字节时发出警告,因为数据包可能会被分片。

/ip firewall filter
add chain=input protocol=icmp packet-size=128 action=add-src-to-address-list \
    address-list=ping-1 address-list-timeout=10s comment="ping 100 bytes of data"
add chain=input protocol=icmp packet-size=308 src-address-list=ping-1 \
    action=add-src-to-address-list address-list=knocked address-list-timeout=1h comment="ping 280 bytes of data"
add chain=input protocol=tcp dst-port=8291 src-address-list=knocked action=accept
add chain=input protocol=tcp dst-port=8291 action=drop
RouterOS 终端

在 App 中添加门

  1. 1新建门 › 从模板开始 › MikroTik — 端口序列或 MikroTik — ping 大小。两者均将 Winbox (8291) 设为要检查的端口。
  2. 2输入您的端口,或者 ping 的数据大小和次数。
  3. 3敲门,等待“门微开”,然后打开 Winbox。

GitHub 上的所有示例 → 本页面上的每项配置均可直接复制:github.com/mobilcomm/secretknock-examples(公共领域)。

问题

为什么我的 MikroTik 敲门无法打开?

请检查规则顺序(敲门规则必须位于丢弃规则之前)、address-list 超时设置,以及路由器是否能看到您用于敲门的地址——Secret Knock 会在主屏幕上显示该地址。

适用于您设置的指南