Delen via


Problemen oplossen met behulp van het diagnostische hulpprogramma voor beveiligde infrastructuur

In dit artikel wordt het gebruik van het diagnostische hulpprogramma voor beveiligde infrastructuur voor beveiligde infrastructuur beschreven voor het identificeren en oplossen van veelvoorkomende fouten in de implementatie, configuratie en lopende werking van beveiligde infrastructuurinfrastructuur. Dit omvat de Host Guardian-service (HGS), alle beveiligde hosts en ondersteunende services zoals DNS en Active Directory.

Van toepassing op: Windows Server 2022, Windows Server 2019, Windows Server 2016

Het diagnostische hulpprogramma kan worden gebruikt om een first-pass uit te voeren bij het trireren van een mislukte beveiligde infrastructuur, zodat beheerders een beginpunt hebben voor het oplossen van storingen en het identificeren van onjuist geconfigureerde assets. Het hulpprogramma is geen vervanging voor een geluidsgreep van het gebruik van een beveiligde stof en dient alleen om snel de meest voorkomende problemen tijdens dagelijkse bewerkingen te controleren.

De volledige documentatie van de cmdlets die in dit artikel worden gebruikt, vindt u in de naslaginformatie over de HgsDiagnostics-module.

Notitie

Bij het uitvoeren van het diagnostische hulpprogramma beveiligde infrastructuur (Get-HgsTrace -RunDiagnostics), kan de onjuiste status worden geretourneerd die claimt dat de HTTPS-configuratie wordt verbroken wanneer deze in feite niet wordt verbroken of niet wordt gebruikt. Deze fout kan worden geretourneerd, ongeacht de attestation-modus van HGS. De mogelijke hoofdoorzaken zijn als volgt:

  • HTTPS is inderdaad onjuist geconfigureerd/verbroken
  • U gebruikt attestation met beheerdersvertrouwen en de vertrouwensrelatie is verbroken. Dit is ongeacht of HTTPS correct, onjuist of helemaal niet in gebruik is. Houd er rekening mee dat de diagnostische gegevens deze onjuiste status alleen retourneren bij het richten van een Hyper-V-host. Als de diagnostische gegevens gericht zijn op de Host Guardian-service, is de geretourneerde status correct.

Snel starten

U kunt een diagnose stellen voor een beveiligde host of een HGS-knooppunt door het volgende aan te roepen vanuit een Windows PowerShell-sessie met lokale beheerdersbevoegdheden:

Get-HgsTrace -RunDiagnostics -Detailed

Hiermee wordt automatisch de rol van de huidige host gedetecteerd en worden eventuele relevante problemen vastgesteld die automatisch kunnen worden gedetecteerd. Alle resultaten die tijdens dit proces worden gegenereerd, worden weergegeven vanwege de aanwezigheid van de -Detailed switch.

De rest van dit onderwerp bevat een gedetailleerd overzicht van het geavanceerde gebruik van Get-HgsTrace zaken als het diagnosticeren van meerdere hosts tegelijk en het detecteren van complexe configuratie tussen knooppunten.

Overzicht van diagnostische gegevens

Beveiligde infrastructuurdiagnose is beschikbaar op elke host waarop afgeschermde hulpprogramma's en functies voor virtuele machines zijn geïnstalleerd, waaronder hosts waarop Server Core wordt uitgevoerd. Momenteel zijn diagnostische gegevens opgenomen in de volgende functies/pakketten:

  • Host Guardian-servicerol
  • Host Guardian Hyper-V-ondersteuning
  • VM-afschermingshulpprogramma's voor fabricbeheer
  • Beheerhulpprogramma's voor externe servers (RSAT)

Dit betekent dat diagnostische hulpprogramma's beschikbaar zijn op alle beveiligde hosts, HGS-knooppunten, bepaalde infrastructuurbeheerservers en alle Windows 10-werkstations waarop RSAT is geïnstalleerd. Diagnostische gegevens kunnen worden aangeroepen vanaf een van de bovenstaande machines met de bedoeling om een beveiligde host of HGS-knooppunt in een beveiligde infrastructuur te diagnosticeren; met externe traceringsdoelen kunnen diagnostische gegevens andere hosts vinden en er verbinding mee maken dan de computer waarop diagnostische gegevens worden uitgevoerd.

Elke host waarop diagnostische gegevens zijn gericht, wordt een traceringsdoel genoemd. Traceringsdoelen worden geïdentificeerd door hun hostnamen en rollen. Rollen beschrijven de functie die een bepaald traceringsdoel uitvoert in een beveiligde infrastructuur. Op dit moment zijn traceringsdoelen ondersteuning HostGuardianService en GuardedHost rollen. Houd er rekening mee dat een host meerdere rollen tegelijk kan gebruiken en dit wordt ook ondersteund door diagnostische gegevens, maar dit moet niet worden gedaan in productieomgevingen. De HGS- en Hyper-V-hosts moeten altijd afzonderlijk en uniek worden gehouden.

Beheerders kunnen alle diagnostische taken starten door deze uit te voeren Get-HgsTrace. Met deze cmdlet worden twee afzonderlijke functies uitgevoerd op basis van de switches die tijdens runtime worden geleverd: traceringsverzameling en diagnose. Deze twee combinaties vormen het geheel van het diagnostische hulpprogramma voor beveiligde infrastructuur. Hoewel dit niet expliciet vereist is, vereisen de meest nuttige diagnostische gegevens traceringen die alleen kunnen worden verzameld met beheerdersreferenties op het traceringsdoel. Als er onvoldoende bevoegdheden worden bewaard door de gebruiker die traceringsverzameling uitvoert, mislukken traceringen waarvoor uitbreiding is vereist, terwijl alle andere worden doorgegeven. Dit maakt gedeeltelijke diagnose mogelijk in het geval een ondergeprivilegieerde operator triage uitvoert.

Traceringsverzameling

Get-HgsTrace Standaard worden alleen traceringen verzameld en opgeslagen in een tijdelijke map. Traceringen hebben de vorm van een map, genaamd na de doelhost, gevuld met speciaal opgemaakte bestanden die beschrijven hoe de host wordt geconfigureerd. De traceringen bevatten ook metagegevens die beschrijven hoe de diagnostische gegevens zijn aangeroepen om de traceringen te verzamelen. Deze gegevens worden gebruikt door diagnostische gegevens om informatie over de host te reactiveren bij het uitvoeren van handmatige diagnose.

Indien nodig kunnen traceringen handmatig worden gecontroleerd. Alle indelingen zijn door mensen leesbaar (XML) of kunnen gemakkelijk worden geïnspecteerd met standaardhulpprogramma's (bijvoorbeeld X509-certificaten en de Windows Crypto Shell-extensies). Houd er echter rekening mee dat traceringen niet zijn ontworpen voor handmatige diagnose en dat het altijd effectiever is om de traceringen te verwerken met de diagnosefaciliteiten van Get-HgsTrace.

De resultaten van het uitvoeren van traceringsverzameling geven geen indicaties over de status van een bepaalde host. Ze geven gewoon aan dat traceringen zijn verzameld. Het is noodzakelijk om de diagnosefaciliteiten Get-HgsTrace te gebruiken om te bepalen of de traceringen duiden op een mislukte omgeving.

Met behulp van de -Diagnostic parameter kunt u tracering verzamelen beperken tot alleen de traceringen die vereist zijn om de opgegeven diagnostische gegevens te gebruiken. Dit vermindert de hoeveelheid verzamelde gegevens en de machtigingen die nodig zijn om diagnostische gegevens aan te roepen.

Diagnose

Verzamelde traceringen kunnen worden aangegeven door de locatie van de traceringen via de -Path parameter op te geven Get-HgsTrace en de -RunDiagnostics switch op te geven. Daarnaast Get-HgsTrace kunt u verzameling en diagnose in één keer uitvoeren door de -RunDiagnostics switch en een lijst met traceringsdoelen op te geven. Als er geen traceringsdoelen worden opgegeven, wordt de huidige computer gebruikt als een impliciet doel, met de bijbehorende rol afgeleid door de geïnstalleerde Windows PowerShell-modules te inspecteren.

Diagnose levert resultaten in een hiërarchische indeling die laat zien welke traceringsdoelen, diagnostische sets en afzonderlijke diagnostische gegevens verantwoordelijk zijn voor een bepaalde fout. Fouten omvatten herstel- en oplossingsaanbevelingen als er een beslissing kan worden genomen over welke actie moet worden ondernomen. Standaard worden het doorgeven en irrelevante resultaten verborgen. Als u alles wilt zien dat is getest met diagnostische gegevens, geeft u de -Detailed schakeloptie op. Hierdoor worden alle resultaten weergegeven, ongeacht hun status.

Het is mogelijk om de set diagnostische gegevens te beperken die worden uitgevoerd met behulp van de -Diagnostic parameter. Hiermee kunt u opgeven welke klassen van diagnostische gegevens moeten worden uitgevoerd op de traceringsdoelen en alle andere moeten worden onderdrukt. Voorbeelden van beschikbare diagnostische klassen zijn netwerken, best practices en clienthardware. Raadpleeg de documentatie van de cmdlet om een actuele lijst met beschikbare diagnostische gegevens te vinden.

Waarschuwing

Diagnostische gegevens zijn geen vervanging voor een sterke bewakings- en incidentresponspijplijn. Er is een System Center Operations Manager-pakket beschikbaar voor het bewaken van beveiligde fabrics, evenals verschillende gebeurtenislogboekkanalen die kunnen worden bewaakt om problemen vroeg te detecteren. Diagnostische gegevens kunnen vervolgens worden gebruikt om deze fouten snel te classificeren en een actie te ondernemen.

Doeldiagnose

Get-HgsTrace werkt tegen traceringsdoelen. Een traceringsdoel is een object dat overeenkomt met een HGS-knooppunt of een beveiligde host in een beveiligde infrastructuur. Het kan worden beschouwd als een uitbreiding op een PSSession, die informatie bevat die alleen vereist is voor diagnostische gegevens, zoals de rol van de host in de infrastructuur. Doelen kunnen impliciet worden gegenereerd (bijvoorbeeld lokale of handmatige diagnose) of expliciet met de New-HgsTraceTarget cmdlet.

Lokale diagnose

Get-HgsTrace Standaard is het doel van de localhost (bijvoorbeeld waar de cmdlet wordt aangeroepen). Dit wordt het impliciete lokale doel genoemd. Het impliciete lokale doel wordt alleen gebruikt wanneer er geen doelen worden opgegeven in de -Target parameter en er geen bestaande traceringen worden gevonden in de -Path.

Het impliciete lokale doel maakt gebruik van roldeductie om te bepalen welke rol de huidige host speelt in de beveiligde infrastructuur. Dit is gebaseerd op de geïnstalleerde Windows PowerShell-modules, die ongeveer overeenkomen met de functies die op het systeem zijn geïnstalleerd. De aanwezigheid van de HgsServer module zorgt ervoor dat het traceringsdoel de rol HostGuardianService neemt en de aanwezigheid van de HgsClient module zorgt ervoor dat het traceringsdoel de rol GuardedHostneemt. Het is mogelijk dat een bepaalde host beide modules bevat, in welk geval het wordt behandeld als zowel een HostGuardianService als een GuardedHost.

Daarom is de standaard aanroep van diagnostische gegevens voor het lokaal verzamelen van traceringen:

Get-HgsTrace

Dat komt overeen met het volgende:

New-HgsTraceTarget -Local | Get-HgsTrace

Tip

Get-HgsTrace kan doelen accepteren via de pijplijn of rechtstreeks via de -Target parameter. Er is geen verschil tussen de twee operationeel.

Externe diagnose met behulp van traceringsdoelen

Het is mogelijk om een host op afstand te diagnosticeren door traceringsdoelen met externe verbindingsgegevens te genereren. Het enige wat vereist is, is de hostnaam en een set referenties die verbinding kunnen maken met behulp van externe toegang van Windows PowerShell.

$server = New-HgsTraceTarget -HostName "hgs-01.secure.contoso.com" -Role HostGuardianService -Credential (Enter-Credential)
Get-HgsTrace -RunDiagnostics -Target $server

In dit voorbeeld wordt een prompt gegenereerd om de referenties van de externe gebruiker te verzamelen en vervolgens diagnostische gegevens uit te voeren met behulp van de externe host om hgs-01.secure.contoso.com de tracering te voltooien. De resulterende traceringen worden gedownload naar de localhost en vervolgens agnose. De resultaten van de diagnose worden hetzelfde weergegeven als bij het uitvoeren van een lokale diagnose. Op dezelfde manier is het niet nodig om een rol op te geven, omdat deze kan worden afgeleid op basis van de Windows PowerShell-modules die op het externe systeem zijn geïnstalleerd.

Externe diagnose maakt gebruik van externe communicatie van Windows PowerShell voor alle toegang tot de externe host. Daarom is het een vereiste dat voor het traceringsdoel externe communicatie van Windows PowerShell is ingeschakeld (zie PSRemoting inschakelen) en dat de localhost juist is geconfigureerd voor het starten van verbindingen met het doel.

Notitie

In de meeste gevallen is het alleen nodig dat de localhost deel uitmaakt van hetzelfde Active Directory-forest en dat een geldige DNS-hostnaam wordt gebruikt. Als uw omgeving gebruikmaakt van een gecompliceerder federatiemodel of als u directe IP-adressen wilt gebruiken voor connectiviteit, moet u mogelijk aanvullende configuratie uitvoeren, zoals het instellen van de vertrouwde WinRM-hosts.

U kunt controleren of een traceringsdoel correct is geïnstantieerd en geconfigureerd voor het accepteren van verbindingen met behulp van de Test-HgsTraceTarget cmdlet:

$server = New-HgsTraceTarget -HostName "hgs-01.secure.contoso.com" -Role HostGuardianService -Credential (Enter-Credential)
$server | Test-HgsTraceTarget

Deze cmdlet retourneert als en alleen als een Get-HgsTrace externe diagnostische sessie met het traceringsdoel $True kan worden gemaakt. Bij een fout retourneert deze cmdlet relevante statusinformatie voor verdere probleemoplossing van de externe verbinding met Windows PowerShell.

Impliciete referenties

Bij het uitvoeren van externe diagnose van een gebruiker met voldoende bevoegdheden om extern verbinding te maken met het traceringsdoel, is het niet nodig om referenties op te geven aan New-HgsTraceTarget. De Get-HgsTrace cmdlet gebruikt automatisch de referenties van de gebruiker die de cmdlet heeft aangeroepen bij het openen van een verbinding.

Waarschuwing

Sommige beperkingen gelden voor het hergebruik van referenties, met name bij het uitvoeren van wat een 'tweede hop' wordt genoemd. Dit gebeurt wanneer u referenties probeert te hergebruiken vanuit een externe sessie naar een andere computer. Het is nodig om CredSSP in te stellen ter ondersteuning van dit scenario, maar dit valt buiten het bereik van beveiligd fabricbeheer en probleemoplossing.

Windows PowerShell Just Enough Administration (JEA) en diagnostische gegevens gebruiken

Externe diagnose ondersteunt het gebruik van door JEA beperkte Windows PowerShell-eindpunten. Externe traceringsdoelen maken standaard verbinding met behulp van het standaardeindpunt microsoft.powershell . Als het traceringsdoel de HostGuardianService rol heeft, wordt ook geprobeerd het microsoft.windows.hgs eindpunt te gebruiken, dat is geconfigureerd wanneer HGS wordt geïnstalleerd.

Als u een aangepast eindpunt wilt gebruiken, moet u de naam van de sessieconfiguratie opgeven tijdens het samenstellen van het traceringsdoel met behulp van de -PSSessionConfigurationName parameter, zoals hieronder:

New-HgsTraceTarget -HostName "hgs-01.secure.contoso.com" -Role HostGuardianService -Credential (Enter-Credential) -PSSessionConfigurationName "microsoft.windows.hgs"

Diagnose van meerdere hosts

U kunt meerdere traceringsdoelen Get-HgsTrace tegelijk doorgeven. Dit omvat een combinatie van lokale en externe doelen. Elk doel wordt op zijn beurt getraceerd en vervolgens worden traceringen van elk doel tegelijkertijd gesynchroniseerd. Het diagnostische hulpprogramma kan de toegenomen kennis van uw implementatie gebruiken om complexe onjuiste configuraties tussen knooppunten te identificeren die anders niet kunnen worden gedetecteerd. Het gebruik van deze functie vereist alleen traceringen van meerdere hosts tegelijk (in het geval van handmatige diagnose) of door meerdere hosts aan te roepen ( Get-HgsTrace in het geval van externe diagnose).

Hier volgt een voorbeeld van het gebruik van externe diagnose om een infrastructuur te classificeren die bestaat uit twee HGS-knooppunten en twee beveiligde hosts, waarbij een van de beveiligde hosts wordt gebruikt om te starten Get-HgsTrace.

$hgs01 = New-HgsTraceTarget -HostName "hgs-01.secure.contoso.com" -Credential (Enter-Credential)
$hgs02 = New-HgsTraceTarget -HostName "hgs-02.secure.contoso.com" -Credential (Enter-Credential)
$gh01 = New-HgsTraceTarget -Local
$gh02 = New-HgsTraceTarget -HostName "guardedhost-02.contoso.com"
Get-HgsTrace -Target $hgs01,$hgs02,$gh01,$gh02 -RunDiagnostics

Notitie

U hoeft uw volledige beveiligde infrastructuur niet te diagnosticeren bij het diagnosticeren van meerdere knooppunten. In veel gevallen is het voldoende om alle knooppunten op te nemen die mogelijk betrokken zijn bij een bepaalde foutvoorwaarde. Dit is meestal een subset van de beveiligde hosts en een aantal knooppunten uit het HGS-cluster.

Handmatige diagnose met opgeslagen traceringen

Soms wilt u mogelijk diagnostische gegevens opnieuw uitvoeren zonder traceringen opnieuw te verzamelen, of hebt u mogelijk niet de benodigde referenties om alle hosts in uw infrastructuur tegelijkertijd te diagnosticeren. Handmatige diagnose is een mechanisme waarmee u nog steeds een hele stof triage kunt uitvoeren met behulp van Get-HgsTrace, maar zonder externe tracering te gebruiken.

Voordat u handmatige diagnose uitvoert, moet u ervoor zorgen dat de beheerders van elke host in de infrastructuur die worden gesorteerd, gereed zijn en namens u opdrachten willen uitvoeren. De uitvoer van diagnostische tracering bevat geen informatie die over het algemeen als gevoelig wordt weergegeven, maar het is aan de gebruiker om te bepalen of het veilig is om deze informatie beschikbaar te maken aan anderen.

Notitie

Traceringen worden niet geanonimiseerd en onthullen netwerkconfiguratie, PKI-instellingen en andere configuraties die soms worden beschouwd als privégegevens. Daarom mogen traceringen alleen worden verzonden naar vertrouwde entiteiten binnen een organisatie en nooit openbaar worden geplaatst.

De stappen voor het uitvoeren van een handmatige diagnose zijn als volgt:

  1. Vraag of elke hostbeheerder Get-HgsTrace een bekende -Path en de lijst met diagnostische gegevens opgeeft die u wilt uitvoeren op basis van de resulterende traceringen. Bijvoorbeeld:

    Get-HgsTrace -Path C:\Traces -Diagnostic Networking,BestPractices
    
  2. Vraag of elk hostbeheerderspakket de resulterende traceringenmap bevat en naar u verzendt. Dit proces kan worden aangestuurd via e-mail, via bestandsshares of een ander mechanisme op basis van het operationele beleid en de procedures die door uw organisatie zijn ingesteld.

  3. Voeg alle ontvangen traceringen samen in één map, zonder andere inhoud of mappen.

    Stel dat u uw beheerders traceringen hebt laten verzamelen van vier machines met de naam HGS-01, HGS-02, RR1N2608-12 en RR1N2608-13. Elke beheerder zou u een map met dezelfde naam hebben gestuurd. U maakt een mapstructuur die als volgt wordt weergegeven:

    FabricTraces
    |- HGS-01
    |  |- TargetMetadata.xml
    |  |- Metadata.xml
    |  |- [any other trace files for this host]
    |- HGS-02
    |  |- [...]
    |- RR1N2608-12
    |  |- [...]
    |- RR1N2608-13
       |- [..]
    
  4. Voer diagnostische gegevens uit, waarbij u het pad naar de samengestelde traceringsmap opgeeft op de -Path parameter en de -RunDiagnostics schakeloptie en de diagnostische gegevens waarvoor u uw beheerders hebt gevraagd traceringen te verzamelen. Diagnostische gegevens gaan ervan uit dat deze geen toegang heeft tot de hosts die zich in het pad bevinden en daarom proberen alleen de voorgecollecteerde traceringen te gebruiken. Als er sporen ontbreken of beschadigd zijn, mislukt de diagnose alleen de betrokken tests en gaat u normaal verder. Bijvoorbeeld:

    Get-HgsTrace -RunDiagnostics -Diagnostic Networking,BestPractices -Path ".\FabricTraces"
    

Opgeslagen traceringen combineren met extra doelen

In sommige gevallen hebt u mogelijk een set vooraf ingepakte traceringen die u wilt uitbreiden met extra hosttraceringen. Het is mogelijk om voorgecollecteerde traceringen te combineren met extra doelen die worden getraceerd en aangegeven in één aanroep van diagnostische gegevens.

Volg de instructies voor het verzamelen en samenstellen van een traceringsmap die hierboven is opgegeven, de aanroep Get-HgsTrace met aanvullende traceringsdoelen die niet zijn gevonden in de vooraf verzamelde traceringsmap:

$hgs03 = New-HgsTraceTarget -HostName "hgs-03.secure.contoso.com" -Credential (Enter-Credential)
Get-HgsTrace -RunDiagnostics -Target $hgs03 -Path .\FabricTraces

De diagnostische cmdlet identificeert alle vooraf opgehaalde hosts en de ene extra host die nog moet worden getraceerd en voert de benodigde tracering uit. De som van alle voorgecollecteerde en vers verzamelde sporen wordt vervolgens agnose vastgesteld. De resulterende traceringsmap bevat zowel de oude als de nieuwe traceringen.

Bekende problemen

De diagnostische module voor beveiligde fabric heeft bekende beperkingen bij uitvoering op Windows Server 2019 of Windows 10, versie 1809 en nieuwere versies van het besturingssysteem. Het gebruik van de volgende functies kan onjuiste resultaten veroorzaken:

  • Attestation van hostsleutel
  • HGS-configuratie met alleen Attestation (voor SQL Server Always Encrypted-scenario's)
  • Gebruik van v1-beleidsartefacten op een HGS-server waarbij het attestation-beleid standaard v2 is

Een fout bij Get-HgsTrace het gebruik van deze functies geeft niet noodzakelijkerwijs aan dat de HGS-server of beveiligde host onjuist is geconfigureerd. Gebruik andere diagnostische hulpprogramma's, zoals Get-HgsClientConfiguration op een beveiligde host, om te testen of een host attestation heeft doorstaan.