查看源代码 snmp_user_based_sm_mib (snmp v5.18)
SNMP-USER-BASED-SM-MIB 的检测函数
模块 snmp_user_based_sm_mib
实现了 SNMP-USER-BASED-SM-MIB 的检测函数,以及用于配置数据库的函数。
请注意,身份验证已根据 RFC 7860 (SNMP-USM-HMAC-SHA2-MIB) 进行了扩展。
配置文件在 SNMP 用户手册中进行了描述。
概要
类型
列表的大小/长度取决于身份验证协议
注意
“指示是否可以对代表此用户发送到/来自由 usmUserEngineID 标识的 SNMP 引擎的消息进行身份验证,如果可以,则指示使用的身份验证协议的类型。”
注意
“指向此 usmUserTable 中另一个概念行的指针。此另一个概念行中的用户称为克隆自用户。”
注意
“每个使用此语法定义的对象都必须标识一个协议 P、一个密钥 K 和一个生成 L 个八位字节输出的哈希算法 H。”
注意
“表示用户名称的可读字符串。这是(基于用户的安全)模型相关的安全 ID。”
列表的大小/长度取决于隐私协议
注意
“指示是否可以保护代表此用户发送到/来自由 usmUserEngineID 标识的 SNMP 引擎的消息免遭泄露,如果可以,则指示使用的隐私协议的类型。”
OCTET STRING (SIZE(0..32))
函数
将 USM 安全数据(用户)添加到代理配置。相当于 usm.conf
文件中的一行。
此函数在系统启动时从 supervisor 调用。
从代理配置中删除 USM 安全数据(用户)。
将配置文件中的所有数据插入数据库,并销毁所有旧数据,包括具有 StorageType nonVolatile
的行。从配置文件创建的行将具有 StorageType nonVolatile
。
类型
-type auth_key() :: snmp:octet_string().
列表的大小/长度取决于身份验证协议
Size any for usmNoAuthProtocol
Size 16 for usmHMACMD5AuthProtocol
Size 20 for usmHMACSHAAuthProtocol
Size 28 for usmHMAC128SHA224AuthProtocol
Size 32 for usmHMAC192SHA256AuthProtocol
Size 48 for usmHMAC256SHA384AuthProtocol
Size 64 for usmHMAC384SHA512AuthProtocol
-type auth_protocol() ::
usmNoAuthProtocol | usmHMACMD5AuthProtocol | usmHMACSHAAuthProtocol |
usmHMAC128SHA224AuthProtocol | usmHMAC192SH256AuthProtocol | usmHMAC256SHA384AuthProtocol |
usmHMAC384SHA512AuthProtocol.
注意
“指示是否可以对代表此用户发送到/来自由 usmUserEngineID 标识的 SNMP 引擎的消息进行身份验证,如果可以,则指示使用的身份验证协议的类型。”
注意
此类型的一些条目实际上由 SNMP-USM-HMAC-SHA2-MIB mib 定义。
AutonomousType
-type clone_from() :: zeroDotZero | snmp:row_pointer().
注意
“指向此 usmUserTable 中另一个概念行的指针。此另一个概念行中的用户称为克隆自用户。”
RowPointer
-type key_change() :: snmp:octet_string().
注意
“每个使用此语法定义的对象都必须标识一个协议 P、一个密钥 K 和一个生成 L 个八位字节输出的哈希算法 H。”
OCTET STRING
-type name() :: snmp_framework_mib:admin_string().
注意
“表示用户名称的可读字符串。这是(基于用户的安全)模型相关的安全 ID。”
SnmpAdminString (SIZE(1..32))
-type priv_key() :: snmp:octet_string().
列表的大小/长度取决于隐私协议
Size any for usmNoPrivProtocol
Size 16 for usmDESPrivProtocol
Size 16 for usmAesCfb128Protocol
-type priv_protocol() :: usmNoPrivProtocol | usmDESPrivProtocol | usmAesCfb128Protocol.
注意
“指示是否可以保护代表此用户发送到/来自由 usmUserEngineID 标识的 SNMP 引擎的消息免遭泄露,如果可以,则指示使用的隐私协议的类型。”
注意
此类型的一些条目实际上由 SNMP-USM-AES-MIB mib 定义。
AutonomousType
-type public() :: string().
OCTET STRING (SIZE(0..32))
-type usm_entry() :: {EngineID :: snmp_framework_mib:engine_id(), UserName :: name(), SecName :: snmp_framework_mib:admin_string(), Clone :: clone_from(), AuthP :: auth_protocol(), AuthKeyC :: key_change(), OwnAuthKeyC :: key_change(), PrivP :: priv_protocol(), PrivKeyC :: key_change(), OwnPrivKeyC :: key_change(), Public :: public(), AuthKey :: auth_key(), PrivKey :: priv_key()}.
函数
add_user(EngineID, Name, SecName, Clone, AuthP, AuthKeyC, OwnAuthKeyC, PrivP, PrivKeyC, OwnPrivKeyC, Public, AuthKey, PrivKey)
查看源代码-spec add_user(EngineID, Name, SecName, Clone, AuthP, AuthKeyC, OwnAuthKeyC, PrivP, PrivKeyC, OwnPrivKeyC, Public, AuthKey, PrivKey) -> {ok, Key} | {error, Reason} when EngineID :: snmp_framework_mib:engine_id(), Name :: name(), SecName :: snmp_framework_mib:admin_string(), Clone :: clone_from(), AuthP :: auth_protocol(), AuthKeyC :: key_change(), OwnAuthKeyC :: key_change(), PrivP :: priv_protocol(), PrivKeyC :: key_change(), OwnPrivKeyC :: key_change(), Public :: public(), AuthKey :: auth_key(), PrivKey :: priv_key(), Key :: term(), Reason :: term().
将 USM 安全数据(用户)添加到代理配置。相当于 usm.conf
文件中的一行。
此函数在系统启动时从 supervisor 调用。
将配置文件中的所有数据插入数据库,并销毁所有具有 StorageType volatile
的旧行。从配置文件创建的行将具有 StorageType nonVolatile
。
所有 snmp
计数器都设置为零。
如果在配置文件中发现错误,则使用错误报告模块的函数 config_err/2
进行报告,并且该函数失败,原因为 configuration_error
。
ConfDir
是一个指向配置文件所在目录的字符串。
读取的配置文件是:usm.conf
。
从代理配置中删除 USM 安全数据(用户)。
将配置文件中的所有数据插入数据库,并销毁所有旧数据,包括具有 StorageType nonVolatile
的行。从配置文件创建的行将具有 StorageType nonVolatile
。
因此,在此函数被调用之后,SNMP-USER-BASED-SM-MIB 中的数据是来自配置文件的数据。
所有 snmp
计数器都设置为零。
如果在配置文件中发现错误,则使用错误报告模块的函数 config_err/2
进行报告,并且该函数失败,原因为 configuration_error
。
ConfDir
是一个指向配置文件所在目录的字符串。
读取的配置文件是:usm.conf
。