← 返回文章列表

Zabbix trapper 暴露面治理:用白名单替代 AllowKey

2026-10-02 · 安全 · Zabbix

监控主机的 10051(trapper)端口对全网开放。查日志发现,每天有近百个不同 IP 连上来,发来的都不是 Zabbix 协议数据:

Message from 185.247.137.158 is missing header. Message ignored.

而真正需要连上来的 agent,只有十来个。

第一步:分清真实 agent 和扫描器

光看"有没有连接记录"没有意义,扫描器也在连。判据要落在协议层:

更直接的判据是 zabbix 自己的主机映射:"cannot send list of active checks to <ip>: host [<hostname>]" 这类日志能把 IP 和 zabbix 里登记的主机名对上,是真实 agent 的强证据。

最后统计下来:117 个来源 IP 里,96 个是纯扫描垃圾流量,14 个是真 agent,归并成 10 个 /16 网段。

第二步:先收敛,再谈加密

Zabbix 的 AllowKey(PSK)或 TLS 双向认证,才是防止伪造数据的根本手段。但它要求所有 agent 同步改配置,几百台设备一次改错就是全网监控中断,协调成本很高。

而更快的止血是网络层收敛:安全组只放行这 10 个网段,其余全拒。这不解决"白名单内可以伪造",但先把绝大多数噪音挡在外面,而且改动只在安全组,不影响任何 agent。

代价:粒度

/16 覆盖六万多个地址,"能连上 10051"不等于"是你的 agent"。真正的边界是"白名单内的机器可以提交伪造数据"这一条,而不是"公网任何人都能"。对内部工具来说,这个风险可以接受;如果不能接受,就得回到按 IP 收敛(维护成本高)或上 PSK(协调成本高)。

第三步:限速,对付不正常的重连

治理过程中还发现一个 agent 每秒重连 50 次。原因很朴素:新服务器建好了,但 zabbix 里还没建对应的 host,agent 一直在重试。

这类"配置错误伪装成攻击"的流量,靠特征识别很难区分,靠速率限制却很有效:给单个来源 IP 的新建连接设上限,异常重连会被压住,正常 agent(长连接、极少新建)不受影响。

值得记一笔的是:同一个 IP 在日志里既可能是扫描器也可能是正常 agent,单看 IP 会误判。结合"这个 IP 对应 zabbix 里的哪个主机名"才看得准。

给排查的一点提醒

看到端口被大量连接时,先分清三件事:是协议数据还是垃圾数据、能不能对上主机名、速率是否异常。这三条能覆盖绝大多数"看起来像攻击"的流量,同时避免误伤真正的主机。