SNMP
SNMP端口指南:161和162端口网络监控
了解 SNMP 轮询和陷阱的工作原理、端口 161 和 162 何时应可达,以及如何避免泄漏基础设施数据。
- 默认端口
- 161/162
- 协议
- UDP
- 主要用途
- 网络监控与遥测
SNMP 端口是什么?
SNMP(简单网络管理协议)用于监控和管理网络设备、服务器、存储、UPS 系统、打印机和设备。管理器通常在 UDP 端口 161 上轮询代理,而代理则在 UDP 端口 162 上向管理器发送陷阱或通知。
端口 161 用于 SNMP 轮询
监控系统通过 UDP 161 从 SNMP 代理查询设备计数器、接口状态、CPU、内存、温度和其他 MIB 值。
端口 162 用于陷阱和通知
当链路失败、阈值触发或硬件状态更改时,设备可以通过 UDP 162 向监控收集器发送事件通知。
SNMP 的工作原理
SNMP 有两个主要作用。 SNMP 管理器是提出问题或接收通知的监控系统。 SNMP 代理在受监控的设备上运行,并通过管理信息库 (MIB) 公开值。
对于日常监控,管理器在 UDP 161 上向代理发送 get、get-next、get-bulk 或 set 请求。对于事件驱动监控,设备在 UDP 162 上向管理器发送陷阱或通知。通知被确认;陷阱通常是一劳永逸的。
SNMP 端口 161 和 162
UDP 161 是大多数团队在询问 SNMP 端口是否打开时所指的端口。如果需要轮询,则监控收集器必须可以访问每个受监控设备。 UDP 162 是陷阱的反向方向,并从设备向收集器发出通知。
由于 SNMP 主要使用 UDP,因此简单的仅 TCP 检查可能会错过真实行为。 TCP 端口检查器对于一般可达性模式很有用,但 SNMP 验证应包括 SNMP 感知命令或针对确切社区、用户和 MIB 对象的监控收集器测试。
SNMPv1、SNMPv2c 和 SNMPv3
SNMPv1 和 SNMPv2c 使用行为类似于共享密码的社区字符串。它们仍然很常见,尤其是在较旧的网络中,但它们不提供强大的身份验证或隐私。如果社区字符串泄露,攻击者可能会读取敏感的清单和拓扑数据。
SNMPv3 添加了基于用户的安全性、身份验证和可选的隐私加密。对于新部署,具有身份验证和隐私功能的 SNMPv3 应作为默认设置。如果 SNMPv2c 仍然有必要,请严格限制其范围并使用唯一的非默认社区字符串。
何时应打开 SNMP
仅在受信任的监控收集器与其管理的设备之间打开 SNMP。典型来源包括 NMS 平台、可观测性收集器、SIEM 集成、容量规划系统和专用陷阱接收器。
不要将 SNMP 暴露于公共互联网。 SNMP 可以显示接口名称、设备型号、固件版本、路由详细信息、序列号和性能计数器。如果启用设置操作,可写 SNMP 访问可能会更加危险。
打开 SNMP 之前
在允许 SNMP 之前,请确定设备是否应支持轮询、陷阱、通知或全部三种。确认 SNMP 版本、允许的源 IP、团体字符串或 SNMPv3 用户、身份验证和隐私算法以及公开哪些 MIB 视图。
端口检查可以显示路径是否可达,但 SNMP 成功取决于协议级策略。使用 snmpwalk、snmpget、snmpbulkwalk 或监控平台本身来确认预期的 OID 返回数据并且拒绝未经授权的来源。
如何在网络设备、Linux 和 Windows 上启用 SNMP
在网络设备上,仅在管理接口或受信任的 VRF 上启用 SNMP(如果可能)。配置 SNMPv3 用户、使用 ACL 限制源地址并定义 MIB 视图,以便监控系统仅看到其需要的内容。
在 Linux 上,通常使用 net-snmp。配置 snmpd 以侦听目标接口,定义 SNMPv3 用户或受限社区,并仅允许来自监控收集器的 UDP 161。陷阱接收器(例如 snmptrapd)需要在收集器上打开 UDP 162。
在 Windows Server 上,与现代遥测选项相比,SNMP 是传统的,但它仍然出现在较旧的监控堆栈中。如果启用,则限制接受的主机,避免默认社区字符串,并在可行的情况下首选较新的代理或 Windows 本机监视。
- 轮询路径:监控收集器必须到达 UDP 161 上的代理。
- 陷阱路径:设备必须到达 UDP 162 上的陷阱接收器。
- 身份层:与共享社区字符串相比,更喜欢具有身份验证和隐私功能的 SNMPv3 用户。
- 暴露层:通过源IP、管理网络、MIB视图和只读权限限制SNMP。
如何测试 SNMP 连接
首先确认收集器和设备之间的基本网络可达性。然后使用与监控平台相同的 SNMP 版本、凭据和安全设置从收集器运行 snmpwalk 或 snmpget。
对于陷阱,生成或等待已知事件并确认收集器在 UDP 162 上接收该事件。如果陷阱未到达,请检查设备陷阱目标、源接口、路由、ACL、NAT、收集器防火墙规则以及收集器是否实际正在侦听。
SNMP常见故障处理案例
如果轮询失败,代理可能会被禁用、侦听不同的接口、被 ACL 阻止或拒绝社区或 SNMPv3 用户。如果只有部分OID失败,则可能是MIB视图、设备固件、权限或监控模板错误。
如果陷阱失败,则设备可能会发送到错误的收集器地址、使用错误的源接口,或者被路由和防火墙策略阻止。请记住,轮询和陷阱使用相反的流量方向,因此一个可以工作,而另一个则失败。
SNMP 安全检查表
尽可能使用具有身份验证和隐私功能的 SNMPv3。禁用默认社区(例如公共和私人),除非确实需要,否则避免写入访问,并将允许的源限制为监视收集器。
保持设备固件和代理修补、记录 SNMP 身份验证失败、监控查询量并对意外来源发出警报。将 SNMP 数据视为敏感数据,因为它可以揭示足够的基础设施详细信息以帮助攻击者计划横向移动。
常见问题
SNMP 使用什么端口?
SNMP 轮询通常使用 UDP 端口 161。SNMP 陷阱和通知通常发送到 UDP 端口 162 上的监控接收器。
SNMP 是 TCP 还是 UDP?
SNMP 通常使用 UDP。某些实现和代理可能支持 TCP,但标准 SNMP 监控通常依赖 UDP 161 进行轮询,依赖 UDP 162 进行陷阱。
将 SNMP 暴露到互联网安全吗?
不可以。SNMP 应仅限于受信任的监控网络。公开曝光可能会泄露设备库存、拓扑、计数器、固件详细信息和其他操作数据。
为什么端口 161 打开但 SNMP 轮询失败?
当 SNMP 策略阻止请求时,网络路径可能可达。检查 SNMP 版本、社区或 SNMPv3 用户、身份验证/隐私设置、允许的源 IP、MIB 视图、OID 支持和设备日志。