Hoe gebruik je een KDC-proxy in Active Directory voor veilige toegang op afstand?

Hoe configureert u een Kerberos KDC-proxy voor externe toegang?

Als je ooit met Kerberos-authenticatie op afstand te maken hebt gehad, weet je dat het best ingewikkeld kan zijn. Het is niet zomaar poorten openen en hopen op het beste, vooral niet bij externe clients of werkstations. Meestal mislukt de authenticatie als de domeincontrollers niet rechtstreeks bereikbaar zijn – of als NTLM is uitgeschakeld (wat tegenwoordig om veiligheidsredenen vaak voorkomt).Dat is waar een KDC-proxy van pas komt. Het is in feite een beveiligde brug waarmee externe clients zich kunnen authenticeren met Kerberos via HTTPS, waardoor je Kerberos-poorten niet rechtstreeks aan het internet worden blootgesteld. Dit kan een hoop problemen voorkomen, vooral bij externe toegangsconfiguraties zoals RDP-gateways die alleen in Kerberos-modus werken. Maar de configuratie is wel wat omslachtig. Je hebt een geldig certificaat nodig op de KDC-proxy, je moet een aantal poorten openen en de clientinstellingen configureren. In het ergste geval, als je het certificaat of de firewallregels verkeerd instelt, loopt de authenticatie vast. Hier is een beknopte handleiding om dit werkend te krijgen – met een paar praktijkvoorbeelden, want niets verloopt perfect.

Hoe Kerberos externe authenticatie met een KDC-proxy te herstellen

Waarom je dit nodig hebt en wanneer het van toepassing is

Deze aanpak is handig wanneer externe gebruikers of machines die niet aan een domein zijn gekoppeld geen Kerberos-aanmelding rechtstreeks bij uw domeincontrollers kunnen uitvoeren, vooral als NTLM is geblokkeerd. Als u fouten ziet zoals ‘CredSSP encryption oracle’ of als uw RDP-logboeken aangeven dat de KDC niet kan worden geverifieerd, zit u waarschijnlijk vast met de juiste configuratie van de proxy. Verwacht een soepeler aanmeldingsproces op afstand zodra alles correct is geconfigureerd. Houd er wel rekening mee dat dit wat aanpassingen aan certificaten en firewalls vereist, wat lastig kan zijn.

Stap 1: Bereid uw SSL-certificaat voor de KDC-proxy voor.

Het certificaat is cruciaal omdat het al het verkeer tussen uw externe clients en de proxy versleutelt. Het *moet* de volgende EKU’s bevatten: – Serververificatie – Clientverificatie – Kerberosverificatie. De SAN moet de FQDN van uw proxy bevatten. Een zelfondertekend certificaat werkt prima voor testomgevingen, maar voor productieomgevingen is het raadzaam een ​​vertrouwde CA te gebruiken. Zodra u het certificaat hebt, kopieert u het naar de certificaatopslag van uw server (`cert:\LocalMachine\My`) en noteert u de vingerafdruk. Dit kunt u doen in PowerShell: powershell Get-ChildItem -Path Cert:\LocalMachine\My | Where-Object { $_. Subject -like “*CN=yourproxy.domain.com*” } | Select-Object -ExpandProperty Thumbprint. Als u een zelfondertekend certificaat of een certificaat van een interne CA gebruikt, moet u het root-CA-certificaat op uw clients installeren zodat ze het vertrouwen (anders krijgt u vertrouwensfouten).

Stap 2: Koppel het SSL-certificaat aan poort 443 op de server.

Reserveer eerst de URL voor HTTPS: powershell NETSH http add urlacl url=https://+:443/KdcProxy user=”NT authority\Network Service” Hiermee kan uw server luisteren op die URL. Wijs vervolgens het SSL-certificaat toe aan poort 443: powershell $appid = [Guid]::NewGuid().ToString(“B”) $certHash = “YOUR_CERT_THUMBPRINT” # vervang dit door de vingerafdruk van uw certificaat netsh http add sslcert ipport=0.0.0.0:443 certhash=$certHash appid=$appid Als dat niet werkt, controleer dan of een ander certificaat poort 443 bezet houdt of herstart de HTTP-service. Omdat u voor de eenvoud opzettelijk de authenticatie met clientcertificaten overslaat, schakelt u deze vervolgens uit via het register: powershell REG ADD “HKLM\SYSTEM\CurrentControlSet\Services\KPSSVC\Settings” /v HttpsClientAuth /t REG_DWORD /d 0 /f REG ADD “HKLM\SYSTEM\CurrentControlSet\Services\KPSSVC\Settings” /v DisallowUnprotectedPasswordAuth /t REG_DWORD /d 0 /f Schakel daarna de KDC-proxyservice in: powershell Set-Service kpssvc -StartupType Automatic Start-Service kpssvc Zorg ervoor dat poort 443 inkomend verkeer toestaat in de Windows Firewall: powershell New-NetFirewallRule -DisplayName “KDCProxy TCP_In” -Direction Inbound -Protocol TCP -LocalPort 443

Stap 3: Maak een URL-reservering aan en koppel het certificaat.

Zoals al eerder getoond, maar onthoud: powershell netsh http add urlacl url=https://+:443/KdcProxy user=”NT authority\Network Service” netsh http add sslcert ipport=0.0.0.0:443 certhash=$certHash appid=$appid

Stap 4: Configureer clients om de KDC-proxy te gebruiken

Op clientcomputers moet u Windows instrueren om Kerberos-verzoeken via uw proxy te routeren. Dit kunt u doen via Groepsbeleid of aanpassingen in het register. In GPO: – Open Computerconfiguratie > Beleid > Administratieve sjablonen > Systeem > Kerberos – Schakel KDC-proxyservers voor Kerberos-clients specificeren in – Voeg een tekenreeks toe met de volgende indeling: `(of het domein en de poort van uw proxy) Of rechtstreeks via het register (meer handmatig, maar werkt): powershell reg add “HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\Kerberos” /v KdcProxyServer_Enabled /t REG_DWORD /d 1 /f reg add “HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\Kerberos\KdcProxy\ProxyServers” /v yourdomain.com /t REG_SZ /d ““/f Een herstart is nodig om deze wijzigingen aan de clientzijde toe te passen.”

Stap 5: Controleer of alles werkt

Na het opnieuw opstarten meldt u zich aan bij een clientcomputer en probeert u een Kerberos-ticket te verkrijgen: powershell klist get krbtgt. Als alles correct is ingesteld, zou u het ticket via de proxy moeten zien verschijnen. Controleer ook de Logboeken onder: Logboeken > Toepassings- en servicelogboeken > Microsoft > KDCProxy > Operationeel voor logboeken over proxyactiviteit.

Een vreemd detail: soms is een herstart of een vernieuwing van de clientcache nodig om de installatie te laten slagen. Ik weet niet precies waarom, maar Windows kan soms wat eigenaardig zijn.

Samenvatting

  • Schaf een geldig SSL-certificaat aan met de juiste EKU en SAN.
  • Koppel het certificaat aan poort 443 met `netsh`.
  • Configureer de KDC-proxyservice en open de firewall.
  • Stel het clientbeleid zo in dat het naar de proxy verwijst.
  • Test met `klist` en controleer de gebeurtenislogboeken.

Samenvatting

Een Kerberos-proxy installeren en in gebruik nemen is geen hogere wiskunde, maar het is ook niet zo simpel als slepen en neerzetten. Het draait erom dat je certificaten, firewallregels en clientconfiguraties op elkaar zijn afgestemd. Een beetje vreemd, maar als het eenmaal werkt, verdwijnen de problemen met Kerberos op afstand als sneeuw voor de zon. Hopelijk bespaart dit iemand een paar uur. Onthoud wel: als het niet meteen werkt, start de server dan opnieuw op of controleer je configuraties nogmaals. Succes!