For the complete documentation index, see llms.txt. This page is also available as Markdown.

SNMP

概述

SNMP(简单网络管理协议,Simple Network Management Protocol) 用于监控与管理网络上的设备。它允许外部系统查询接口状态、运行时长、系统描述与资源使用情况等信息。

OpenBSD 基本系统内置 SNMP 守护进程 snmpd(8),提供只读的 SNMPv1 与 SNMPv2c 服务,适用于安全的本地与远程监控。

另一可选实现 Net-SNMP 通过软件包提供,支持 SNMPv3、写入操作以及广泛的 MIB 扩展。多数场景下 snmpd(8) 已足够,且更易于加固。

SNMP 守护进程对比

特性

snmpd(基本系统)

Net-SNMP(pkg_add net-snmp

SNMP 版本

v1、v2c(只读)

v1、v2c、v3(读写、认证)

配置

/etc/snmpd.conf

/etc/snmp/snmpd.conf 或命令行

守护进程

snmpd(8)

Net-SNMP 提供的 snmpd

集成

原生 OpenBSD 特性

更通用,风格接近 Linux

SNMPv3 支持

访问控制

仅限团体名与来源地址

完整的视图/用户控制

默认安全性

默认安全,仅限 localhost

除非加固,否则暴露范围广

除非需要 SNMPv3、set/walk 访问或跨平台 MIB 扩展,否则应使用 snmpd(8)

启用 snmpd(8)

原生 SNMP 守护进程 snmpd(8) 属于基本系统,通过 /etc/snmpd.conf 进行配置。

启用并启动服务:

默认配置仅绑定 localhost,并允许使用团体名 public 进行查询。

本地测试:

基本配置

编辑 /etc/snmpd.conf,定义团体访问与允许的来源地址。

以下示例配置向私有子网公开基本系统信息:

此配置:

  • 监听接口 IP 192.0.2.1

  • 接受来自 192.0.2.0/24 子网的 SNMP 查询

  • 为监控软件添加 system.* 数值

  • 暴露 pf 状态表与接口统计

  • 启用传感器读数(若 sysctl 支持)

编辑后重新加载配置:

SNMP 查询示例

使用 snmpctl(8) 在本地测试:

从远程系统查询(例如使用 Net-SNMP 工具):

获取接口统计:

若配置了 pf 包含:

安全注意事项

SNMPv1 与 SNMPv2c 使用明文团体名。为缩小暴露面:

  • snmpd.conf限制 source 来源地址

  • 使用 listen on 绑定到指定接口

  • 通过防火墙规则限制入站 UDP/161

pf.conf 规则示例:

避免将 SNMP 暴露到互联网。带认证的 SNMPv3 仅由 Net-SNMP 支持。

日志

所有访问事件与错误均通过 syslog 记录:

日志级别固定,无法通过 rcctl 启用详细或调试输出。

系统集成

sensorsd(8)snmpd 集成,用于暴露系统温度、电压与风扇数据。

启用 sensorsd

若在 snmpd.conf 中指定了 sensor,这些指标会自动暴露。

对于接口与防火墙统计,指令 include interfacesinclude pf 分别从 ifconfigpfctl 拉取数据。

Net-SNMP(可选)

若需要 SNMPv3、可写访问或 MIB 支持:

Net-SNMP 配置较为复杂,使用其自有语法。配置 SNMPv3:

完整配置请参阅 /usr/local/share/examples/net-snmp/snmpd.conf

最后更新于