為 SNMPv3 設定 ESXi SNMP 代理程式時,代理程式會支援傳送通知 (設陷和通知) 以及接收 GETGETBULKGETNEXT 要求。SNMPv3 還提供比 SNMPv1 或 SNMPv2c 更強大的安全性,包含金鑰驗證和加密。

通知是傳送者最多可以重新傳送三次的通知,或在接收者確認通知前會重新傳送的通知。

設定 SNMP 引擎識別碼

每個 SNMP v3 代理程式都具有一個引擎識別碼,做為其唯一識別碼。引擎識別碼與雜湊功能搭配使用可產生用於針對 SNMP v3 訊息進行驗證和加密的金鑰。

如果不指定引擎識別碼,則啟用 SNMP 代理程式時,會自動產生一個引擎識別碼。

如果透過 ESXCLI 執行 ESXCLI 命令,您必須提供用於指定目標主機和登入認證的連線選項。如果使用ESXiShell 直接在主機上使用 ESXCLI 命令,則可以使用所提供的命令,無需指定連線選項。如需有關連線選項的詳細資訊,請參閱 ESXCLI 概念和範例

必要條件

使用 ESXCLI 命令設定ESXiSNMP 代理程式。如需有關如何使用 ESXCLI 的詳細資訊,請參閱ESXCLI 入門

程序

  • 執行 esxcli system snmp set 命令並使用 --engineid 選項,以設定 SNMP 引擎識別碼。
    例如,執行下列命令:
    esxcli system snmp set --engineid id
    此處, id 為引擎識別碼,它必須是長度介於 5 到 32 個字元之間的十六進位字串。

設定 SNMP 驗證和隱私通訊協定

SNMPv3 選擇性地支援驗證和隱私通訊協定。

驗證用於確認使用者的身分。隱私允許對 SNMP v3 訊息進行加密,來確保資料的機密性。這些通訊協定提供比 SNMPv1 和 SNMPv2c (使用社群字串確保安全性) 更高層級的安全性。

驗證和隱私都是選用項。但是,您必須啟用驗證後才能啟用隱私。

SNMPv3 驗證和隱私通訊協定是獲得授權的 vSphere 功能,某些 vSphere 版本可能不提供。

如果透過 ESXCLI 執行 ESXCLI 命令,您必須提供用於指定目標主機和登入認證的連線選項。如果使用ESXiShell 直接在主機上使用 ESXCLI 命令,則可以使用所提供的命令,無需指定連線選項。如需有關連線選項的詳細資訊,請參閱 ESXCLI 概念和範例

必要條件

使用 ESXCLI 命令設定ESXiSNMP 代理程式。如需有關如何使用 ESXCLI 的詳細資訊,請參閱ESXCLI 入門

程序

  1. (選擇性) 執行 esxcli system snmp set 命令與 --authentication 選項來設定驗證。
    例如,執行下列命令:
    esxcli system snmp set --authentication protocol
    在此, protocol 必須為 none (不進行驗證) 或 SHA1
  2. (選擇性) 執行 esxcli system snmp set 命令與 --privacy 選項來設定隱私。
    例如,執行下列命令:
    esxcli system snmp set --privacy protocol
    在此, protocol 必須為 none (無隱私) 或 AES128

設定 SNMP 使用者

您最多可設定 5 個可存取 SNMP v3 資訊的使用者。使用者名稱長度不得超過 32 個字元。

在設定使用者過程中,您根據使用者的驗證和隱私密碼以及 SNMP 代理程式的引擎識別碼產生驗證和隱私雜湊值。如果在設定使用者後變更引擎識別碼、驗證通訊協定或隱私通訊協定,則使用者將失效,並且您必須重新設定這些使用者。

如果透過 ESXCLI 執行 ESXCLI 命令,您必須提供用於指定目標主機和登入認證的連線選項。如果使用ESXiShell 直接在主機上使用 ESXCLI 命令,則可以使用所提供的命令,無需指定連線選項。如需有關連線選項的詳細資訊,請參閱 ESXCLI 概念和範例

必要條件

  • 設定使用者之前,先確認您已設定驗證和隱私通訊協定。
  • 確認您知道每個要設定之使用者的驗證與隱私密碼。密碼長度必須至少為 7 個字元。將這些密碼儲存在主機系統上的檔案中。
  • 使用 ESXCLI 命令設定ESXiSNMP 代理程式。如需有關如何使用 ESXCLI 的詳細資訊,請參閱ESXCLI 入門

程序

  1. 如果要使用驗證或隱私,請透過將 esxcli system snmp hash 命令與 --auth-hash--priv-hash 旗標搭配執行,取得使用者的驗證和隱私雜湊值。
    例如,執行下列命令:
    esxcli system snmp hash --auth-hash secret1 --priv-hash secret2
    在此, secret1 是包含使用者驗證密碼的檔案路徑, secret2 是包含使用者隱私密碼的檔案路徑。

    或者,您可以傳遞 --raw-secret 旗標,然後在命令列中直接指定密碼。

    例如,您可執行下列命令:
    esxcli system snmp hash --auth-hash authsecret --priv-hash privsecret --raw-secret
    產生的輸出可能為以下內容:
    Authhash: 08248c6eb8b333e75a29ca0af06b224faa7d22d6
    Privhash: 232ba5cbe8c55b8f979455d3c9ca8b48812adb97
    系統會顯示驗證和隱私雜湊值。
  2. 透過將 esxcli system snmp set 命令與 --user 旗標搭配執行來設定使用者。
    例如,您可執行下列命令:
    esxcli system snmp set --user userid/authhash/privhash/security
    此命令接受下列參數:
    參數 說明
    userid 使用者名稱。
    authhash 驗證雜湊值。
    privhash 隱私雜湊值。
    security 為該使用者啟用的安全性層級,可以為 auth (代表僅驗證)、priv (代表驗證和隱私) 或 none (代表無驗證或隱私)。
    例如,執行下列命令為 user1 設定具有驗證和隱私的存取權:
    esxcli system snmp set --user user1/08248c6eb8b333e75a29ca0af06b224faa7d22d6/
    232ba5cbe8c55b8f979455d3c9ca8b48812adb97/priv
    您必須執行下列命令為 user2 設定不具有驗證和隱私的存取權:
    esxcli system snmp set --user user2/-/-/none
  3. (選擇性) 透過執行下列命令來測試使用者組態:
    esxcli system snmp test --user username --auth-hash secret1 --priv-hash secret2
    如果組態正確,此命令會傳回下列訊息:[已使用引擎識別碼和以下安全性層級正確驗證使用者 username: protocols]。此處, protocols 表示設定的安全性通訊協定。

設定 SNMP v3 目標

設定 SNMP v3 目標,允許 ESXi SNMP 代理程式傳送 SNMPv3 設陷和通知。

SNMP v3 允許傳送設陷和通知。通知訊息所屬之訊息類型,傳送者最多可重新傳送三次。傳送者會在每次嘗試之間等待 5 秒,除非訊息已由接收者確認。

您最多可以設定三個 SNMP v3 目標以及三個 SNMP v1/v2c 目標。

若要設定一個目標,您必須指定接收設陷或通知之系統的主機名稱或 IP 位址、使用者名稱、安全性層級以及是傳送設陷還是通知。安全性層級可以為 none (無安全性)、auth (僅驗證) 或 priv (驗證和隱私)。

如果透過 ESXCLI 執行 ESXCLI 命令,您必須提供用於指定目標主機和登入認證的連線選項。如果使用ESXiShell 直接在主機上使用 ESXCLI 命令,則可以使用所提供的命令,無需指定連線選項。如需有關連線選項的詳細資訊,請參閱 ESXCLI 概念和範例

必要條件

  • 對於 ESXi SNMP 代理程式和目標管理系統,請確認將存取這些設陷或通知的使用者已設定為 SNMP 使用者。

  • 如果您正在設定通知,則需要接收通知訊息的遠端系統上之 SNMP 代理程式的引擎識別碼。
  • 使用 ESXCLI 命令設定ESXiSNMP 代理程式。如需有關如何使用 ESXCLI 的詳細資訊,請參閱ESXCLI 入門

程序

  1. (選擇性) 如果正在設定通知,請透過執行具有 --remote-users選項的 esxcli system snmp set 命令來設定遠端使用者。
    例如,執行下列命令:
    esxcli system snmp set --remote-users userid/auth-protocol/auth-hash/priv-protocol/priv-hash/engine-id
    此命令接受下列參數:
    參數 說明
    userid 使用者名稱。
    auth-protocol 驗證通訊協定,none (不進行驗證) 或 SHA1
    auth-hash 驗證雜湊或 - (若驗證通訊協定為 none)。
    priv-protocol 隱私通訊協定 AES128none
    priv-hash 隱私雜湊或 - (若隱私通訊協定為 none)。
    engine-id 接收通知訊息之遠端系統上 SNMP 代理程式的引擎識別碼。
  2. 執行具有 --v3targets選項的 esxcli system snmp set 命令。
    例如,執行下列命令:
    esxcli system snmp set --v3targets hostname@port/userid/secLevel/message-type
    命令參數如下。
    參數 說明
    hostname 接收設陷或通知之管理系統的主機名稱或 IP 位址。
    port 接收設陷或通知之管理系統上的連接埠。如未指定連接埠,則使用預設連接埠 162。
    userid 使用者名稱。
    secLevel 您已設定的驗證和隱私層級。如果您僅設定了驗證,請使用 auth,如果同時設定了驗證和隱私,請使用 priv,如果兩者均未設定,請使用 none
    message-type 管理系統接收的訊息類型。使用 trapinform
  3. (選擇性) 如果未啟用 ESXiSNMP 代理程式,則執行下列命令:
    esxcli system snmp set --enable true
  4. (選擇性) 透過執行 esxcli system snmp test 命令傳送測試通知,驗證是否正確設定了代理程式。
    代理程式會將 warmStart通知傳送到設定的目標。