Remotedesktop (RDP) unter Windows härten
Remotedesktop absichern mit NLA, TLS-Sicherheitsschicht, PKI-Zertifikaten, eingeschränkten Benutzern, Firewall-Begrenzung, Sitzungslimits und den richtigen Protokollen.
Über Remotedesktop werden die meisten Windows-Server verwaltet, und zugleich ist es bei Ransomware-Vorfällen einer der häufigsten Kanäle für Erstzugriff und Lateral Movement. Exponiertes RDP wird per Brute Force angegriffen; internes RDP wird mit gestohlenen Anmeldedaten genutzt, um von Server zu Server zu springen. Der Großteil der Abwehr ist nicht exotisch: authentifizieren, bevor eine Sitzung existiert, mit einem vertrauenswürdigen Zertifikat verschlüsseln, begrenzen, wer sich von wo verbinden darf, und alles protokollieren.
Dieser Leitfaden gehört zum Bereich Legacy-Protokolle. Der Schutz der Anmeldedaten des Administrators auf dem Zielserver (Restricted Admin und Remote Credential Guard) ist ein eigenes Thema, das in RDP ohne preisgegebene Anmeldedaten behandelt wird.
Die Einstellungen in einer Tabelle
Alle folgenden Gruppenrichtlinieneinstellungen befinden sich unter Computer Configuration > Policies > Administrative Templates > Windows Components > Remote Desktop Services > Remote Desktop Session Host, gefolgt vom angegebenen Unterordner.
| Unterordner | Einstellung | Wert |
|---|---|---|
| Security | Require user authentication for remote connections by using Network Level Authentication | Enabled |
| Security | Require use of specific security layer for remote (RDP) connections | Enabled, SSL |
| Security | Set client connection encryption level | Enabled, High Level |
| Security | Always prompt for password upon connection | Enabled |
| Security | Require secure RPC communication | Enabled |
| Security | Server authentication certificate template | Name Ihrer RDP-Vorlage |
| Connections | Allow users to connect remotely by using Remote Desktop Services | Nur dort aktiviert, wo RDP benötigt wird |
| Session Time Limits | Set time limit for disconnected sessions | 1 Stunde oder weniger auf Servern |
| Session Time Limits | Set time limit for active but idle Remote Desktop Services sessions | 15 bis 60 Minuten |
| Device and Resource Redirection | Do not allow drive redirection | Auf Servern aktiviert |
| Device and Resource Redirection | Do not allow Clipboard redirection | Für Tier 0 und sensible Server aktiviert |
Die zugehörigen Registrierungswerte für den RDP-Listener liegen unter HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp: UserAuthentication = 1 (NLA), SecurityLayer = 2 (TLS), MinEncryptionLevel = 3 (High). Richtlinienwerte werden unter HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services geschrieben und haben Vorrang.
Schritt 1: RDP vom Internet fernhalten
Keine Einstellung in diesem Leitfaden macht RDP sicher genug, um es direkt zu exponieren. Verwenden Sie für den Fernzugriff eine dieser Varianten:
- Remotedesktopgateway mit MFA (etwa über die NPS-Erweiterung für die Multi-Faktor-Authentifizierung von Microsoft Entra), das nur HTTPS exponiert.
- Ein VPN mit MFA, wobei RDP nur aus dem VPN-Adresspool erreichbar ist.
- Einen Cloud-Bastion-Dienst vor in der Cloud gehosteten VMs.
Prüfen Sie Ihre externe Angriffsfläche regelmäßig von außen und kontrollieren Sie die NAT-Regeln auf Firewalls für Port 3389 und alles, was dorthin weitergeleitet wird. Den Listening-Port zu ändern (PortNumber unter dem Schlüssel RDP-Tcp) ist keine Schutzmaßnahme.
Schritt 2: Authentifizierung auf Netzwerkebene verlangen
Mit NLA authentifiziert sich der Client per CredSSP, bevor der Server eine Sitzung erstellt oder einen Anmeldebildschirm anzeigt. Das beseitigt Angriffsfläche vor der Authentifizierung (Schwachstellen der BlueKeep-Klasse wurden durch NLA entschärft) und verhindert, dass anonyme Benutzer Sitzungsressourcen verbrauchen.
NLA ist in aktuellen Windows-Versionen der Standard, wird aber häufig abgeschaltet, um ein Verbindungsproblem zu „beheben“, und nie wieder eingeschaltet. Erzwingen Sie es per Richtlinie und beheben Sie dann die eigentliche Ursache: typischerweise ein alter Client, ein Jump-Host außerhalb der Domäne oder ein Benutzer, der ein abgelaufenes Kennwort ändern muss (NLA kann nicht zur Kennwortänderung auffordern; Benutzer brauchen dafür einen anderen Weg).
Setzen Sie außerdem Encryption Oracle Remediation unter Computer Configuration > Policies > Administrative Templates > System > Credentials Delegation auf Force Updated Clients, damit keine Seite ungepatchte CredSSP-Gegenstellen akzeptiert.
Schritt 3: TLS mit einem vertrauenswürdigen Zertifikat verwenden
Ist die Sicherheitsschicht auf SSL (TLS) gesetzt, wird jede Verbindung mit TLS verschlüsselt, und der Server weist seine Identität mit einem Zertifikat nach. Standardmäßig ist dieses Zertifikat selbstsigniert, sodass Benutzer lernen, die Warnung wegzuklicken, und genau darauf setzt ein Angreifer in der Mitte (Attacker-in-the-Middle).
Stellen Sie RDP-Zertifikate aus Ihrer internen PKI aus:
- Duplizieren Sie in AD CS die Vorlage Computer, benennen Sie sie (etwa
RDP-Server) und stellen Sie sicher, dass die Anwendungsrichtlinien Server Authentication enthalten (oder die spezielle OID Remote Desktop Authentication1.3.6.1.4.1.311.54.1.2). Erteilen Sie den relevanten Computergruppen das Recht zur automatischen Registrierung. - Setzen Sie Server authentication certificate template auf diesen Vorlagennamen. Die Hosts registrieren sich automatisch und binden das Zertifikat an den Listener.
- Belassen Sie auf Clients Configure server authentication for client (unter Remote Desktop Connection Client) bei Warn me oder setzen Sie es für Admin-Arbeitsplätze auf Do not connect, damit ein nicht passendes Zertifikat nicht stillschweigend akzeptiert wird.
Zusammen mit der Härtung von TLS und Schannel erhält RDP so einen modernen, authentifizierten Kanal.
Schritt 4: begrenzen, wer sich von wo verbinden darf
Benutzer. Das Benutzerrecht Allow log on through Remote Desktop Services (Anmelden über Remotedesktopdienste zulassen; Computer Configuration > Policies > Windows Settings > Security Settings > Local Policies > User Rights Assignment) steht standardmäßig auf Administratoren und Remotedesktopbenutzer. Setzen Sie es pro Server-Tier ausdrücklich auf eine kleine Admingruppe. Ergänzen Sie Deny log on through Remote Desktop Services für lokale Konten (Local account and member of Administrators group, SID S-1-5-114) und auf niedrigeren Tiers für Tier-0-Konten, wie im Leitfaden zum Admin-Tiering beschrieben. Halten Sie die lokale Gruppe Remotedesktopbenutzer auf Servern leer, sofern sie nicht zentral verwaltet wird.
Arbeitsplätze. Die meisten Benutzerarbeitsplätze müssen überhaupt keine RDP-Verbindungen annehmen. Lassen Sie Allow users to connect remotely dort deaktiviert; der Helpdesk kann stattdessen ein Remoteunterstützungstool verwenden.
Netzwerke. Begrenzen Sie die eingehenden Firewallregeln auf Ihr Adminnetz oder Ihre Privileged Access Workstations:
Set-NetFirewallRule -DisplayGroup "Remote Desktop" `
-RemoteAddress 10.10.50.0/24 -Profile DomainSetzen Sie dasselbe zentral über die im Leitfaden zur Windows-Firewall beschriebene Firewallrichtlinie um, die auch RDP zwischen Arbeitsplätzen blockiert.
Brute Force. Windows 11 ab 22H2 wird mit einer standardmäßigen Kontosperrungsrichtlinie (10 Fehlversuche innerhalb von 10 Minuten) für lokale Konten ausgeliefert. Für Domänenkonten gilt Ihre Sperrrichtlinie der Domäne. Die Kontosperrung ist ein Auffangnetz, keine Verteidigung für exponiertes RDP.
Schritt 5: RDP-Aktivitäten protokollieren
| Protokoll | Ereignis | Bedeutung |
|---|---|---|
| Security | 4624, Anmeldetyp 10 | Erfolgreiche RDP-Anmeldung (RemoteInteractive) |
| Security | 4625 | Fehlgeschlagene Anmeldung; mit NLA erscheinen Fehlschläge oft als Anmeldetyp 3 |
| Security | 4778 / 4779 | Sitzung wiederverbunden / getrennt |
| TerminalServices-RemoteConnectionManager/Operational | 1149 | Netzwerkauthentifizierung für einen Benutzer von einer IP erfolgreich |
| TerminalServices-LocalSessionManager/Operational | 21, 23, 24, 25 | Sitzungsanmeldung, Abmeldung, Trennung, erneute Verbindung |
| RemoteDesktopServices-RdpCoreTS/Operational | 131 | Verbindung von einer Client-IP und einem Port angenommen |
Aktivieren Sie Audit Logon und Audit Other Logon/Logoff Events (Erfolg und Fehler) in der erweiterten Überwachungsrichtlinie; die Baseline für die Überwachungsrichtlinie deckt beides ab. Alarmieren Sie bei RDP-Anmeldungen privilegierter Konten außerhalb von PAWs, bei RDP von Arbeitsplatz zu Arbeitsplatz und bei gehäuften 4625-Ereignissen.
Was dabei kaputtgeht
- Kennwortänderung bei der Anmeldung unter NLA: Benutzer mit abgelaufenem Kennwort können sich erst verbinden, wenn sie es anderswo zurückgesetzt haben. Bieten Sie ihnen eine Self-Service-Kennwortzurücksetzung oder die Änderung per Strg+Alt+Ende in einer funktionierenden Sitzung an.
- Das Entfernen der Zwischenablage- und Laufwerksumleitung frustriert Admins, die Dateien verschieben wollen. Stellen Sie einen ordentlichen Weg für die Dateiübertragung bereit.
- Alte Thin Clients, die NLA oder TLS 1.2 nicht unterstützen.
- Sitzungszeitlimits beenden lang laufende interaktive Aufgaben. Führen Sie diese als geplante Aufgaben oder Dienste aus, nicht in einer getrennten Sitzung.
Überprüfen
Get-CimInstance -Namespace root\cimv2\TerminalServices -ClassName Win32_TSGeneralSetting `
-Filter "TerminalName='RDP-Tcp'" |
Select-Object UserAuthenticationRequired, SecurityLayer, MinEncryptionLevel, SSLCertificateSHA1Hash
Get-NetFirewallRule -DisplayGroup "Remote Desktop" | Get-NetFirewallAddressFilterErwartet werden UserAuthenticationRequired = 1, SecurityLayer = 2, MinEncryptionLevel = 3 und ein Zertifikatfingerabdruck, der zu einem von der PKI ausgestellten Zertifikat im persönlichen Speicher des Computers passt, nicht zu einem selbstsignierten. Verbinden Sie sich von einer PAW aus und prüfen Sie, dass keine Zertifikatwarnung erscheint; verbinden Sie sich aus einem Nicht-Admin-Subnetz und prüfen Sie, dass die Verbindung in ein Timeout läuft.
Checkliste
- Kein RDP zum Internet exponiert; Fernzugriff über RD-Gateway oder VPN mit MFA
- NLA per Richtlinie erzwungen; Encryption Oracle Remediation auf Force Updated Clients gesetzt
- Sicherheitsschicht TLS, Verschlüsselungsstufe High, PKI-Zertifikate über eine Vorlage
- RDP auf Arbeitsplätzen deaktiviert, die es nicht brauchen
- „Allow log on through Remote Desktop Services“ pro Tier auf Admingruppen beschränkt
- RDP-Anmeldung für lokale Adminkonten verweigert (
S-1-5-114) - Firewallregeln auf Adminnetze begrenzt
- Sitzungszeitlimits und Einschränkungen der Umleitung auf Servern
- Ereignisse 4624 Typ 10, 1149 und LocalSessionManager erfasst und mit Alarmen versehen
Diese Einstellungen schützen den Server vor dem Netzwerk. Um den Administrator vor einem kompromittierten Server zu schützen, lesen Sie weiter bei Restricted Admin und Remote Credential Guard.
Häufige Fragen
Verbessert es die Sicherheit, den RDP-Port 3389 zu ändern?
Kaum. Internetweite Scanner finden RDP auf jedem Port innerhalb von Stunden; ein anderer Port reduziert also nur das Protokollrauschen der faulsten Bots. Außerdem verkompliziert er Firewallregeln und Dokumentation. Investieren Sie den Aufwand lieber darin, RDP komplett vom Internet fernzuhalten, Authentifizierung auf Netzwerkebene zu verlangen, die Firewallregel auf Adminnetze zu begrenzen und allem, was von außen kommt, ein RD-Gateway mit MFA vorzuschalten.
Was ist der Unterschied zwischen NLA und Restricted Admin oder Remote Credential Guard?
Die Authentifizierung auf Netzwerkebene (NLA) zwingt den Client, sich zu authentifizieren, bevor eine Sitzung und ein Anmeldebildschirm erstellt werden, und schützt so den Server vor nicht authentifizierten Angreifern. Restricted Admin und Remote Credential Guard schützen die Anmeldedaten des Clients vor einem kompromittierten Server. Sie lösen entgegengesetzte Probleme: Verwenden Sie NLA überall und ergänzen Sie für Administratoren einen der Modi zum Schutz von Anmeldedaten.
Welches Ereignis zeigt, wer sich per RDP angemeldet hat?
Sicherheitsereignis 4624 mit Anmeldetyp 10 (RemoteInteractive) zeichnet eine RDP-Anmeldung einschließlich der Quelladresse auf. Ereignis 1149 im Protokoll TerminalServices-RemoteConnectionManager Operational zeigt eine erfolgreiche Netzwerkauthentifizierung, und die Ereignisse 21, 24 und 25 im Protokoll TerminalServices-LocalSessionManager Operational zeigen Anmeldung, Trennung und erneute Verbindung einer Sitzung. Korrelieren Sie sie, um eine Sitzung von Anfang bis Ende zu verfolgen.
Remotedesktop (RDP) unter Windows härten