SNMPv3开发--snmpd.conf
SNMPv3开发–snmpd.conf
Manpage of SNMPD.CONF
net-snmp配置文件详解
net-snmp配置:snmp v3的安全配置
基础测试实测配置
snmpv3 conf
sysName "XXX"
syslocation "XXX"
syscontact Admin <admin@example.com>
sysservices 72
view customView included .1.3.6.1
view customView included .1.3.6.1.6.1
view customView included .1.3.6.1.4.1.572.1000
rwuser v3user authPriv -V customHCView
trapsess -v 3 -l authPriv -u v3user 192.168.200.165:162
有个问题:反复重启snmpd会出现问题:USM unknown security name (no such user exists)
1. Net-SNMP通常将持久化数据(包括用户信息)存储在`/var/lib/snmp/snmpd.conf`或`/var/net-snmp/snmpd.conf`。# 查看Net-SNMP的默认设置net-snmp-config --default-mibdirsnet-snmp-config --snmpconfpath# 清除旧用户数据(重要!)sudo rm -f /var/net-snmp/snmpd.conf2. 官方推荐创建用户的方式,它会在后台正确处理持久化# 使用 net-snmp-config 工具sudo net-snmp-config --create-snmpv3-user -ro -a SHA -A "AuthPass123" -x AES -X "PrivPass123" v3user
trapsess 的问题
REF:https://net-snmp-users.narkive.com/QrdbFaOk/net-snmp-5-3-1-trouble-sending-v3-trap特性 trap2sink trapsess
协议版本 主要为 SNMPv1/v2c 设计 专为 SNMPv3 设计
配置方式 简单参数 完整会话配置
安全支持 有限(依赖全局安全设置) 完整安全参数控制
目标指定 只能指定 IP 和社区名 可指定完整传输参数
会话控制 全局共享会话 独立会话实例
灵活性 低 高
初始化时机 启动时立即初始化 按需初始化
推荐使用场景 SNMPv1/v2c 环境 SNMPv3 环境
解决:使用脚本动态创建用户,并且创建前清理之前的用户信息。
获取USM用户列表
snmpwalk -v 3 -n “” -u v3user -l authNoPriv -a SHA -A AuthPass123 localhost .1.3.6.1.6.3.10.2.1.1
视图授权
视图授权是 SNMPv3 的安全模型,用于精确控制:
哪些用户(who)
可以访问哪些 OID(what)
进行什么操作(read/write)
视图定义
view <视图名称> <子树OID> included|excluded
# 示例:
view basicView included .1.3.6.1.2.1.1 # 系统组
view customView included .1.3.6.1.4.1.310 # 企业自定义OID
view fullAccess included .1 # 整个OID树
组和访问权限
# 语法
group <组名> <安全模型> <安全级别>
access <组名> “” <安全模型> <安全级别> <上下文> <前缀> <读视图> <写视图> <通知视图>
# 示例:
group AdminGroup usm authPriv
access AdminGroup "" usm authPriv noPrefix fullAccess fullAccess none
用户授权
# 简写形式
rouser v3user authPriv -V customView # 只读访问
rwuser v3user authPriv -V customView # 读写访问
安全级别详解
级别 命令选项 认证 加密 适用场景
noAuthNoPriv -l noAuthNoPriv × × 内网安全环境
authNoPriv -l authNoPriv √ × 需要认证但无需加密
authPriv -l authPriv √ √ 公网或敏感数据
###############################################################################
一、代理行为配置 (AGENT BEHAVIOUR)
###############################################################################
监听地址配置 (核心配置)
agentAddress udp:127.0.0.1:161 # 只监听本地回环
#agentAddress udp:161 # 监听所有IPv4接口
#agentAddress udp6:[::1]:161 # 监听IPv6回环
#agentAddress udp:161,udp6:161 # 同时监听IPv4和IPv6
推荐生产环境配置:
agentAddress udp:192.168.1.100:161 # 指定IP监听
###############################################################################
二、SNMPv3 用户认证
###############################################################################
创建V3用户 (重启后会自动移除密码)
createUser authOnlyUser MD5 “auth_password”
createUser authPrivUser SHA “auth_pass” AES “priv_pass”
createUser internalUser MD5 “internal_pass”
最佳实践:
1. 将createUser放入/var/lib/snmp/snmpd.conf
2. 使用复杂密码(12位以上混合字符)
3. 定期轮换密码
###############################################################################
三、访问控制 (ACCESS CONTROL) - 最复杂关键部分
###############################################################################
视图定义 - 控制可见OID范围
view systemonly included .1.3.6.1.2.1.1 # 系统信息
view systemonly included .1.3.6.1.2.1.25.1 # 主机资源
view fullView included .1 # 整个OID树
view customView included .1.3.6.1.4.1.310 # 企业自定义
社区字符串访问 (SNMPv1/v2c)
rocommunity public # 所有IP可读
rocommunity secret 10.0.0.0/16 # 指定网段
rwcommunity admin localhost # 本地读写
SNMPv3用户访问
rouser authOnlyUser # 只读无需加密
rwuser authPrivUser priv # 读写需加密
rouser monitor -V systemonly # 限制视图
传统访问控制 (更精细)
com2sec mySec default public
group MyGroup v2c mySec
view all included .1
access MyGroup “” any noauth exact all none none
###############################################################################
四、系统信息配置
###############################################################################
sysLocation “数据中心-A3机架”
sysContact “noc@example.com | 紧急: 13800138000”
sysName “core-router-01”
sysServices 72 # 服务标识(64+8=应用层+网络层)
设备描述扩展
sysDescr “Cisco IOS XE Software, ISR4451/K9”
###############################################################################
九、代理扩展功能
###############################################################################
1. 执行外部命令
extend webserver /usr/bin/curl -Is http://localhost
extend-sh diskusage /bin/df -h /
2. 传递处理 (Pass-through)
pass .1.3.6.1.4.1.2021.789 /usr/local/bin/custom_agent
3. AgentX 子代理支持
master agentx
agentXSocket tcp:localhost:705 # 网络连接
#agentXSocket /var/agentx/master # 本地socket
4. 可加载模块
dlmod cisco /usr/lib/snmp/cisco.so
日志分析:
# 在snmpd.conf中添加
logfile /var/log/snmpd.log
doDebug 1
debugTokens all