我正在尝试运行 SNMP 版本 3,但收到此错误:
snmpwalk: Unknown user name (SNMP v3)
这是我正在使用的命令
sudo snmpwalk -v3 -u bob -l AuthPriv -a SHA -A bobpassword -x AES -X bobpassword 127.0.0.1
我使用此命令创建了用户 bob:
net-snmp-create-v3-user
我创建了用户 bob,密码为 bobpassword。由于某种原因,它告诉我该用户未知。有任何想法吗?谢谢
我找到了这条路。
首先停止snmtp:
systemctl stop snmpd
之后创建用户:
net-snmp-config --create-snmpv3-user -ro -A {WRITE SHA PASSWORD} -X {WRITE AES PASSWORD} -a SHA -x AES {WRITE USER NAME}
最后启动snmpd服务:
systemctl restart snmpd
用于控制:
snmp-walk -v3 -u {WRITE SNMP USER NAME} -l authPriv -a SHA -A {WRITE SHA PASSWORD} -x AES -X {WRITE AES PASSWORD} {DESTINATION IP}
不是:我使用 SHA 和 AES 加密。您可以使用不同的加密方法。
正如我怀疑的那样,密码中的特殊字符生成了错误——这本身就是一个转移注意力的事情;这与“未知用户”完全无关。用户不是问题,而是与之相关的密码令人厌烦......
注意:执行
net-snmp-create-v3-user
命令之前必须先停止SNMPD服务:
systemctl stop snmpd.service
当然,创建用户后重新启动它。
使用特殊字符的密码 - 即使用单引号括起来 - 也会生成错误“snmpwalk:未知的用户名”:
sudo net-snmp-create-v3-user -ro -A 'y2VP^^>c3Q]-|"g' -a SHA -X '8:c4ii@!><?::}' -x AES snmpadmin
只需将下面的“AlphaNumericUsingCase”替换为使用大小写字母和数字的密码即可:
sudo net-snmp-create-v3-user -ro -A 'AlphaNumericUsingCase' -a SHA -X 'AlphaNumericUsingCase' -x AES snmpadmin
根据我的阅读,密码的长度似乎也必须至少为 (8) 个字符。
通常将特殊字符放在单引号中应该会导致它们被解释为文字,但这显然没有发生。
我怀疑一些特殊字符可以在密码中使用,但这必须通过一些尝试来确定。无论如何,您应该在网关防火墙中阻止对 UDP/161 和 UDP/162 的访问。