Solución de problemas de hosts protegidos
En este artículo se describen las soluciones a problemas comunes detectados al implementar o operar un host de Hyper-V protegido en el tejido protegido.
Se aplica a: Todas las versiones compatibles de Windows Server
Si no está seguro de la naturaleza del problema, pruebe primero a ejecutar los diagnósticos de tejido protegidos en los hosts de Hyper-V para reducir las posibles causas.
Característica de host protegido
Si tiene problemas con el host de Hyper-V, asegúrese primero de que la característica de soporte técnico de Hyper-V de Protección del host esté instalada. Sin esta característica, falta el host de Hyper-V algunos valores de configuración críticos y software que le permiten pasar la atestación y aprovisionar máquinas virtuales blindadas.
Para comprobar si la característica está instalada, use Administrador del servidor o ejecute el siguiente cmdlet en una ventana de PowerShell con privilegios elevados:
Get-WindowsFeature HostGuardian
Si la característica no está instalada, instálela con el siguiente cmdlet de PowerShell:
Install-WindowsFeature HostGuardian -Restart
Errores de atestación
Si un host no pasa la atestación con el servicio de protección de host, no puede ejecutar máquinas virtuales blindadas. La salida de Get-HgsClientConfiguration en ese host le mostrará información sobre por qué ese host produjo un error en la atestación.
En la tabla siguiente se explican los valores que pueden aparecer en el campo AttestationStatus y los posibles pasos siguientes, si procede.
AttestationStatus | Explicación |
---|---|
Expirada | El host ha pasado la atestación, pero el certificado de mantenimiento que se emitió ha expirado. Asegúrese de que la hora del host y del HGS están sincronizadas. |
InsecureHostConfiguration | El host no pasó la atestación porque no cumplió las directivas de atestación configuradas en HGS. Para obtener más información, consulte la tabla AttestationSubStatus. |
NoConfigurado | El host no está configurado para usar un HGS para la atestación y la protección de claves. Está configurado para el modo local, en su lugar. Si este host está en un tejido protegido, use Set-HgsClientConfiguration para proporcionarle las direcciones URL del servidor HGS. |
Superado | El host superó la atestación. |
TransientError | El último intento de atestación fracasó debido a un error de red, de servicio u otro error temporal. Vuelva a intentar la última operación. |
TpmError | El host no pudo completar su último intento de atestación debido a un error con el TPM. Para más información, consulte los registros de TPM. |
UnauthorizedHost | El host no pasó la atestación porque no estaba autorizado para ejecutar máquinas virtuales blindadas. Asegúrese de que el host pertenezca a un grupo de seguridad de confianza de HGS para ejecutar máquinas virtuales blindadas. |
Unknown | El host aún no ha intentado atestiguar con HGS. |
Cuando AttestationStatus se notifica como InsecureHostConfiguration, se rellenan uno o varios motivos en el campo AttestationSubStatus . En la tabla siguiente se explican los valores posibles de AttestationSubStatus y sugerencias sobre cómo resolver el problema.
AttestationSubStatus | Qué significa y qué hay que hacer |
---|---|
BitLocker | BitLocker no cifra el volumen del sistema operativo del host. Para resolver este problema, habilite BitLocker en el volumen de sistema operativo o deshabilite la directiva de BitLocker en HGS. |
CodeIntegrityPolicy | El host no está configurado para usar una directiva de integridad de código o no usa una directiva de confianza para el servidor HGS. Asegúrese de que se ha configurado una directiva de integridad de código, de que se ha reiniciado el host y de que la directiva está registrada en el servidor HGS. Para más información, consulte Creación y aplicación de una directiva de integridad de código. |
DumpsEnabled | El host está configurado para permitir volcados de memoria en vivo o volcados de memoria en vivo, lo que no permite las directivas de HGS. Para resolver este problema, deshabilite los volcados de memoria en el host. |
DumpEncryption | El host está configurado para permitir volcados de memoria en directo o volcados de memoria en vivo, pero no cifra esos volcados. Deshabilite los volcados en el host o configure el cifrado de volcados de memoria. |
DumpEncryptionKey | El host está configurado para permitir y cifrar volcados de memoria, pero no usa un certificado conocido para HGS para cifrarlos. Para resolver este problema, actualice la clave de cifrado de volcado en el host o registre la clave en HGS. |
FullBoot | El host se reanudó desde un estado de suspensión o hibernación. Reinicie el host para permitir un arranque completo y limpio. |
HibernationEnabled | El host está configurado para permitir la hibernación sin cifrar el archivo de hibernación, que no está permitido por las directivas de HGS. Deshabilite la hibernación y reinicie el host o configure el cifrado de volcado de memoria. |
HypervisorEnforcedCodeIntegrityPolicy | El host no está configurado para usar una directiva de integridad de código aplicada por el hipervisor. Compruebe que la integridad del código está habilitada, configurada e impuesta por el hipervisor. Para obtener más información, consulte La guía de implementación de Device Guard. |
Iommu | Las características de seguridad basada en virtualización del host no están configuradas para requerir un dispositivo IOMMU para la protección contra ataques de acceso directo a memoria, según lo requieran las directivas de HGS. Compruebe que el host tiene una IOMMU, que está habilitada y que Device Guard está configurada para requerir protecciones DMA al iniciar VBS. |
PagefileEncryption | El cifrado de archivos de página no está habilitado en el host. Para resolver este problema, ejecute fsutil behavior set encryptpagingfile 1 para habilitar el cifrado de archivos de página. Para más información, consulte Comportamiento de fsutil. |
SecureBoot | El arranque seguro no está habilitado en este host o no usa la plantilla de arranque seguro de Microsoft. Para resolver este problema, habilite el arranque seguro con la plantilla de arranque seguro de Microsoft. |
SecureBootSettings | La línea base de TPM en este host no coincide con ninguna de las de confianza de HGS. Esto puede ocurrir cuando cambian las autoridades de inicio de UEFI, la variable DBX, la marca de depuración o las directivas de arranque seguro personalizadas al instalar nuevo hardware o software. Si confía en la configuración actual de hardware, firmware y software de esta máquina, puede capturar una nueva línea de base de TPM y registrarla en HGS. |
TcgLogVerification | El registro de TCG (línea de base de TPM) no se puede obtener ni comprobar. Esto puede indicar un problema con el firmware, el TPM u otros componentes de hardware del host. Si el host está configurado para intentar arrancar PXE antes de arrancar Windows, un programa de arranque neto (NBP) desactualizado también puede provocar este error. Asegúrese de que todos los NBP estén actualizados cuando el arranque PXE está habilitado. |
VirtualSecureMode | Las características de seguridad basada en virtualización no se ejecutan en el host. Asegúrese de que VBS está habilitado y de que el sistema cumple las características de seguridad de la plataforma configuradas. Para obtener más información sobre los requisitos de VBS, consulte la documentación de Device Guard. |
TLS moderno
Si ha implementado una directiva de grupo o ha configurado de otro modo el host de Hyper-V para evitar el uso de TLS 1.0, es posible que encuentre errores "El cliente del Servicio de protección de host no pudo desencapsular un protector de claves en nombre de un proceso de llamada" al intentar iniciar una máquina virtual blindada. Esto se debe a un comportamiento predeterminado en .NET 4.6, donde la versión de TLS predeterminada del sistema no se considera al negociar las versiones de TLS compatibles con el servidor HGS.
Para evitar este comportamiento, ejecute los dos comandos siguientes para configurar .NET con el fin de usar las versiones de TLS predeterminadas del sistema con todas las aplicaciones .NET.
reg add HKLM\SOFTWARE\Microsoft\.NETFramework\v4.0.30319 /v SystemDefaultTlsVersions /t REG_DWORD /d 1 /f /reg:64
reg add HKLM\SOFTWARE\Microsoft\.NETFramework\v4.0.30319 /v SystemDefaultTlsVersions /t REG_DWORD /d 1 /f /reg:32
Advertencia
La configuración de versiones de TLS predeterminadas del sistema afectará a todas las aplicaciones .NET de la máquina. Asegúrese de probar las claves del Registro en un entorno aislado antes de implementarlas en las máquinas de producción.
Para más información sobre .NET 4.6 y TLS 1.0, consulte Solución del problema de TLS 1.0, segunda edición.