文章目录
- 说明
- SNMP服务的安装
- 本机连接SNMPV3操作
- MIB Browser连接SNMPV3
- 问题总结
- 密码过短
- 权限配置错误,导致OID不存在
说明
- 工具
- 建议尝试专业版ireasoning MIB brower,因为只有专业版支持SNMP v3的连接。当然,也可以尝试其他SNMP客户端工具
- 服务器类型
- 本文章使用armbian设备进行操作和讲解
SNMP服务的安装
- 更为详细的安装知道,参看armbian系统安装和卸载snmp服务(SNMPV2操作版本)
- 这里简单演示基本的操作
-
确保已安装相应的SNMP软件包,安装完毕后,SNMP服务将自动启动
sudo apt update sudo apt install snmp snmpd snmp-mibs-downloader sudo systemctl status snmpd
-
打开SNMP配置文件以进行编辑:
sudo vim /etc/snmp/snmpd.conf
-
自定义的用户名、密码和验证协议(MD5、SHA):
createUser readWriteUser MD5 "your_auth_passphrase" DES "your_privacy_passphrase" # readWriteUser SNMP v3用户的名称 需要选择一个自定义的名称 # MD5 "密码" 至少8位 # DES "协议" 至少8位
createUser
: 在SNMP v3代理中创建一个新的用户。MD5
: 这是认证协议的选择,使用MD5算法进行身份验证。认证协议用于验证用户的身份,并确保消息的完整性,防止篡改。"your_auth_passphrase"
: 这是用于身份验证的密码短语。密码短语用于生成认证密钥,用于进行身份验证。DES
: 加密协议的选择,使用DES算法进行数据加密。加密协议用于保护传输的数据,防止被窃听和篡改。"your_privacy_passphrase"
: 用于加密的密码短语。密码短语用于生成加密密钥,用于对数据进行加密和解密。
-
添加以下行来定义SNMP v3用户的访问权限:
rouser yuanyou authPriv
- SNMPv3部分完整的配置如下:
# SNMPv3 doesn't use communities, but users with (optionally) an # authentication and encryption string. This user needs to be created # with what they can view with rouser/rwuser lines in this file. # # createUser username (MD5|SHA|SHA-512|SHA-384|SHA-256|SHA-224) authpassphrase [DES|AES] [privpassphrase] # e.g. # createuser authPrivUser SHA-512 myauthphrase AES myprivphrase # # This should be put into /var/lib/snmp/snmpd.conf # # rouser: a SNMPv3 read-only access username # arguments: username [noauth|auth|priv [OID | -V VIEW [CONTEXT]] rouser authPrivUser authpriv -V systemonly createUser yuanyou MD5 "yuanyou123" DES "yuanyou123" rouser yuanyou authPriv
-
保存并关闭文件(按Ctrl+X,然后按Y保存)
-
重启SNMP服务以使配置更改生效:
sudo systemctl restart snmpd
-
客户端连接成功的相应的内容
Response: SNMPv3 report received from remote agent. User profile name: armbian Security user name: authOnlyUser Security engine ID: 80.00.1F.88.80.61.76.AF.15.4F.B4.73.65.00.00.00.00 (hex) Context name: authOnlyUser Context engine ID: 80.00.1F.88.80.61.76.AF.15.4F.B4.73.65.00.00.00.00 (hex) Authentication protocol: HMAC MD5 Privacy protocol: None Security level: Authentication Security model: USM 1: usmStatsUnknownUserNames.0 (counter) 2
- User profile name: 用户配置文件名,表示该SNMP v3用户的配置文件名称为"armbian"。
- Security user name: 安全用户名称,表示该SNMP v3用户的用户名为"authOnlyUser"。
- Security engine ID: 安全引擎ID,用于唯一标识SNMP v3用户和设备。
- Context name: 上下文名称,表示该SNMP v3用户的上下文名称与用户名相同,为"authOnlyUser"。
- Context engine ID: 上下文引擎ID,与安全引擎ID相同。
- Authentication protocol: 认证协议,表示该SNMP v3用户使用的认证协议为HMAC MD5。
- Privacy protocol: 加密协议,表示该SNMP v3用户没有配置加密协议(为"None")。
- Security level: 安全级别,表示该SNMP v3用户的安全级别为"Authentication",表示仅进行身份验证。
- Security model: 安全模型,表示该SNMP v3用户使用的安全模型为USM(用户安全模型)。
本机连接SNMPV3操作
-
在Armbian设备上使用SNMPv3连接命令
snmpget -v3 -l authPriv -u yuanyou -a MD5 -A "yuanyou123" -x DES -X "yuanyou123" <IP地址或主机名> <OID>
-
参数说明如下:
-v3
:指定使用SNMPv3版本。-l authPriv
:指定安全级别为认证与加密。-u yuanyou
:指定SNMPv3用户的用户名为"yuanyou"。-a MD5
:指定认证算法为MD5,与createUser
行中的认证算法一致。-A "yuanyou123"
:指定认证密码为"yuanyou",与createUser
行中的认证密码一致。-x DES
:指定加密算法为DES,与createUser
行中的加密算法一致。-X "yuanyou123"
:指定加密密码为"yuanyou",与createUser
行中的加密密码一致。<IP地址或主机名>
:替换为Armbian设备的IP地址或主机名。<OID>
:替换为您要查询的OID。
-
例如,获取本机设备并获取sysName的值:
snmpget -v3 -l authPriv -u yuanyou -a MD5 -A "yuanyou" -x DES -X "yuanyou" 127.0.0.1 sysName.0
-
查找设备支持的 OID 列表:
snmpwalk -v3 -l authPriv -u yuanyou -a MD5 -A "yuanyou123" -x DES -X "yuanyou123" 127.0.0.1
MIB Browser连接SNMPV3
- 说明MIB Browser个人免费版只能使用snmpv1/v2 无法使用v3,如有长期使用需求,请使用其他工具。专业版有30天的免费试用
- 填写基本的连接信息
- 然后就可以正常使用
问题总结
密码过短
root@armbian:~# snmpget -v3 -l authPriv -u yuanyou -a MD5 -A "yuanyou" -x DES -X "yuanyou" 127.0.0.1 sysName.0
Error: passphrase chosen is below the length requirements of the USM (min=8).
snmpget: (The supplied password length is too short.)
Error generating a key (Ku) from the supplied authentication pass phrase.
- 错误提示指出密码长度不符合USM(用户安全模型)的要求。默认情况下,USM要求密码长度至少为8个字符。
权限配置错误,导致OID不存在
root@armbian:~# snmpget -v3 -l authPriv -u yuanyou -a MD5 -A "yuanyou123" -x DES -X "yuanyou123" 127.0.0.1 sysName.0
SNMPv2-MIB::sysName.0 = No Such Object available on this agent at this OID
- 当时的配置文件中配置的权限命令有误,注意authPriv才是正确的写法
rouser yuanyou auth Priv