在我的代码中,我正在配置usm用户并为SNMP添加用户 V3。我想以一种它将支持的方式配置用户 以下是一组算法。
SHA-1 + AES128, SHA-1 + DES, MD5 + AES128, MD5 + DES
让我们说同一个usm用户能够支持这4个用户 同时组合。现在,当我尝试从管理层 控制台,我想选择以上4和SNMP的任意组合 代理人应该工作。
注意:我不想添加新的usm用户。我希望同一个用户 同时配置了上述4种组合。
UsmUser user = new UsmUser(new OctetString(m_usmUser),
snmpAuthenticationAlgorithm,
snmpAuthenticationPassword,
snmpPrivacyAlgorithm,
snmpPrivacyPassword);
usm.addUser(user.getSecurityName(), user.getLocalizationEngineID(), user);
而不是上述内容,我想使用下面的内容。
UsmUser user = new UsmUser(new OctetString(m_usmUser),
AuthMD5.ID,
snmpAuthenticationPassword,
PrivDES.ID,
snmpPrivacyPassword);
usm.addUser(user.getSecurityName(), user.getLocalizationEngineID(), user);
user = new UsmUser(new OctetString(m_usmUser),
AuthMD5.ID,
snmpAuthenticationPassword,
PrivAES128.ID,
snmpPrivacyPassword);
usm.addUser(user.getSecurityName(), user.getLocalizationEngineID(), user);
user = new UsmUser(new OctetString(m_usmUser),
AuthSHA.ID,
snmpAuthenticationPassword,
PrivAES128.ID,
snmpPrivacyPassword);
usm.addUser(user.getSecurityName(), user.getLocalizationEngineID(), user);
user = new UsmUser(new OctetString(m_usmUser),
AuthSHA.ID,
snmpAuthenticationPassword,
PrivDES.ID,
snmpPrivacyPassword);
usm.addUser(user.getSecurityName(), user.getLocalizationEngineID(), user);
答案 0 :(得分:2)
根据定义的RFC 3414,SNMPv3标准在USM配置中不支持每个USM用户多于一个auth + priv组合。此限制是由usmUserTable的结构和索引引起的。 但是,使用SNMP4J,您可以为每个代理定义多个USM实例,并为每个USM实例分配其自己的usmUserTable实例,并在其自己的SNMPv3上下文中注册每个表实例。
虽然这样可行,但可以更容易理解和实现SNMPv3用户名中的安全协议后缀(或前缀),如“myUser.AES128”与“myUser.DES”等。