A partire da ESXi 8.0 Update 1, è possibile configurare origini di entropia esterne nel file kickstart per l'installazione con script.

È possibile configurare ESXi in un ambiente con protezione elevata per utilizzare l'entropia da origini di entropia esterne, ad esempio HSM (Hardware Security Module), in conformità con standard come i criteri comuni BSI, EAL4 e NIST FIPS CMVP, utilizzando il metodo di installazione con script.

ESXi 8.0 Update 1 include un daemon di entropia, entropyd, che crea un endpoint vAPI per fornire la REST API per la query e l'invio dei dati di entropia agli host ESXi. Il daemon di entropia ha diversi parametri configurabili: in-memory-cache size, in-storage-cache size, in-memory-low watermark e entropy-lost-timeout. Le origini di entropia, interne ed esterne, vengono raccolte nel modulo entropy-mixer. Il daemon di entropia inoltra le origini di entropia dal mixer al pool di entropia del kernel.

Se non è necessario selezionare origini di entropia esterne, non occorre modificare alcun elemento negli script esistenti.

È possibile configurare origini di entropia esterne solo per le nuove installazioni. Il daemon di entropia utilizza i dati di entropia passati durante l'installazione al primo avvio.
Nota: Per configurare le origini di entropia esterne, non è possibile utilizzare altri metodi, come l'installazione interattiva, un'immagine del cluster o Auto Deploy. Non è possibile abilitare la funzionalità in un host ESXi esistente.

Prima di aggiornare il file kickstart, è necessario ottenere dati di entropia binaria legittimi da un'origine esterna come HSM e salvarli come file di dimensioni comprese tra 512 KB e 10 MB, ad esempio entropy_data.dat. Si codifica quindi il contenuto del file entropy_data in un formato base64 valido per creare un altro file, ad esempio entropy_data.b64.

Nel file kickstart vengono forniti i seguenti nuovi parametri come parte del comando entropy:

  • data: dati di entropia con codifica base64 provenienti da un'origine esterna.
  • sources: questo valore della maschera di bit (0=default, 1=interrupts, 2=RDRAND, 4=RDSEED, 8=entropyd). viene impostato nelle impostazioni del kernel durante l'installazione. Se RDSEED è supportato, il valore predefinito è conformità FIPS. In caso contrario, il valore predefinito è tutte le origini dell'entropia, ad eccezione di entropyd. Per la conformità EAL4, 8 è l'unico valore necessario, ma è possibile utilizzare altre origini nell'intervallo decimale 0-15. I valori di origine persistono come impostazione del kernel durante l'installazione.
    Nota: Se si configura un host ESXi solo con origini di entropia esterne, ovvero con il valore di sources impostato su 8, è necessario continuare a fornire entropia esterna all'host utilizzando l'API di entropia. Se l'entropia esterna viene esaurita nell'host, l'host non risponde e potrebbe essere necessario un riavvio o una nuova installazione per ripristinare l'host da una situazione di questo tipo.

Kickstart di esempio con i parametri di entropia:

vmaccepteula
rootpw xxxxxxxx 
entropy --sources=8 --data=xxxxxxx/xx/xxxxx/xx/xxxx...
install --firstdisk --overwritevmfs 
network --bootproto=dhcp
Figura 1. Workflow di installazione con script per l'aggiunta di origini di entropia esterne
Workflow di installazione con script per l'aggiunta di origini di entropia esterne
Al termine dell'installazione, è possibile accedere all'host ESXi e definire alcuni parametri per il daemon di entropia dalla shell utilizzando i seguenti comandi ESXCLI:

Comandi ESXCLI

1. Comandi Get

## esxcli system entropyd get Descrizione del comando
1 <no argument> Ottiene i valori attualmente configurati e predefiniti di tutti i parametri entropyd
2 --default-values Ottiene i valori predefiniti

2. Comandi Set

## esxcli system entropyd set Descrizione del comando
1 --help Stampa i dettagli del comando "esxcli system entropyd set" e i relativi argomenti
2

--reset=all

--reset=memory-cache-size

--reset=memory-cache-low-watermark

--reset=storage-cache-size

--reset=external-entropy-lost-timeout

Reimpostare i valori predefiniti di un parametro o di tutti i parametri.
3 --memory-cache-size=<value in KiB> Imposta le dimensioni della cache di memoria in KiB.
4 --memory-cache-low-watermark=<value in %> Imposta il limite inferiore della cache della memoria in percentuale.
5 --storage-cache-size=<value in KiB> Imposta le dimensioni della cache di storage in KiB.
6 --external-entropy-lost-timeout=<value in seconds> Imposta il timeout della perdita dell'entropia esterna in secondi.

Esempio:

$ 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

Durante l'installazione, il programma di installazione di ESXi aggiorna il valore delle origini di entropia nelle impostazioni del kernel in modo che persista in ConfigStore dopo l'installazione. Questa modifica non influisce sull'avvio sicuro degli host ESXi.

Per ulteriori informazioni, vedere Sicurezza di vSphere e la guida alla programmazione di vSphere Automation SDK.