SNMP(Simple Network Management Protocol,简单网络管理协议)是用于网络设备监控和管理的标准协议。
SNMP 采用 “管理者-代理”模型:
SNMP 通过 UDP 161 端口(查询) 和 UDP 162 端口(陷阱/告警) 通信,采用 MIB(Management Information Base,管理信息库) 定义可查询的参数。
SNMPv3 是 目前唯一推荐在生产环境使用的版本,解决了 SNMPv1/v2 的安全问题。 核心安全特性:
✅ 认证(Authentication):确保消息来自可信来源(如 MD5/SHA)。 ✅ 加密(Privacy):防止数据被窃听(如 DES/AES 加密)。 ✅ 访问控制:可精细控制哪些用户能读/写哪些 OID。 SNMPv3 安全模型(Security Models)
安全级别 | 认证(Authentication) | 加密(Privacy) | 说明 |
---|---|---|---|
noAuthNoPriv | ❌ 无认证 | ❌ 无加密 | 仅用于测试,不安全 |
authNoPriv | ✅ 认证(MD5/SHA) | ❌ 无加密 | 认证但数据明文传输 |
authPriv | ✅ 认证(MD5/SHA) | ✅ 加密(DES/AES) | 最安全,推荐生产环境使用 |
SNMPv3 用户配置示例 在设备(如路由器)上配置 SNMPv3 用户:
snmp-server user admin admingroup v3 auth sha AuthPassword priv aes 128 PrivPassword
特性 | SNMPv1 | SNMPv2c | SNMPv3 |
---|---|---|---|
安全性 | ❌ 明文传输,无认证 | ❌ 明文传输,无认证 | ✅ 认证 + 加密(可选) |
认证 | ❌ 无 | ❌ 无 | ✅ MD5/SHA |
加密 | ❌ 无 | ❌ 无 | ✅ DES/AES |
协议效率 | 基础 | ✅ GETBULK 支持 | 更安全 & 高效 |
适用场景 | 仅测试/淘汰 | 内网(不推荐公网) | ✅ 生产环境 |
2. 工具验证
snmpwalk
验证,返回结果说明SNMP客户端配置正确# snmpwalk -v 3 -u Administrator -l authPriv -A 12345678 -a md5 -x des -X 12345678 10.77.77.11
SNMPv2-MIB::sysDescr.0 = STRING: Integrated Lights-Out 5 2.11 Nov 12 2019
SNMPv2-MIB::sysObjectID.0 = OID: SNMPv2-SMI::enterprises.232.9.4.11
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (3605464340) 417 days, 7:10:43.40
SNMPv2-MIB::sysContact.0 = STRING:
SNMPv2-MIB::sysName.0 = STRING: ILOSGH032WNSV.
SNMPv2-MIB::sysLocation.0 = STRING: Node1
snmpget
获取指定对象的值:# snmpget -v 3 -u Administrator -l authPriv -A 12345678 -a MD5 -x DES -X 12345678 10.77.77.11 DISMAN-EVENT-MIB::sysUpTimeInstance
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (3605442353) 417 days, 7:07:03.53
3. Zabbix系统添加主机
等一会就能看到SNMP的状态变为可用,接下来就可以创建图表(如监控硬件问题、磁盘、内存、CPU等信息)