从 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 =默认值、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 编程指南》。