ADMIN

2024

02

2024-01-30T12:00:00

Softwareverteilung und Patchmanagement

PRAXIS

032

Fernzugriff

RDP

RDP-Verbindungen sicher einrichten

Fenster zum Server

von Thomas Joos

Veröffentlicht in Ausgabe 02/2024 - PRAXIS

Das Remote-Desktop-Protokoll zählt noch immer zu den wichtigsten Verfahren für den Fernzugriff. In diesem Workshop zeigen wir Möglichkeiten auf, RDP zu aktivieren und effektiv sowie sicher zu nutzen. Damit können Sie als Administrator Ihre Windows-Server in der Regel zielsicher verwalten, ohne bei der Sicherheit Abstriche machen zu müssen. Zusammen mit dem Windows Admin Center erhalten Sie dadurch interessante Möglichkeiten, um Windows-Server direkt über den Desktop zu verwalten.

Die in diesem Beitrag beschriebenen Einstellungen funktionieren in den meisten Fällen auch unter Windows Server 2016 und 2019 sowie unter Windows 10 und 11. Wir konzentrieren uns bei der Konfiguration aber auf Windows Server 2022. Nach derzeitigem Stand funktioniert die Vorgehensweise auch auf Windows Server vNext/2025. RDP-Verbindungen sind primär für die grafische Benutzeroberfläche interessant, können aber auch zu Core-Servern aufgebaut werden. In diesem Fall erfolgt die Aktivierung auf dem Core-Server über "sconfig.exe". Über den Menüpunkt "Remotedesktop" haben Sie die Wahl, ob Sie RDP auf dem Core-Server aktivieren oder deaktivieren möchten. Sie können sich mit dem RDP-Client direkt mit dem Core-Server verbinden.
Auch das funktioniert mit dem Windows Admin Center (WAC) genauso, wie bei Servern mit grafischer Oberfläche. In diesem Fall steht in der RDP-Verbindung die Eingabeaufforderung und die PowerShell zur Verfügung sowie die gleichen Tools mit grafischer Oberfläche, die Sie auf der Konsole von Core-Servern nutzen können. Interessant ist ferner die Verwendung von RDP im Windows Admin Center. Damit greifen Sie über den Webbrowser per HTTPS auf Ihre Server zu. Wenn Sie diese dann noch mit Azure Arc kostenlos mit Azure verbunden haben, ist sogar ohne VPN der sichere Zugriff auf Ihre Server über das Internet mit dem Windows Admin Center aus Azure per RDP möglich. Sie können RDP-Dateien dabei mit Zertifikaten digital signieren. Das erhöht die Sicherheit und sorgt gleichzeitig dafür, dass keine Fehlermeldung wegen fehlerhafter Signierung erscheint. Diese ganzen Möglichkeiten verdeutlichen, dass Microsoft auch in Zukunft weiter auf RDP setzt und dessen Unterstützung sogar noch ausbaut.
Remotedesktop aktivieren
Ohne die Installation der Remotedesktopdienste lassen sich auf Windows-Servern zwei aktive RDP-Sessions zur Verwaltung des Servers verwenden. Unter Windows 10/11 Pro/Enterprise kann sich nur ein Benutzer per RDP verbinden. Während der Remotesitzung bei Windows 11 sperrt das Betriebssystem die Session des Benutzers auf dem Desktop. Das ist bei Servern nicht der Fall, außer Sie verwenden für die RDP-Verbindung den gleichen Benutzernamen, wie bei der Konsolenverbindung. RDP-CALs sind für die Verwaltung des Servers per RDP nicht erforderlich, sofern die RDP-Verbindungen tatsächlich auf die Verwaltung des Servers beschränkt sind.
Die in diesem Beitrag beschriebenen Einstellungen funktionieren in den meisten Fällen auch unter Windows Server 2016 und 2019 sowie unter Windows 10 und 11. Wir konzentrieren uns bei der Konfiguration aber auf Windows Server 2022. Nach derzeitigem Stand funktioniert die Vorgehensweise auch auf Windows Server vNext/2025. RDP-Verbindungen sind primär für die grafische Benutzeroberfläche interessant, können aber auch zu Core-Servern aufgebaut werden. In diesem Fall erfolgt die Aktivierung auf dem Core-Server über "sconfig.exe". Über den Menüpunkt "Remotedesktop" haben Sie die Wahl, ob Sie RDP auf dem Core-Server aktivieren oder deaktivieren möchten. Sie können sich mit dem RDP-Client direkt mit dem Core-Server verbinden.
Auch das funktioniert mit dem Windows Admin Center (WAC) genauso, wie bei Servern mit grafischer Oberfläche. In diesem Fall steht in der RDP-Verbindung die Eingabeaufforderung und die PowerShell zur Verfügung sowie die gleichen Tools mit grafischer Oberfläche, die Sie auf der Konsole von Core-Servern nutzen können. Interessant ist ferner die Verwendung von RDP im Windows Admin Center. Damit greifen Sie über den Webbrowser per HTTPS auf Ihre Server zu. Wenn Sie diese dann noch mit Azure Arc kostenlos mit Azure verbunden haben, ist sogar ohne VPN der sichere Zugriff auf Ihre Server über das Internet mit dem Windows Admin Center aus Azure per RDP möglich. Sie können RDP-Dateien dabei mit Zertifikaten digital signieren. Das erhöht die Sicherheit und sorgt gleichzeitig dafür, dass keine Fehlermeldung wegen fehlerhafter Signierung erscheint. Diese ganzen Möglichkeiten verdeutlichen, dass Microsoft auch in Zukunft weiter auf RDP setzt und dessen Unterstützung sogar noch ausbaut.
Remotedesktop aktivieren
Ohne die Installation der Remotedesktopdienste lassen sich auf Windows-Servern zwei aktive RDP-Sessions zur Verwaltung des Servers verwenden. Unter Windows 10/11 Pro/Enterprise kann sich nur ein Benutzer per RDP verbinden. Während der Remotesitzung bei Windows 11 sperrt das Betriebssystem die Session des Benutzers auf dem Desktop. Das ist bei Servern nicht der Fall, außer Sie verwenden für die RDP-Verbindung den gleichen Benutzernamen, wie bei der Konsolenverbindung. RDP-CALs sind für die Verwaltung des Servers per RDP nicht erforderlich, sofern die RDP-Verbindungen tatsächlich auf die Verwaltung des Servers beschränkt sind.
Standardmäßig ist der RDP-Zugang deaktiviert. Sie können die Option "Remoteverbindung zu diesem Computer zulassen" in der grafischen Oberfläche mit sysdm.cpl und der Auswahl der Registerkarte "Remote" aktivieren. Nach der Bestätigung können Sie sich als Admin über RDP mit dem Computer verbinden, zum Beispiel über den lokalen RDP-Client, den Sie mit mstsc.exe starten. Weitere Tools, die in diesem Bereich zum Einsatz kommen sind Royal TS [1] oder der Microsoft Remote Desktop Connection Manager [2].
Durch Aktivieren der Option "Verbindungen nur von Computern zulassen, auf denen Remotedesktop mit Authentifizierung auf Netzwerkebene ausgeführt wird" stellen Sie sicher, dass sich der zugreifende PC unabhängig von der Benutzeranmeldung zunächst authentifizieren muss. Dabei kommt die Authentifizierung auf Netzwerkebene (Network Level Authentication, NLA) zum Einsatz. In Active-Directory-Umgebungen ist dies kein Problem. Greift ein Administrator jedoch von einem PC außerhalb der Domäne, zum Beispiel aus dem Home Office, oder mit einer RDP-App auf einem Smartphone oder Tablet zu, verweigert der Server die Verbindung. Generell ist diese Option aber sinnvoll und sollte möglichst genutzt werden, um Cyberattacken vorzubeugen.
Für den Zugriff über RDP muss der Benutzer in der lokalen Administratorengruppe des Servers oder in der Gruppe "Remotedesktopbenutzer" sein. Dies kann in "sysdm.cpl" auf der Registerkarte "Remote" über die Schaltfläche "Benutzer auswählen" erfolgen. In der Einstellungsapp von Windows Server 2022 stehen die Optionen unter "System / Remotedesktop" zur Verfügung.
Windows Admin Center und PowerShell für RDP
Wenn im Netzwerk bereits das Windows Admin Center im Einsatz und der entsprechende Computer angebunden ist, können Sie RDP über "Einstellungen / Remotedesktop" über das Netzwerk aktivieren. Der Zugriff ist ebenfalls über das WAC und den Bereich "Remotedesktop" möglich. Die Verbindung erfolgt in diesem Fall über das interne Windows-Admin-Center-Gateway, nicht den RDP-Client. Der Client verbindet sich per HTTPS mit dem Admin Center und von da aus wird die RDP-Verbindung zum Server aufgebaut. Jedoch lassen sich hier deutlich weniger Einstellungen vornehmen, dafür müssen Sie die Verbindung aber auch nicht konfigurieren.
Möchten Sie den Zugriff über die lokale Gruppe "Remotedesktopbenutzer" mit dem Windows Admin Center steuern, gehen Sie darin über den Menüpunkt "Lokale Benutzer und Gruppen". Hier pflegen Sie über den Webbrowser lokale Benutzerkonten und deren Gruppen und fügen Benutzerkonten zur Gruppe hinzu. Handelt es sich um Administratoren, ist das jedoch nicht notwendig.
Ob RDP auf einem Server aktiv ist, lässt sich auch mit der PowerShell abfragen, und zwar mit dem Parameter "-computername", ebenfalls über das Netzwerk:
Get-CimInstance -Namespace "root\cimv2\TerminalServices" -Class win32_terminalservicesetting | select ServerName, AllowTSConnections
Der Wert "1" bei "AllowTSConnections" zeigt die Aktivierung von RDP auf dem Server. Ist hier der Wert "0" zu sehen, können Sie RDP über das Netzwerk oder lokal mit der PowerShell aktivieren:
$rdp = Get-CimInstance -Namespace "root/cimv2/TerminalServices" -ClassName "Win32_TerminalServiceSetting" -ComputerName <Servername>
$rdp | Invoke-CimMethod -MethodName "SetAllowTSConnections" -Arguments @{AllowTSConnections=1;ModifyFirewallException=1}
Der Befehl richtet auch gleich die notwendigen Firewall-Regeln ein, damit die Windows-Firewall den Zugriff nicht blockiert.
Bild 1: Im Windows Admin Center können Sie den Remotedesktop aktivieren und sich über den Webbrowser per RDP mit einem Server verbinden.
Gruppenrichtlinien und Firewall-Einstellungen
Generell können Sie den Remotedesktop zur Verwaltung eines Servers über Gruppenrichtlinien steuern. Die Einstellungen dazu finden sich in der Verwaltung der Gruppenrichtlinien unter "Computerkonfiguration / Richtlinien / Administrative Vorlagen / Windows-Komponenten / Remotedesktopdienste / Remotedesktop-Sitzungs-Host / Verbindungen". Die Einstellung heißt "Remoteverbindungen für Benutzer über Remotedesktopdienste zulassen". Wenn Sie die Settings aktivieren, deaktiviert Windows die Optionen in der grafischen Benutzeroberfläche und aktiviert RDP. In der Oberfläche lassen sich diese Einstellungen nicht mehr ändern.
Steuern Sie den Remotedesktop über Gruppenrichtlinien, müssen Sie darauf achten, die entsprechenden Firewall-Regeln manuell oder ebenfalls über eine Gruppenrichtlinie zu definieren. Hier sind die Einstellungen unter "Windows Firewall: Ausnahmen für eingehende Remotedesktopverbindungen zulassen" zuständig. Diese finden Sie im Pfad "Computerkonfiguration / Richtlinien / Administrative Vorlagen / Netzwerk / Netzwerkverbindungen / Windows Defender Firewall / Domänenprofil".
RDP-Dateien für schnellen Zugriff
Neben verschiedenen Zusatztools zum Aufbau von RDP-Verbindungen kommt häufig der lokale RDP-Client in Windows zum Einsatz. Diesen starten Sie mit "mstsc.exe". Im Client können Sie verschiedene Einstellungen vornehmen, wie zum Beispiel die gewünschte Auflösung, das Durchreichen von lokalen Ressourcen wie Zwischenablage, Laufwerke oder Drucker und die Verbindungsqualität. Alle diese Einstellungen lassen sich mit "Speichern unter" in einer RDP-Datei ablegen. Nach einem Doppelklick auf diese Datei öffnet Windows automatisch den Remotedesktop-Client und verbindet den Benutzer nach der Authentifizierung. Dabei können Sie auch die Anmeldedaten speichern. Diese finden Sie jedoch nicht im Remotedesktop-Client, sondern in der "Verwaltung der Anmeldeinformationen" in der Systemsteuerung. Hier lassen sich auch Anmeldedaten ändern, löschen oder ergänzen.
Verbinden Sie sich per Doppelklick über eine RDP-Datei mit einem Server, erscheint in den meisten Fällen eine Sicherheitswarnung wegen eines unbekannten Zertifikates. Das lässt sich aber vermeiden, indem Sie die RDP-Datei signieren. Dazu ist keine komplette Zertifikatekonfiguration notwendig, sondern Sie können mit Windows-Bordmitteln erstellte RDP-Dateien selbst signieren. Die Nutzung solcher Files birgt nämlich durchaus Sicherheitsgefahren. So lassen sich mit einer RDP-Datei, die Sie zum Beispiel im Netzwerk bereitstellen, andere Admins auf mit Malware verseuchte Server locken. Das ist ein Angriffsvektor, der durchaus vorkommt. Daher ist es generell sinnvoll, häufig verwendete RDP-Dateien zu signieren – vor allem, wenn auch andere Admins diese nutzen sollen.
RDP-Dateien signieren
Für das Signieren von RDP-Dateien hat Windows das Befehlszeilentool "rdpsign.exe" an Bord. Das Tool ist sehr einfach zu bedienen und verfügt nur über wenige Optionen. Wenn im Netzwerk bereits eine Zertifizierungsstelle im Einsatz ist, zum Beispiel auf Basis der Active-Directory-Zertifikatsdienste, ergibt es durchaus Sinn, für das Signieren von RDP-Dateien auf Zertifikate dieser Zertifizierungsstelle zurückzugreifen.
Das Zertifikat der Stammzertifizerungsstelle muss dazu auf den Rechnern installiert sein, die sich mit der signierten RDP-Datei verbinden. Sind alle Computer Mitglied im AD, verteilen die Gruppenrichtlinien die Zertifikate der Stammzertifizierungsstelle automatisch im Netzwerk. Das sollten Sie im Vorfeld verifizieren, da der RDP-Client ansonsten die Verbindung nicht aufbaut, wenn er das verwendete Zertifikat nicht anerkennt.
Im Grunde genommen ist das Signieren von Zertifikaten eine einfache Angelegenheit. Mit dem Paramater "/sha256" übergeben Sie den Fingerabdruck des Zertifikats, mit dem Sie die Datei signieren möchten. Der ausstellenden Zertifizierungsstelle sollten alle Computer vertrauen, die diese Datei nutzen. Wichtig ist, dass das Zertifikat AES 256-Bit unterstützt und auf dem Rechner installiert ist, auf dem Sie die Signierung durchführen. Den Fingerabdruck (Thumbprint) finden Sie entweder über "certmgr.msc" bei Benutzerzertifikaten oder mit "certlm.msc" für Zertifikate des Computers auf der Registerkarte "Details" des Zertifikats.
Wenn Sie den Fingerabdruck an "rdpsign.exe" übergeben, achten Sie darauf, ihn ohne Leerzeichen einzugeben, außer am Anfang und Ende der Zeichenkette:
rdpsign.exe /sha256 df3e3a36e67a45e8e4cd96a26241ad871679ce1c c:\temp\dl20.rdp
Der Befehl zeigt dann die erfolgreiche Signierung an. Möchten Sie mehrere RDP-Dateien verteilen, können Sie mit einem Zertifikat alle Dateien auf einmal signieren. Dazu erstellen Sie einfach eine kommagetrennte Liste. Sie sehen die erfolgreiche Signierung auch, wenn Sie die Datei verwenden. Anstatt einer Fehlermeldung, erscheint die Meldung, dass die RDP-Datei signiert ist und auch der Herausgeber ist an dieser Stelle zu sehen. Ist das nicht gewünscht, können Sie das Verhalten über Gruppenrichtlinien steuern.
Die Einstellung "SHA-1-Fingerabdrücke von Zertifikaten angeben, die vertrauenswürdige RDP-Herausgeber darstellen" finden Sie bei "Computerkonfiguration" oder "Benutzerkonfiguration" im Pfad "Administrative Vorlagen / Windows-Komponenten / Remotedesktopdienste / Remotedesktopverbindungs-Client". Hier tragen Sie ebenfalls den SHA-1-Wert des Zertifikats ein.
RDP-Sitzungen auf dem Server überwachen
Sobald RDP auf einem Server aktiviert ist, können sich bis zu zwei Admins mit verschiedenen Benutzernamen per RDP-Client auf den Server verbinden. Auf der Konsole darf ebenfalls ein Benutzer mit eigenem Usernamen angemeldet sein. Um einen Überblick zu erhalten, ob aktuell Benutzer per RDP verbunden sind, steht der Befehl query session zur Verfügung. Nach der Eingabe des Befehls sehen Sie, ob aktuell RDP-Sitzungen bestehen oder Benutzer an der Konsole angemeldet sind. Außerdem sehen Sie an dieser Stelle den Benutzernamen, mit dem die User verbunden sind. Der Befehl query user zeigt die verbundenen Benutzer an und wann sie sich per RDP angemeldet haben.
An dieser Stelle ist es möglich, eine Sitzung zurückzusetzen und vom Server zu trennen, etwa wenn es Verbindungsprobleme gibt, ein Konto getrennt ist oder sich ein zweiter Admin nicht anmelden kann. Auch beim Verdacht, dass es sich bei der zweiten Verbindung um eine nicht erwünschte Sitzung handelt, kann das Trennen sinnvoll sein. Dazu kommt der Befehl reset session <ID> zum Einsatz. Die ID zeigt wiederum der Befehl query user an. Um die Prozesse zu sehen, die über RDP-Sitzungen auf dem Server gestartet wurden, geben Sie query process ein.
Bild 2: Verwalten der Anmeldeinformationen, die für RDP-Verbindungen ebenfalls wichtig sind.
RDP-Port und Firewall-Regeln ändern
Standardmäßig wartet RDP über den Port 3389 auf Verbindungen. Es kann durchaus sinnvoll sein, den Port zu ändern. Dadurch ist der Server zwar weiterhin per RDP erreichbar und Tools wie nmap finden den neuen Port natürlich auch, dennoch verbessert dies die Sicherheit, da Schadcode und Cyberkriminelle ihr Glück zunächst auf Port 3389 probieren. Das Ändern des Ports können Sie in der Registry vornehmen.
Die Einstellungen dazu finden Sie über "HKEY_LOCAL_MACHINE\System\ CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp". Der Port ist über den DWORD-Wert "PortNumber" angegeben. Ändern Sie den Wert nach der Umstellung auf "Dezimal" ab, speichern Sie die Einstellung und starten Sie den Server neu. Achten Sie aber darauf, dass Sie in diesem Fall die alten Firewall-Regeln für den Zugriff auf den Port 3389 deaktivieren und neue Regeln erstellen, die den Zugriff auf den neuen Port erlauben. In der PowerShell überprüfen Sie den neuen Port mit dem Befehl:
Get-ItemProperty -Path "HKLM:\ SYSTEM\CurrentControlSet\Control\ Terminal Server\WinStations\ RDP-Tcp" -name "PortNumber"
Über die PowerShell können Sie den Port für RDP ebenfalls ändern. Sinnvoll ist das zum Beispiel, wenn Sie die Änderung skripten wollen. Um zum Beispiel den Port 3390 für RDP zu verwenden, geben Sie den folgenden Befehl ein:
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" -name "PortNumber" -Value 3390
Die Firewall-Regeln für TCP und UDP lassen sich ebenfalls in der PowerShell ändern. Speichern Sie zuvor den Port als Variable, zum Beispiel mit $RDPPort = 3390, können Sie alles in einem Skript erledigen. Den Port übergeben Sie danach mittels
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" -name "PortNumber" -Value $RDPPort
Da Sie den Port als Variable gespeichert haben, könnten Sie im selben Skript auch gleich die passenden Firewall-Regeln setzen und den Port über die Variable angeben. Natürlich wäre es auch möglich, diesen direkt einzutragen, aber die Verwendung einer Variablen vermeidet Fehler und vereinfacht es, den Wert zu ändern:
New-NetFirewallRule -DisplayName "RDP-TCP-In" -Profile "Domain" -Direction Inbound -Action Allow -Protocol TCP -LocalPort $RDPPort
New-NetFirewallRule -DisplayName "RDP-UDP-In -Profile "Domain" -Direction Inbound -Action Allow -Protocol UDP -LocalPort $RDPPort
Bei "Profile" legen Sie fest, in welchem Firewall-Profil die Regel gelten soll. Neben dem Wert "Domain" für das Domänenprofil gibt es noch "Public" und "Private". Allerdings sollte in Netzwerken idealerweise "Domain" zum Einsatz kommen. Einen öffentlichen Zugriff auf RDP sollten Sie möglichst vermeiden. Ist ein externer Zugriff notwendig, ist der Weg über Azure Arc oder die Verwendung eines VPNs in jedem Fall besser.
RDP nutzt TCP und UDP
RDP verwendet TCP wie auch UDP für den Datenverkehr. Das spielt für die Konfiguration der Firewall-Regeln eine wichtige Rolle und auch für die Leistung. UDP kann unter Umständen schneller sein als TCP-Datenverkehr. Welches Protokoll die aktuelle Verbindung verwendet, handeln Client und Server miteinander aus. Daher sollten dazu Firewall-Regeln für TCP und für UDP parallel aktiv sein.
Generell lässt sich über Gruppenrichtlinien festlegen, welches Protokoll der Server nutzen soll. Aktivieren Sie an dieser Stelle nur die Verwendung von TCP, brauchen Sie die Firewall-Regel für UDP nicht. Die Einstellungen sind bei "RDP-Transportprotokolle" über den Pfad "Computerkonfiguration / Richtlinien / Administrative Vorlagen / Windows-Komponenten / Remotedesktopdienste / Remotedesktopsitzungs-Host / Verbindungen" zu finden. Wählen Sie "UDP oder TCP verwenden", versucht der Client vor allem per UDP zu kommunizieren, was die Geschwindigkeit der Verbindungen verbessern kann. TCP-Verbindungen kommen dann nur ausnahmsweise zum Einsatz.
Fazit
RDP gehört in Unternehmen zu den wichtigsten Protokollen, wenn es um den Remotezugriff auf Windows Server geht. Die Aktivierung ist über verschiedene Wege möglich. Allerdings sollten Sie darauf achten, dass Sie die Verbindungen möglichst sicher konfigurieren und den Port ändern, wo das möglich ist. Dadurch erhöhen Sie die Sicherheit des Servers. Wenn Sie kein RDP benötigen, ist es sinnvoll, das Protokoll nicht zu aktivieren, denn schlussendlich schaffen Sie dadurch weitere Angriffsvektoren.
Besonders sensibel sollten Sie sein, wenn Sie RDP über das Internet verfügbar machen. Hier finden viele Angriffe auf Server statt. Daher kann es angebracht sein, dass der Server entweder nicht direkt über das Internet per RDP erreichbar ist, ein RDP-Gateway zum Einsatz kommt oder der Server über Azure Arc mit dem Internet verbunden ist. In diesem Fall erfolgt die Remoteverwaltung nicht über den RDP-Port, dennoch ist RDP über das Windows Admin Center im Azure-Portal verfügbar, und das sogar kostenlos.
(dr)
Link-Codes
[2] Microsoft Remote Desktop Connection Manager: https://learn.microsoft.com/en-us/sysinternals/downloads/rdcman/