Udostępnij za pośrednictwem


Rozwiązywanie problemów z hostami chronionymi

W tym artykule opisano rozwiązania typowych problemów napotkanych podczas wdrażania lub obsługi chronionego hosta funkcji Hyper-V w chronionej sieci szkieletowej.

Dotyczy: wszystkie obsługiwane wersje systemu Windows Server

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 funkcja obsługi funkcji Hyper-V ochrona hosta jest zainstalowana. Bez tej funkcji host funkcji Hyper-V nie ma pewnych krytycznych ustawień konfiguracji i oprogramowania, które umożliwiają mu 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 w usłudze Ochrona hosta, nie może uruchomić chronionych maszyn wirtualnych. Dane wyjściowe polecenia Get-HgsClientConfiguration na tym hoście zawierają informacje o tym, dlaczego ten host zakończył się niepowodzeniem zaświadczania.

W poniższej tabeli opisano wartości, które mogą pojawić się w polu AttestationStatus i potencjalne następne kroki, jeśli są odpowiednie.

Stan zaświadczania Wyjaśnienie
Wygasłe Host przeszedł wcześniej zaświadczenie, ale certyfikat kondycji, który został wystawiony, wygasł. Upewnij się, że czas hosta i usługi HGS są zsynchronizowane.
NiezabezpieczonyhostKonfiguracja Host nie przeszedł zaświadczania, ponieważ nie był 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 na potrzeby zaświadczania i ochrony klucza. Zamiast tego jest skonfigurowany dla trybu lokalnego. Jeśli ten host znajduje się w chronionej sieci szkieletowej, użyj polecenia Set-HgsClientConfiguration , aby podać adresy URL serwera HGS.
Powodzenie Host przeszedł zaświadczenie.
Błąd przejściowy Ostatnia próba zaświadczania nie powiodła się z powodu błędu sieciowego, usługi lub innego tymczasowego błędu. Ponów próbę wykonania ostatniej operacji.
TpmError Host nie może ukończyć ostatniej próby zaświadczania z powodu błędu z modułem TPM. Aby uzyskać więcej informacji, zobacz dzienniki modułu TPM.
Brak autoryzacjihost 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 do uruchamiania chronionych maszyn wirtualnych.
Nieznane 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 opisano możliwe wartości attestationSubStatus i wskazówki dotyczące rozwiązywania problemu.

ZaświadczaniaSubStatus Co to znaczy i co zrobić
BitLocker Wolumin systemu operacyjnego hosta nie jest szyfrowany przez funkcję 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 korzysta z zasad zaufanych przez serwer HGS. Upewnij się, że skonfigurowano zasady integralności kodu, że host został uruchomiony ponownie, a zasady są zarejestrowane na serwerze usługi HGS. Aby uzyskać więcej informacji, zobacz Tworzenie i stosowanie zasad integralności kodu.
ZrzutyEnabled Host jest skonfigurowany tak, aby zezwalał na zrzuty awaryjne lub zrzuty pamięci na żywo, które nie są dozwolone przez zasady usługi HGS. Aby rozwiązać ten problem, wyłącz zrzuty na hoście.
DumpEncryption Host jest skonfigurowany tak, aby zezwalał 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 dla usługi 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 wznowiony ze stanu uśpienia lub hibernacji. Uruchom ponownie hosta, aby umożliwić czysty, pełny rozruch.
HibernationEnabled Host jest skonfigurowany tak, aby zezwalał na hibernacji bez szyfrowania pliku hibernacji, który nie jest dozwolony przez zasady usługi HGS. Wyłącz hibernacji i uruchom ponownie hosta lub skonfiguruj szyfrowanie zrzutu.
HypervisorEnforcedCodeIntegrityPolicy Host nie jest skonfigurowany do używania zasad integralności kodu wymuszanego przez funkcję hypervisor. Sprawdź, czy integralność kodu jest włączona, skonfigurowana i wymuszana przez funkcję hypervisor. Aby uzyskać więcej informacji, zobacz Device Guard deployment guide (Przewodnik wdrażania funkcji Device Guard).
Iommu Funkcje zabezpieczeń oparte na wirtualizacji hosta nie są skonfigurowane tak, aby wymagać 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 protokół IOMMU, czy jest włączony, i czy funkcja Device Guard jest skonfigurowana tak, aby wymagała ochrony DMA podczas uruchamiania skryptu VBS.
PagefileEncryption Szyfrowanie plików strony 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 strony. Aby uzyskać więcej informacji, zobacz fsutil zachowanie.
SecureBoot Bezpieczny rozruch nie jest włączony na tym hoście lub nie jest używany szablonu Bezpiecznego rozruchu firmy Microsoft. Włącz bezpieczny rozruch przy użyciu 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 zaufanych przez usługę HGS. Może się to zdarzyć, gdy urzędy uruchamiania UEFI, zmienna DBX, flaga debugowania lub niestandardowe zasady bezpiecznego rozruchu zostaną zmienione przez zainstalowanie nowego sprzętu lub oprogramowania. Jeśli ufasz bieżącemu sprzętowi, oprogramowaniu układowemu i konfiguracji 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 (punktu 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 rozruchowy net (NBP) może również spowodować ten błąd. Upewnij się, że wszystkie NBPs są aktualne po włączeniu rozruchu środowiska PXE.
VirtualSecureMode Funkcje zabezpieczeń oparte na wirtualizacji nie są uruchomione na hoście. Upewnij się, że język VBS jest włączony i że system spełnia skonfigurowane funkcje zabezpieczeń platformy. Aby uzyskać więcej informacji na temat wymagań w języku VBS, zobacz dokumentację funkcji Device Guard.

Nowoczesne protokoły TLS

Jeśli wdrożono zasady grupy lub skonfigurowano hosta funkcji Hyper-V w inny sposób, aby zapobiec użyciu protokołu TLS 1.0, podczas próby uruchomienia chronionej maszyny wirtualnej może wystąpić błąd "Klient usługi ochrona hosta nie może odpakować funkcji ochrony klucza w imieniu procesu wywołującego". Jest to spowodowane zachowaniem domyślnym na platformie .NET 4.6, gdzie 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 domyślnych wersji protokołu TLS będzie miało wpływ na wszystkie aplikacje platformy .NET na maszynie. Przed wdrożeniem kluczy rejestru na maszynach produkcyjnych należy przetestować klucze rejestru w izolowanym środowisku.

Aby uzyskać więcej informacji na temat platform .NET 4.6 i TLS 1.0, zobacz Rozwiązywanie problemu z protokołem TLS 1.0, wydanie drugie.