Deaktivieren von NTLM und Erzwingen von Kerberos an der Administrations-Webseite des Registrierungsdienstes für Netzwerkgeräte (NDES)

Viele Unternehmen verfolgen die Strategie, das NT LAN Manager (NTLM) Authentisierungsprotokoll in ihren Netzwerken (weitestgehend) abzuschalten.

Auch für die Administrations-Webseite des Registrierungsdienstes für Netzwerkgeräte (NDES) ist dies möglich. Wie genau die Umsetzung erfolgt, und wie sich dadurch eventuell das Anwendungsverhalten ändert soll nachfolgend erläutert werden.

Der Registrierungsdienst für Netzwerkgeräte (Network Device Enrollment Service, NDES) bietet eine Möglichkeit, Geräten, welche nicht über eine Kennung im Active Directory verfügen (beispielsweise Netzwerkgeräte wie Router, Switches, Drucker, Thin Clients oder Smartphones und Tablets), Zertifikate von einer Zertifizierungsstelle zu beantragen. Für eine detailliertere Beschreibung siehe Artikel "Grundlagen Registrierungsdienst für Netzwerkgeräte (Network Device Enrollment Service, NDES) ".

Voraussetzungen

Zunächst muss sichergestellt sein, dass auf dem NDES-Server auch mit Kerberos gearbeitet werden kann. Dazu muss für die verwendete Webadresse ein Dienstprinzipalname (Service Principal Name) registriert sein. Dies ist immer dann der Fall, wenn zur Verbindung auf die NDES-Administrations-Webseite der vollqualifizierte Computername verwendet wird und der "SCEP" IIS-Anwendungspool mit der integrierten virtuellen Identität des IIS-Anwendungspools läuft.

Zum Entscheidungsprozess der Identität für den IIS Anwendungspool siehe Artikel "Auswahl der Identität für den IIS Anwendungspool des Registrierungsdienstes für Netzwerkgeräte (NDES) ".

Wird stattdessen ein Alias verwendet, muss für diesen ein Dienstprinzipalname registriert werden (wenn ein Dienstkonto verwendet wird auf diesem, wenn nicht auf dem Computerobjekt des NDES Servers).

Überprüft werden, welche Dienstprinzipalnamen auf einem Konto registriert sind, kann mit folgendem Befehl:

setspn -L {Kontoname}

Eingabeaufforderung: setspn -L NDES01$ listet die registrierten Service Principal Names, darunter HOST/NDES01

Überprüft werden, auf welches Konto ein bestimmter Dienstprinzipalname registriert ist, kann mit folgendem Befehl:

setspn -Q HOST/{DNS-Name-des-Alias}

Eingabeaufforderung: setspn -Q host/ndes01.intra.adcslabor.de meldet "Existing SPN found!"

Kerberos erzwingen

Kennen Sie TameMyCerts? TameMyCerts ist ein Add-On für die Microsoft Zertifizierungsstelle (Active Directory Certificate Services). Es erweitert die Funktion der Zertifizierungsstelle und ermöglicht die Anwendung von Regelwerken , um die sichere Automatisierung von Zertifikat-Ausstellungen zu realisieren. TameMyCerts ist einzigartig im Microsoft-Ökosystem, hat sich bereits in unzähligen Unternehmen auf der ganzen Welt bewährt und steht unter einer freien Lizenz. Es kann über GitHub heruntergeladen und kostenlos verwendet werden. Professionelle Wartung wird ebenfalls angeboten.

Die IIS Management-Konsole wird gestartet und in der Default Web Site auf der rechten Seite die Option "View Applications" aufgerufen.

IIS-Manager, "Default Web Site Home": Aktion "View Applications" (gelb markiert)

Per Doppelklick öffnet man die Einstellungen für "/certsrv/mscep_admin".

IIS-Manager, "Applications": Anwendung "/CertSrv/mscep_admin" (gelb markiert)

Hier wählt man nun die Option "Authentication".

IIS-Manager, "/CertSrv/mscep_admin Home": Symbol "Authentication" ausgewählt

Für die Option "Windows Authentication" wird auf die Option "Providers" geklickt.

IIS-Manager, "Authentication": "Windows Authentication" Enabled, Aktion "Providers..." (gelb markiert)

Zunächst werden alle gelisteten Provider entfernt.

Dialog "Providers": "Negotiate" und "NTLM" unter "Enabled Providers", "NTLM" ausgewählt, "Remove" markiert

Anschließend wird der "Negotiate:Kerberos" Provider der Liste hinzugefügt.

Dialog "Providers": "Enabled Providers" leer, "Negotiate:Kerberos" unter "Available Providers" mit Schaltfläche "Add"

Wir werden darauf hingewiesen, dass nun die Authentisierung im Kernelmodus nicht mehr verwendbar ist.

Warnung "Providers": Negotiate-2-Provider "Negotiate:Kerberos" lassen sich bei aktivierter Kernel-Mode-Authentifizierung nicht verwenden

Somit muss für die "Windows Authentication" nun noch auf "Advanced Settings..." geklickt werden.

IIS-Manager, "Authentication": "Windows Authentication" Enabled, Aktion "Advanced Settings..." (gelb markiert)

Anschließend kann der Haken bei "Enable Kernel-mode authentication" entfernt werden.

Dialog "Advanced Settings": Option "Enable Kernel-mode authentication" deaktiviert (gelb markiert)

Die Option "Extended Protection" kann und sollte auf "Required" gesetzt werden.

Funktionstest

Wird der Funktionstest mit einem Browser vorgenommen, muss nun der verwendete DNS-Name für die NDES-Administrations-Webseite in die Internetzone "Local Intranet" aufgenommen werden.

Natürlich muss sich ein solcher Client in der gleichen Active Directory Domäne aufhalten wie der NDES-Server und die Zertifizierungsstelle, oder zumindest muss eine Vertrauensstellung (Trust) bestehen.

Dialog "Internet Options", Registerkarte "Security": Zone "Local intranet" (gelb markiert)

Dialog "Local intranet": https://rendes01.restapidev.com wird mit "Add" zur Zone hinzugefügt

Anschließend sollte man in der Lage sein, die NDES-Administrations-Webseite ohne Eingabe von Benutzername und Kennwort aufzurufen.

Browser: Seite "Network Device Enrollment Service" mit Thumbprint des CA-Zertifikats und Challenge-Kennwort

Das gleiche gilt bei Verwendung des PSCertificateEnrollment Moduls.

Import-Module PSCertificateEnrollment
Get-NDESOTP -ComputerName "{DNS-Name-NDES-Server}"

PowerShell: Get-NDESOTP -ComputerName "rendes01.restapidev.com" gibt ein Challenge-Kennwort aus

Von Maschinen, die keine Active Directory Domänenmitglieder sind, wird nun keine Anmeldung mehr möglich sein. Der Anmeldedialog wird unendlich oft aufkommen.

Dialog "Windows Security": "Sign in to access this site" mit Feldern "User name" und "Password"

Bricht man ihn ab, wird der HTTP Statuscode 401 Unauthentisiert zurückgegeben.

Browser: "401 - Unauthorized: Access is denied due to invalid credentials."

HTTP Basic Authentication nachrüsten

Mit dem Erzwingen von Kerberos fällt die Möglichkeit weg, sich per Benutzername und Passwort an der Administrations-Seite für den Registrierungsdienst für Netzwerkgeräte anzumelden (da dies mit NTLM-Anmeldedaten erfolgt wäre). Um hier wieder eine Möglichkeit zu schaffen, kann jedoch die Basic Authentication nachgerüstet werden.

Hierzu siehe Artikel "Aktivieren der Basic Authentication für den Registrierungsdienst für Netzwerkgeräte (NDES) ".