SNMP 与 161 端口
161 是 SNMP 的服务端口(UDP),监控平台周期性地向设备发起查询,按对象标识符读取接口、CPU、内存等指标;设备主动上报的告警则发往 162。SNMP v1 与 v2c 只靠团体名做校验且明文传输,团体名等同于口令,默认值 public 与 private 是经典弱口令入口;v3 引入用户、认证与加密三档安全级别,是当前的推荐版本。
基本信息
| 服务 | SNMP 代理(snmpd、网络设备内置代理) |
|---|---|
| 协议 | UDP(161 查询,162 接收告警) |
| 版本 | v1、v2c 团体名明文;v3 支持认证与加密 |
| 配置文件 | /etc/snmp/snmpd.conf 或设备侧配置命令 |
| 权限要求 | 只读团体名用于监控,读写需单独评估 |
| 安全等级 | 仅内网并优先使用 v3 authPriv |
典型使用场景
- 网络设备监控:采集接口流量、丢包、光功率与设备温度
- 服务器指标采集:内存、磁盘、进程与自定义扩展项
- 告警接收:设备主动上报链路与硬件故障
- 资产盘点:批量读取系统描述与接口清单,核对台账
- 容量分析:长期采集流量曲线,为扩容提供依据
采集与版本验证
采集与版本验证
snmpwalk -v2c -c <只读团体名> 192.0.2.1 1.3.6.1.2.1.1.1.0 # 读取系统描述
snmpwalk -v3 -l authPriv -u monitor -a SHA -A '<认证口令>' -x AES -X '<加密口令>' 192.0.2.1 1.3.6.1.2.1.1.5.0 # 读取系统名
snmpwalk -v2c -c <只读团体名> 192.0.2.1 1.3.6.1.2.1.31.1.1.1.18 # 接口别名,用户自定义的名称往往更有用SNMP 版本选型
| 版本 | 安全特性 | 适用阶段 |
|---|---|---|
| v1 | 团体名明文,无批量操作 | 仅兼容极老设备 |
| v2c | 团体名明文,支持批量读取 | 改造过渡期 |
| v3 仅认证 | 校验身份但不加密 | 内网可接受 |
| v3 认证加加密 | 同时校验与加密 | 目标姿态,认证用 SHA,加密用 AES |
常用采集对象标识符
常用采集对象标识符
# 系统名
snmpget -v3 -l authPriv -u monitor -a SHA -A '<认证口令>' -x AES -X '<加密口令>' 192.0.2.1 1.3.6.1.2.1.1.5.0
# 接口入向字节数(64 位计数器)
snmpwalk -v3 -l authPriv -u monitor -a SHA -A '<认证口令>' -x AES -X '<加密口令>' 192.0.2.1 1.3.6.1.2.1.31.1.1.1.6
# 接口运行状态
snmpwalk -v3 -l authPriv -u monitor -a SHA -A '<认证口令>' -x AES -X '<加密口令>' 192.0.2.1 1.3.6.1.2.1.2.2.1.8代理侧加固(snmpd.conf)
代理侧加固(snmpd.conf)
# 绑定到内网地址,避免监听所有网卡
agentaddress udp:192.0.2.10:161
# 只允许监控网段使用只读团体名
rocommunity <复杂只读团体名> 192.0.2.0/24
# 提供 v3 用户,优先使用,不建立读写用户
createUser monitor SHA '<认证口令>' AES '<加密口令>'公网暴露且保留默认团体名的 SNMP 可被直接读取设备配置与接口信息,个别设备还支持写操作;应先升级到 v3 并对来源做限制。
只读团体名同样属于敏感信息:它泄露的是拓扑、接口与路由这类资产情报,足以支撑后续攻击;因此全设备共用同一团体名是不可接受的,应按区域或角色区分。
轮询性能要控制:批量读取能显著降低请求数量,但单轮采集上万个接口时仍要限制并发与超时重试,避免设备处理能力被轮询占满,导致指标抖动而误判为网络故障。