Rozwiązywanie problemów z hostami chronionymi
W tym artykule opisano rozwiązania typowych problemów występujących podczas wdrażania lub obsługi chronionego hosta funkcji Hyper-V w chronionej sieci szkieletowej.
Dotyczy: Windows Server 2022, Windows Server 2019, Windows Server 2016
Jeśli nie masz pewności co do charakteru problemu, najpierw spróbuj uruchomić diagnostykę chronionej sieci szkieletowej na hostach funkcji Hyper-V, aby zawęzić potencjalne przyczyny.
Funkcja hosta chronionego
Jeśli występują problemy z hostem funkcji Hyper-V, najpierw upewnij się, że jest zainstalowana funkcja pomocy technicznej funkcji Hyper-V ochrona hosta . Bez tej funkcji na hoście funkcji Hyper-V brakuje niektórych krytycznych ustawień konfiguracji i oprogramowania, które umożliwiają przekazywanie zaświadczania i aprowizowania chronionych maszyn wirtualnych.
Aby sprawdzić, czy funkcja jest zainstalowana, użyj Menedżer serwera lub uruchom następujące polecenie cmdlet w oknie programu PowerShell z podwyższonym poziomem uprawnień:
Get-WindowsFeature HostGuardian
Jeśli funkcja nie jest zainstalowana, zainstaluj ją przy użyciu następującego polecenia cmdlet programu PowerShell:
Install-WindowsFeature HostGuardian -Restart
Błędy zaświadczania
Jeśli host nie przekazuje zaświadczania do usługi Ochrona hosta, nie może uruchomić chronionych maszyn wirtualnych. Dane wyjściowe polecenia Get-HgsClientConfiguration na tym hoście zawierają informacje o przyczynach niepowodzenia zaświadczania tego hosta.
W poniższej tabeli wyjaśniono wartości, które mogą pojawić się w polu AttestationStatus , oraz potencjalne kolejne kroki, jeśli to konieczne.
AttestationStatus | Objaśnienie |
---|---|
Wygasła | Host przeszedł zaświadczenie wcześniej, ale wystawiony certyfikat kondycji wygasł. Upewnij się, że czas hosta i usługi HGS jest zsynchronizowany. |
InsecureHostConfiguration | Host nie przeszedł zaświadczania, ponieważ nie jest zgodny z zasadami zaświadczania skonfigurowanymi w usłudze HGS. Aby uzyskać więcej informacji, zobacz tabelę AttestationSubStatus. |
Nieskonfigurowane | Host nie jest skonfigurowany do używania usługi HGS do zaświadczania i ochrony kluczy. Zamiast tego jest skonfigurowany dla trybu lokalnego. Jeśli ten host znajduje się w chronionej sieci szkieletowej, użyj polecenia Set-HgsClientConfiguration , aby udostępnić adresy URL serwera HGS. |
Przekazywane | Host przeszedł zaświadczenie. |
Błąd przejściowy | Ostatnia próba zaświadczania nie powiodła się z powodu błędu sieci, usługi lub innego błędu tymczasowego. Spróbuj ponownie wykonać ostatnią operację. |
TpmError | Host nie mógł ukończyć ostatniej próby zaświadczania z powodu błędu modułu TPM. Aby uzyskać więcej informacji, zobacz dzienniki modułu TPM. |
Brak autoryzacji | Host nie przeszedł zaświadczania, ponieważ nie był autoryzowany do uruchamiania chronionych maszyn wirtualnych. Upewnij się, że host należy do grupy zabezpieczeń zaufanej przez usługę HGS w celu uruchamiania chronionych maszyn wirtualnych. |
Unknown | Host nie próbował jeszcze potwierdzić usługi HGS. |
Gdy parametr AttestationStatus jest zgłaszany jako InsecureHostConfiguration, co najmniej jeden powód jest wypełniany w polu AttestationSubStatus . W poniższej tabeli wyjaśniono możliwe wartości attestationSubStatus oraz wskazówki dotyczące sposobu rozwiązania problemu.
AttestationSubStatus | Co to znaczy i co robić |
---|---|
Funkcją bitlocker | Wolumin systemu operacyjnego hosta nie jest szyfrowany za pomocą funkcji BitLocker. Aby rozwiązać ten problem, włącz funkcję BitLocker na woluminie systemu operacyjnego lub wyłącz zasady funkcji BitLocker w usłudze HGS. |
CodeIntegrityPolicy | Host nie jest skonfigurowany do używania zasad integralności kodu lub nie używa zasad zaufanych przez serwer usługi HGS. Upewnij się, że skonfigurowano zasady integralności kodu, że host został uruchomiony ponownie, a zasady są rejestrowane na serwerze usługi HGS. Aby uzyskać więcej informacji, zobacz Tworzenie i stosowanie zasad integralności kodu. |
DumpsEnabled | Host jest skonfigurowany tak, aby zezwalał na zrzuty awaryjne lub zrzuty pamięci na żywo, co nie jest dozwolone przez zasady usługi HGS. Aby rozwiązać ten problem, wyłącz zrzuty na hoście. |
DumpEncryption | Host jest skonfigurowany do zezwalania na zrzuty awaryjne lub zrzuty pamięci na żywo, ale nie szyfruje tych zrzutów. Wyłącz zrzuty na hoście lub skonfiguruj szyfrowanie zrzutu. |
DumpEncryptionKey | Host jest skonfigurowany do zezwalania na zrzuty i szyfrowania ich, ale nie używa certyfikatu znanego usłudze HGS do ich szyfrowania. Aby rozwiązać ten problem, zaktualizuj klucz szyfrowania zrzutu na hoście lub zarejestruj klucz w usłudze HGS. |
FullBoot | Host został wznowiony ze stanu uśpienia lub hibernacji. Uruchom ponownie hosta, aby umożliwić czysty, pełny rozruch. |
HibernacjaEnabled | Host jest skonfigurowany tak, aby zezwalał na hibernację bez szyfrowania pliku hibernacji, co nie jest dozwolone przez zasady usługi HGS. Wyłącz hibernację i uruchom ponownie hosta lub skonfiguruj szyfrowanie zrzutu. |
HypervisorEnforcedCodeIntegrityPolicy | Host nie jest skonfigurowany do używania zasad integralności kodu wymuszanych przez funkcję hypervisor. Sprawdź, czy integralność kodu jest włączona, skonfigurowana i wymuszana przez funkcję hypervisor. Aby uzyskać więcej informacji, zobacz Przewodnik wdrażania funkcji Device Guard. |
Iommu | Funkcje zabezpieczeń oparte na wirtualizacji hosta nie są skonfigurowane tak, aby wymagały urządzenia IOMMU w celu ochrony przed atakami bezpośredniego dostępu do pamięci zgodnie z wymaganiami zasad usługi HGS. Sprawdź, czy host ma moduł IOMMU, że jest włączony i czy funkcja Device Guard jest skonfigurowana do wymagania ochrony DMA podczas uruchamiania usługi VBS. |
PagefileEncryption | Szyfrowanie plików stron nie jest włączone na hoście. Aby rozwiązać ten problem, uruchom polecenie fsutil behavior set encryptpagingfile 1 , aby włączyć szyfrowanie plików stron. Aby uzyskać więcej informacji, zobacz zachowanie fsutil. |
SecureBoot | Bezpieczny rozruch nie jest włączony na tym hoście lub nie jest używany szablon bezpiecznego rozruchu firmy Microsoft. Włącz bezpieczny rozruch za pomocą szablonu bezpiecznego rozruchu firmy Microsoft, aby rozwiązać ten problem. |
SecureBootSettings | Punkt odniesienia modułu TPM na tym hoście nie jest zgodny z żadnym z tych, które są zaufane przez usługę HGS. Może to wystąpić, gdy władze uruchamiania INTERFEJSU UEFI, zmienna DBX, flaga debugowania lub niestandardowe zasady bezpiecznego rozruchu zostaną zmienione przez zainstalowanie nowego sprzętu lub oprogramowania. Jeśli ufasz bieżącej konfiguracji sprzętu, oprogramowania układowego i oprogramowania tej maszyny, możesz przechwycić nowy punkt odniesienia modułu TPM i zarejestrować go w usłudze HGS. |
TcgLogVerification | Nie można uzyskać ani zweryfikować dziennika TCG (punkt odniesienia modułu TPM). Może to wskazywać na problem z oprogramowaniem układowym hosta, modułem TPM lub innymi składnikami sprzętowymi. Jeśli host jest skonfigurowany do próby rozruchu środowiska PXE przed uruchomieniem systemu Windows, nieaktualny program net boot program (NBP) może również powodować ten błąd. Upewnij się, że wszystkie NBP są aktualne po włączeniu rozruchu środowiska PXE. |
VirtualSecureMode | Funkcje zabezpieczeń oparte na wirtualizacji nie są uruchomione na hoście. Upewnij się, że usługa VBS jest włączona i że system spełnia skonfigurowane funkcje zabezpieczeń platformy. Aby uzyskać więcej informacji na temat wymagań dotyczących usługi VBS, zobacz dokumentację funkcji Device Guard. |
Nowoczesny protokół TLS
Jeśli wdrożono zasady grupy lub w inny sposób skonfigurowano hosta funkcji Hyper-V, aby uniemożliwić korzystanie z protokołu TLS 1.0, podczas próby uruchomienia chronionej maszyny wirtualnej może wystąpić błąd "Klient usługi ochrony hosta nie może odpakować ochrony klucza w imieniu procesu wywoływania". Jest to spowodowane domyślnym zachowaniem na platformie .NET 4.6, w którym domyślna wersja protokołu TLS systemu nie jest brana pod uwagę podczas negocjowania obsługiwanych wersji protokołu TLS z serwerem HGS.
Aby obejść to zachowanie, uruchom następujące dwa polecenia, aby skonfigurować platformę .NET do używania domyślnych wersji protokołu TLS systemu dla wszystkich aplikacji platformy .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
Ostrzeżenie
Domyślne ustawienie wersji protokołu TLS systemu będzie miało wpływ na wszystkie aplikacje platformy .NET na komputerze. Przed wdrożeniem ich na maszynach produkcyjnych należy przetestować klucze rejestru w izolowanym środowisku.
Aby uzyskać więcej informacji na temat platformy .NET 4.6 i protokołu TLS 1.0, zobacz Rozwiązywanie problemu protokołu TLS 1.0 w wersji 2.
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla