如何解决Auth 和 Priv 不适用于 SNMP v3 陷阱
我正在向我的 net-snmp 容器发送 v3 陷阱。当我将 securityLevel 设置为 1 时,我得到:
0.....0...1x....
..........-0+...
..p.....3.8.....
....myuser..s...f'
##..{-..0~.....p
.........Mon Jan
04 18:42:16 CET
20210...+.....me
ssage
安全级别 1 是 noAuthnopriv,所以它可以工作,没关系。当我将安全级别设置为 2 时,我使用我的用户名和 authPassword 登录,它再次正常工作!但是,当我在我的用户名中打错字时,我发现它也能正常工作:( 因此,我可以写用户名:someone password:something 而不是有效凭据,它仍然可以工作。当涉及到安全级别 3 时,无论我尝试什么,我都无法让它工作。它总是像上面复制的结果一样,但是,在日志的末尾而不是“消息”有一行哈希代码。这是否意味着它可以看到凭据作为错误的,为什么它被编码?我无法以任何方式解码它? 所以总而言之,使用 authnopriv 它每次都有效,它不在乎 auth 密码是否正确,而使用 authPriv 它从不工作,它不在乎 priv 密码是否正确。我尝试将我的代码与来自互联网的代码混合,但没有帮助。这是我的代码:
TransportMapping transport = new DefaultUdpTransportMapping();
transport.listen();
Snmp snmp = new Snmp(transport);
USM usm = new USM(SecurityProtocols.getInstance().addDefaultProtocols(),new OctetString(MPv3.createLocalEngineID()),0);
SecurityProtocols.getInstance().addPrivacyProtocol(new PrivAES192());
SecurityProtocols.getInstance().addPrivacyProtocol(new PrivAES256());
SecurityProtocols.getInstance().addPrivacyProtocol(new Priv3DES());
SecurityModels.getInstance().addSecurityModel(usm);
String username = "myuser";
snmp.getUSM().addUser( =
new OctetString(username),new UsmUser(new OctetString(username),AuthMD5.ID,new OctetString(
"myAuthPasswd"),PrivAES128.ID,new OctetString("myPrivPasswd")));
UserTarget target = new UserTarget();
target.setAddress(new UdpAddress(ipAddress + "/" + port));
target.setRetries(1);
target.setTimeout(11500);
target.setVersion(SnmpConstants.version3);
target.setSecurityLevel(3);
target.setSecurityName(new OctetString(username));
PDU pdu = new ScopedPDU();
pdu.setType(ScopedPDU.TRAP);
pdu.add(new VariableBinding(SnmpConstants.snmpTrapOID,SnmpConstants.linkDown));
pdu.add(new VariableBinding(new OID(trapOid),new OctetString("message")));
snmp.send(pdu,target);
System.out.println("Sending Trap to (IP:Port)=> " + ipAddress + ":"
+ port);
snmp.close();
}
另外,这是我从容器的用户表中得到的:
SNMP-USER-BASED-SM-MIB::usmUserAuthProtocol.".....~"!x..._...."."myuser" = OID: SNMP-USER-BASED-SM-MIB::usmHMACMD5AuthProtocol
所以这个用户有 MD5 authProtocol。 还有
SNMP-USER-BASED-SM-MIB::usmUserPrivProtocol.".....~"!x..._...."."myuser" = OID: SNMP-USER-BASED-SM-MIB::usmDESPrivProtocol
这个用户有 DES priv 协议。任何人都可以帮忙吗? 提前致谢。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。