把 SNMP 访问来源锁死
SNMP 是网管平台采集设备数据的主要通道,默认团体名 public 与 private 是人人皆知的弱口令:知道团体名的任意主机都能读取甚至改写设备配置。三厂都支持在团体名后面绑定 ACL,只允许监控服务器的地址发起 SNMP 访问。更彻底的做法是迁移到 SNMPv3,用户级认证加上报文加密,摆脱「团体名即口令」的模型。
基本信息
| 适用平台 | 华为 VRP、思科 IOS、H3C Comware |
|---|---|
| 命令族 | 华为 snmp-agent community 加 acl;思科 snmp-server community 后接 ACL 编号;H3C snmp-agent community 加 acl |
| 版本选择 | v2c 用团体名与 ACL,v3 用用户、认证与加密 |
| 权限要求 | system-view / 全局配置模式 |
| 权限区分 | 只读(监控采集)与读写(配置下发)必须分开授权 |
典型使用场景
- 监控收口:只允许网管服务器的地址读取设备信息
- 去掉默认团体名:替换 public 与 private,改绑 ACL
- 读写分离:只读团体名给监控,读写团体名仅限配置管理平台
- 合规整改:等保与安全检查都会逐一核对团体名与访问限制
- 迁移 SNMPv3:先并行启用 v3,验证后再关闭 v2c
华为 VRP
华为 VRP
[Huawei] acl number 2000
[Huawei-acl-basic-2000] rule 5 permit source 10.1.1.200 0
[Huawei] snmp-agent
[Huawei] snmp-agent community read cipher 只读口令 acl 2000
[Huawei] snmp-agent sys-info version v3 # 逐步迁移到 v3
<Huawei> display snmp-agent community # 核对团体名与绑定的 ACL思科 IOS
思科 IOS
SW-CORE-01(config)# access-list 10 permit 10.1.1.200
SW-CORE-01(config)# snmp-server community 只读团体名 RO 10
SW-CORE-01(config)# snmp-server community 读写团体名 RW 20
SW-CORE-01(config)# snmp-server host 10.1.1.200 version 2c 只读团体名
SW-CORE-01# show snmp community # 核对团体名与访问列表H3C Comware
H3C Comware
[H3C] acl basic 2000
[H3C-acl-ipv4-basic-2000] rule 0 permit source 10.1.1.200 0
[H3C] snmp-agent
[H3C] snmp-agent community read 只读团体名 acl 2000
<H3C> display snmp-agent community三厂写法对照
| 对比项 | 华为 VRP | 思科 IOS | H3C Comware |
|---|---|---|---|
| 绑定 ACL | community 语句末尾加 acl 编号 | community 语句末尾直接写 ACL 编号 | community 语句末尾加 acl 编号 |
| 只读授权 | snmp-agent community read | snmp-server community 名称 RO | snmp-agent community read |
| 读写授权 | snmp-agent community write | snmp-server community 名称 RW | snmp-agent community write |
| 口令形态 | 高版本要求以 cipher 或 complex 形式配置 | 直接写团体名字符串 | 直接写团体名字符串 |
| 查看命令 | display snmp-agent community | show snmp community | display snmp-agent community |
只改团体名不绑 ACL,等于把设备管理面留给整个内网:任何一台中毒主机都能读取设备的接口、路由甚至配置内容。配合监控服务器的固定地址范围绑定 ACL,才是完整的收口。SNMPv2c 的团体名在报文中以明文传输,抓包即可得到,内网跨网段采集时优先考虑 v3。