Ik stuitte op die vervelende foutmelding toen ik via RDP verbinding probeerde te maken met een externe server in het Active Directory-domein. De melding “Remote Desktop kan de identiteit niet verifiëren” vanwege een datum- of tijdsverschil komt vrij vaak voor, maar het is wel vreemd, want soms kloppen de klokken wel degelijk. Windows geeft deze foutmelding omdat Kerberos-authenticatie perfecte synchronisatie vereist – en als de klokken meer dan 5 minuten van elkaar verschillen, gaat het mis. Toch lijkt in sommige gevallen alles gesynchroniseerd te zijn, en krijg je de foutmelding. Het is zo’n situatie waarbij je alles nog eens goed controleert om er zeker van te zijn.
Het grootste struikelblok voor mensen is de tijdsynchronisatie, vooral als je servers beheert via ILO of externe consoles. Zelfs als de tijd er visueel correct uitziet, is het de moeite waard om de tijdsynchronisatie-instellingen te controleren. Soms kan de hypervisor op een virtuele machine de tijdsynchronisatie van de host verstoren, of kan de externe server een tijdsverschil hebben. Het is beter om dit te controleren met behulp van native commando’s of tools.
Hoe RDP-tijd-/authenticatiefouten te verhelpen
Controleer en synchroniseer de tijd handmatig op de externe server.
Dit is handig als de tijd daadwerkelijk niet synchroon loopt, zelfs maar een klein beetje. De opdracht is eenvoudig en werkt op de meeste Windows-servers:
net time \\remote-ip-or-hostname
Op sommige systemen is dit commando mogelijk verouderd, maar het is nog steeds een snelle controle. Als de tijd niet gesynchroniseerd is, kunt u een handmatige synchronisatie uitvoeren door de tijdservice te configureren. Dit is wat u in een PowerShell-venster met beheerdersrechten moet uitvoeren:
w32tm /config /manualpeerlist:"your.ntp.server" /syncfromflags:manual net stop w32time net start w32time w32tm /resync
Vervang your.ntp.server door het IP-adres of de hostnaam van de NTP-server in uw netwerk. Verwacht dat de klok opnieuw gesynchroniseerd wordt, waardoor de discrepantie hopelijk verholpen is. Houd er rekening mee dat dit soms een herstart of een paar pogingen vereist, vooral als de tijdservice hardnekkig reageert.
Nog iets: als de externe server een virtuele machine is, controleer dan of de hypervisor niet zijn eigen tijdssynchronisatie afdwingt. Virtuele machines proberen vaak de tijd met de host te synchroniseren, wat tot vreemde afwijkingen kan leiden als dit niet correct is geconfigureerd. Schakel de tijdssynchronisatie indien nodig uit in de VM-instellingen of stel deze in om uitsluitend op NTP-bronnen te vertrouwen.
Controleer de DNS- en netwerkinstellingen.
Omdat DNS-resolutie ook Kerberos kan verstoren, moet u ervoor zorgen dat de DNS-instellingen van de server correct zijn. Gebruik de volgende opdracht in de buurt van de serverconsole:
nslookup some_server_name DNS_Server_IP
Als DNS niet goed werkt, kan dat de oorzaak zijn van de problemen met Kerberos-tickets of authenticatiefouten. Schakel indien nodig over naar een andere DNS-server of controleer de reactiesnelheid van DNS. Windows maakt het natuurlijk soms onnodig ingewikkeld.
Als er meerdere netwerkadapters aanwezig zijn, controleer dan of de routeringstabel het DNS-verkeer niet via de verkeerde interface routeert. Gebruik `route print` om te zien welke adapter wordt gebruikt voor de DNS-IP-adressen. Correcte routering draagt bij aan consistente beveiligings- en authenticatiestromen.
Gebruik het IP-adres in plaats van de FQDN voor RDP.
Dit is een soort noodoplossing, maar als al het andere faalt, probeer dan rechtstreeks verbinding te maken via het IP-adres in plaats van de volledige domeinnaam. Waarom? Omdat Kerberos afhankelijk is van DNS en vertrouwensrelaties tussen domeinen. Door het IP-adres te gebruiken, omzeil je Kerberos volledig, waardoor het authenticatieproces veel eenvoudiger wordt. Het is niet altijd een oplossing voor de lange termijn, maar bij complexe configuraties kan het helpen om verbinding te maken en te controleren of het probleem puur met Kerberos te maken heeft.
Controleer de vertrouwensrelaties met Active Directory.
Voer deze PowerShell-opdracht uit om te controleren of de vertrouwensrelatie van de computer nog steeds geldig is:
Test-ComputerSecureChannel
Als het True retourneert, is het vertrouwen in orde. Zo niet, dan moet u het mogelijk herstellen. Het commando dat u kunt proberen is:
Test-ComputerSecureChannel -Repair -Credential domain\admin_user
Vervang domain\admin_user door een beheerdersaccount met rechten op het domein. Soms mislukt dit met een foutmelding dat de server niet operationeel is, wat wijst op problemen met de communicatie met de domeincontroller of problemen met netwerkpoorten. Controleer in dergelijke gevallen of TCP/UDP-poorten 88, 389 en andere open en beschikbaar zijn. Mogelijk hebt u tools zoals PortQry nodig om dit te testen.
Zorg ervoor dat de instellingen van de RDP-beveiligingslaag consistent zijn.
Soms veroorzaakt een mismatch in de beveiligingslaag handshake-fouten. U kunt dit controleren of instellen in de Groepsbeleid-editor onder Computerconfiguratie > Administratieve sjablonen > Windows-onderdelen > Extern bureaubladservices > Extern bureaubladsessiehost > Beveiliging. Zoek naar Het gebruik van een specifieke beveiligingslaag vereisen voor externe (RDP) verbindingen en stel deze in op minder veilige opties zoals RDP-beveiligingslaag of SSL (TLS 1.0).U kunt ook rechtstreeks het register aanpassen via:
HKLM\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp\SecurityLayer
Stel de waarde in op 1 of 0 voor verschillende beveiligingsmodi. Houd er rekening mee dat het verlagen van de beveiligingsinstellingen niet altijd ideaal is, maar het kan wel helpen bij het oplossen van problemen als de handshake mislukt vanwege protocolincompatibiliteit.
Tot slot is het belangrijk om te weten dat recente wijzigingen in CredSSP ook problemen kunnen veroorzaken. Als updates het protocol hebben verstoord, moet u mogelijk beleidsregels aanpassen of clients en servers dienovereenkomstig bijwerken. Dat is weer een heel ander verhaal.
Kortom, het oplossen van problemen met de RDP-tijd of Kerberos is een combinatie van het controleren van klokken, DNS, vertrouwensrelaties en beveiligingsinstellingen. Het is niet altijd even eenvoudig, maar meestal lost een van deze benaderingen het probleem op. Soms is het voldoende om de tijdservice opnieuw te starten na het aanbrengen van wijzigingen, of om de computer opnieuw op te starten als de tijd echt niet meer klopt.