如何在 net-snmp 5.8 上配置具有 USM 身份验证和隐私的 SNMPv3 以避免“解析 ScopedPDU 时出现安全服务 3 错误”?

问题描述 投票:0回答:2

我在 CentOS7 上运行了有效的 net-snmp v5.7 安装,现在我尝试在 CentOS8 上运行的 net-snmp v5.8 上执行相同的操作。

我已配置/etc/snmp/snmpd.conf如下:

syslocation Somewhere
syscontact [email protected]

dontLogTCPWrappersConnects yes
agentaddress udp:161,udp6:161

includeAllDisks 10%

engineID host.example.com
rouser -s usm user1
rouser -s usm user2

用户在 /var/lib/net-snmp/snmpd.conf 中创建,如下所示,重新启动会按预期转换这些用户:

createUser "user1" "SHA256" "password" "AES256" "password"
createUser "user2" "SHA256" "password" "AES256" "password"

在同一台机器上,snmpwalk 在 /etc/snmp/snmp.conf 中配置如下:

defversion  3
defsecurityname  user1
defsecuritylevel  authPriv
defauthtype  SHA256
defauthpassphrase  password
defprivtype  AES256
defprivpassphrase  password

尝试运行 snmpwalk(将上述参数添加到 snmp.conf 中)失败,如下所示:

[root@host ~]# snmpwalk host.example.com
security service 3 error parsing ScopedPDU
security service 3 error parsing ScopedPDU
security service 3 error parsing ScopedPDU
security service 3 error parsing ScopedPDU
security service 3 error parsing ScopedPDU
security service 3 error parsing ScopedPDU
snmpwalk: Timeout (error parsing PDU)

使用 SHA 和 AES 代替 SHA256 和 AES256 具有相同的效果。

谁能确认以上有什么问题吗?

snmp net-snmp
2个回答
0
投票

我在 5.8 和 5.9.1 net-snmp 版本中遇到了这个问题。我的问题是我在 snmpd.conf 文件中错误地明确设置了engineid。我在引擎 ID 周围加了引号,并将该字符串转换为十六进制数字。字节 5 中有效引擎 ID 的格式应符合 RFC3411。 snmpd.conf 中有效的最终格式是 引擎ID 8001xxxxxxxxxxxxxxxxxx
对于我来说,这一行使用 MAC 地址(字节 5 是 03),共有 22 个十六进制数字,长度为 11 个字节

net-snmp snmpd 能够捕获此错误本来很好,但wireshark 通过报告数据包的“数据不符合 RFC3411”来捕获此错误。


0
投票

我也遇到了类似的问题,请问你解决了吗

© www.soinside.com 2019 - 2024. All rights reserved.