檢視原始碼 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 檔案中的一行。

此函數會在系統啟動時從監督程式呼叫。

從代理程式組態中刪除 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 檔案中的一行。

-spec configure(ConfDir) -> snmp:void() when ConfDir :: string().

此函數會在系統啟動時從監督程式呼叫。

將組態檔案中的所有資料插入資料庫,並銷毀 StorageType 為 volatile 的所有舊列。從組態檔案建立的列將具有 StorageType nonVolatile

所有 snmp 計數器都會設定為零。

如果在組態檔案中找到錯誤,則會使用錯誤報告模組的 config_err/2 函數來報告,並且函數會因原因 configuration_error 而失敗。

ConfDir 是一個字串,指向組態檔案所在的目錄。

讀取的組態檔案是:usm.conf

-spec delete_user(Key) -> ok | {error, Reason} when Key :: term(), Reason :: term().

從代理程式組態中刪除 USM 安全資料 (使用者)。

-spec reconfigure(ConfDir) -> snmp:void() when ConfDir :: string().

將組態檔案中的所有資料插入資料庫,並銷毀所有舊資料,包括 StorageType 為 nonVolatile 的列。從組態檔案建立的列將具有 StorageType nonVolatile

因此,在呼叫此函數後,SNMP-USER-BASED-SM-MIB 中的資料即為組態檔案中的資料。

所有 snmp 計數器都會設定為零。

如果在組態檔案中找到錯誤,則會使用錯誤報告模組的 config_err/2 函數來報告,並且函數會因原因 configuration_error 而失敗。

ConfDir 是一個字串,指向組態檔案所在的目錄。

讀取的組態檔案是:usm.conf