從 ESXi 8.0 Update 1 開始,可以在 kickstart 檔案中設定外部熵來源以進行指令碼式安裝。

透過使用指令碼式安裝方法,可以在高度安全的環境中設定 ESXi 以使用外部熵來源 (例如硬體安全性模組 (HSM)) 中的熵,並符合 BSI 通用準則、EAL4 和 NIST FIPS CMVP 等標準。

ESXi 8.0 Update 1 引入了一個熵精靈 entropyd,可建立 vAPI 端點以提供 REST API 來查詢熵資料並傳送到 ESXi 主機。該熵精靈有多個可設定參數:in-memory-cache sizein-storage-cache sizein-memory-low watermarkentropy-lost-timeout。熵來源 (內部和外部) 收集在熵混合器模組中。該熵精靈可將熵來源從混合器轉送到核心的熵集區。

如果不需要選取外部熵來源,則無需變更現有指令碼中的任何內容。

只能為新安裝設定外部熵來源。該熵精靈在首次開機時使用在安裝期間傳遞的熵資料。
備註: 無法使用任何其他方法 (如互動式安裝、叢集映像或 Auto Deploy) 設定外部熵來源。無法在現有 ESXi 主機上啟用該功能。

更新 kickstart 檔案之前,必須從外部來源 (如 HSM) 取得合法的二進位熵資料,並將其儲存為大小介於 512 KB 到 10 MB 之間的檔案,例如 entropy_data.dat。然後,以有效的 base64 格式對 entropy_data 檔案的內容進行編碼,以建立另一個檔案,例如 entropy_data.b64

在 kickstart 檔案中,提供以下新參數以作為 entropy 命令的一部分:

  • data - 來自外部來源的 base64 編碼熵資料。
  • sources - 此位元遮罩值 (0 = default1 = interrupts2 = RDRAND4 = RDSEED8 = entropyd。)於安裝期間在核心設定中進行設定。如果支援 RDSEED,則預設值為 FIPS 符合性。否則,預設值為 entropyd 除外的所有熵來源。為實現 EAL4 符合性,8 是唯一的必需值,但可以使用十進位範圍 0-15 中的其他來源。在安裝期間,來源值將保留為核心設定。
    備註: 如果僅為 ESXi 主機僅設定外部熵來源 (即 sources 值設定為 8) 時,則必須使用熵 API 繼續向主機提供外部熵。如果主機中的外部熵已用盡,則主機會變得無回應,並且可能需要硬重新開機或重新安裝,才能從這種情況中復原。

包含熵參數的範例 kickstart:

vmaccepteula
rootpw xxxxxxxx 
entropy --sources=8 --data=xxxxxxx/xx/xxxxx/xx/xxxx...
install --firstdisk --overwritevmfs 
network --bootproto=dhcp
圖 1. 用於新增外部熵來源的指令碼式安裝工作流程
用於新增外部熵來源的指令碼式安裝工作流程
安裝完成後,可以登入 ESXi 主機,並使用以下 ESXCLI 命令從 shell 為熵精靈定義一些參數:

ESXCLI 命令

1. 取得命令

## esxcli system entropyd get 命令說明
1 <no argument> 取得所有 entropyd 參數的目前設定值和預設值
2 --default-values 取得預設值

2. 設定命令

## esxcli system entropyd set 命令說明
1 --help 輸出「esxcli system entropyd set」命令及其引數的詳細資料
2

--reset=all

--reset=memory-cache-size

--reset=memory-cache-low-watermark

--reset=storage-cache-size

--reset=external-entropy-lost-timeout

將某個參數或所有參數重設為其預設值。
3 --memory-cache-size=<value in KiB> 設定記憶體快取大小,以 KiB 為單位。
4 --memory-cache-low-watermark=<value in %> 設定記憶體快取低浮水印 (以百分比表示)。
5 --storage-cache-size=<value in KiB> 設定儲存區快取大小,以 KiB 為單位。
6 --external-entropy-lost-timeout=<value in seconds> 設定外部熵遺失逾時值,以秒為單位。

範例:

$ esxcli system entropyd set --external-entropy-lost-timeout=70 --memory-cache-low-watermark=30 --memory-cache-size=612 --storage-cache-size=5096
$ esxcli system entropyd get
External Entropy Lost Timeout Seconds: 70
Memory Cache Low Watermark Percentage: 30
Memory Cache Size Kibibytes: 612
Storage Cache Size Kibibytes: 5096
                
$ esxcli system entropyd get --default-values
External Entropy Lost Timeout Seconds: 60
Memory Cache Low Watermark Percentage: 20
Memory Cache Size Kibibytes: 512
Storage Cache Size Kibibytes: 4096

在安裝過程中,ESXi 安裝程式會更新核心設定中的熵來源值,以便在安裝後保留在 ConfigStore 中。此變更不會影響 ESXi 主機的安全開機。

如需詳細資訊,請參閱《vSphere 安全性》和《vSphere Automation SDK 程式設計指南》。