從 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 size、in-storage-cache size、in-memory-low watermark 和 entropy-lost-timeout。熵來源 (內部和外部) 收集在熵混合器模組中。該熵精靈可將熵來源從混合器轉送到核心的熵集區。
如果不需要選取外部熵來源,則無需變更現有指令碼中的任何內容。
更新 kickstart 檔案之前,必須從外部來源 (如 HSM) 取得合法的二進位熵資料,並將其儲存為大小介於 512 KB 到 10 MB 之間的檔案,例如 entropy_data.dat。然後,以有效的 base64 格式對 entropy_data 檔案的內容進行編碼,以建立另一個檔案,例如 entropy_data.b64。
在 kickstart 檔案中,提供以下新參數以作為 entropy 命令的一部分:
- data - 來自外部來源的 base64 編碼熵資料。
- sources - 此位元遮罩值 (0 = default、1 = interrupts、2 = RDRAND、4 = RDSEED、8 = 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
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 程式設計指南》。