RDP-Härtung: Remote Desktop Protocol für Windows Server sicher konfigurieren
Der Remote Desktop Protocol (RDP) ist eines der am häufigsten angegriffenen Protokolle im Windows-Ökosystem. Offene RDP-Ports (3389) im Internet ziehen automatisierte Brute-Force-Angriffe, Credential-Stuffing und Exploits wie BlueKeep (CVE-2019-0708) oder DejaBlue an. Eine konsequente Härtung ist für jede Windows-Server-Umgebung Pflicht – egal ob On-Premises, in der Cloud oder im Homelab.
1. Netzwerkebene: RDP nicht direkt ins Internet exponieren
Die wirksamste Maßnahme ist, Port 3389 gar nicht erst öffentlich erreichbar zu machen:
- VPN oder RDP-Gateway: Clients verbinden sich per VPN (WireGuard, OpenVPN, IPsec) oder über einen RD Gateway Server (HTTPS auf 443) mit Vorauthentifizierung.
- Firewall-Regeln einschränken: Auf dem Server erlaubt die Windows-Firewall eingehenden RDP-Verkehr nur aus vertrauenswürdigen Netzen (z. B. Management-VLAN, VPN-Subnetz). Beispiel PowerShell:
New-NetFirewallRule -DisplayName "RDP aus Management-Netz" -Direction Inbound -Protocol TCP -LocalPort 3389 -RemoteAddress 10.10.10.0/24 -Action Allow -Profile Domain,Private
- Just-in-Time-Zugriff (Azure/AWS): In Cloud-Umgebungen JIT-VM-Zugriff aktivieren – Port 3389 öffnet sich nur auf Anfrage für begrenzte Zeit.
2. Authentifizierung: Network Level Authentication (NLA) erzwingen
NLA erfordert Authentifizierung vor der eigentlichen RDP-Sitzung. Das schützt vor unauthentifizierten Exploits (z. B. BlueKeep) und reduziert Ressourcenverbrauch durch abgebrochene Verbindungsversuche.
- Per GPO:
Computerkonfiguration → Administrative Vorlagen → Windows-Komponenten → Remotedesktopdienste → Remotedesktopsitzungs-Host → Sicherheit → Benutzerauthentifizierung für Remoteverbindungen mithilfe der Netzwerkebene-Authentifizierung verlangen→ Aktiviert. - Per PowerShell (lokal):
Set-ItemProperty -Path 'HKLM:SYSTEMCurrentControlSetControlTerminal ServerWinStationsRDP-Tcp' -Name 'UserAuthentication' -Value 1 -Type DWord
- Prüfung:
Get-ItemProperty -Path 'HKLM:SYSTEMCurrentControlSetControlTerminal ServerWinStationsRDP-Tcp' -Name 'UserAuthentication'muss1zurückgeben.
3. Verschlüsselung: Hohe Verschlüsselungsstufe festlegen
RDP unterstützt vier Verschlüsselungsstufen. Für produktive Umgebungen ist Hohe Ebene (FIPS 140) Mindeststandard.
- Per GPO:
Computerkonfiguration → Administrative Vorlagen → Windows-Komponenten → Remotedesktopdienste → Remotedesktopsitzungs-Host → Sicherheit → Clientverbindungs-Verschlüsselungsstufe festlegen→ Aktiviert → Hohe Ebene. - Registry:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal ServerWinStationsRDP-TcpMinEncryptionLevel = 3(3 = High). - Hinweis: Ab Windows Server 2012 R2 / Windows 8.1 ist NLA mit CredSSP die einzige Methode, die TLS 1.2 nutzt. Ältere Stufen (Low, Client Compatible) verwenden RC4 und sind unsicher.
4. CredSSP-Oracle-Schutz (CVE-2018-0886) aktivieren
Die CredSSP-Schwachstelle erlaubt Man-in-the-Middle-Angriffe, wenn der Client auf „Vulnerable“ steht. Der Fix erfordert auf Client und Server den Patch (März 2018 oder neuer) und die Einstellung „Force updated clients“ oder „Mitigated“.
- Per GPO (Server):
Computerkonfiguration → Administrative Vorlagen → System → Anmeldeinformationen delegieren → Oracle-Schutz für Remoteverbindungen→ Aktiviert → Force updated clients (empfohlen) oder Mitigated. - Registry (Server):
HKLMSoftwareMicrosoftWindowsCurrentVersionPoliciesSystemCredSSPParametersAllowEncryptionOracle = 1(1 = Force updated clients, 2 = Mitigated, 0 = Vulnerable – nicht verwenden). - Client-Seite: Derselbe GPO-Schlüssel unter
Computerkonfiguration → Administrative Vorlagen → System → Anmeldeinformationen delegierenmuss auf den Clients ebenfalls gesetzt sein, sonst schlagen Verbindungen fehl.
5. Konto-Schutz: Sperrrichtlinien und starke Kennwörter
- Kontosperrung: GPO
Computerkonfiguration → Windows-Einstellungen → Sicherheitseinstellungen → Kontoeinstellungen → Konto-Sperrrichtlinie: Sperrdauer 15 Min, Sperrschwellwert 5 ungültige Anmeldungen, Zurücksetzen nach 15 Min. - Kennwortrichtlinie: Mindestlänge 14 Zeichen, Komplexität aktiviert, Kennworthistorie 24, max. Kennwortalter 90 Tage.
- Lokale Administratoren: Das lokale Administrator-Konto umbenennen, deaktivieren oder per GPO
Computerkonfiguration → Einstellungen → Systemsteuerung → Lokale Benutzer und Gruppenein zufälliges, langes Kennwort setzen (LAPS nutzen).
6. RDP-Einschränkungen per GPO: Geräteumleitung, Drucker, Zwischenablage
Nicht benötigte Funktionen reduzieren die Angriffsfläche und verhindern Datenabfluss:
Computerkonfiguration → Administrative Vorlagen → Windows-Komponenten → Remotedesktopdienste → Remotedesktopsitzungs-Host → Geräte- und Ressourcenumleitung:- Laufwerke nicht umleiten → Aktiviert
- Drucker nicht umleiten → Aktiviert (wenn nicht benötigt)
- Zwischenablage nicht umleiten → Aktiviert (bei sensiblen Umgebungen)
- COM-Ports nicht umleiten → Aktiviert
- Unterstützung für Plug-and-Play-Geräte nicht zulassen → Aktiviert
7. Sitzungssicherheit: Timeouts und Begrenzungen
- Leerlauf-Timeout: GPO
Computerkonfiguration → Administrative Vorlagen → Windows-Komponenten → Remotedesktopdienste → Remotedesktopsitzungs-Host → Sitzungszeitlimits → Zeitlimit für aktive, aber inaktive Remotedesktopsitzungen festlegen→ z. B. 15 Minuten (900000 ms). - Getrennte Sitzungen beenden:
Zeitlimit für getrennte Sitzungen festlegen→ 1 Minute (60000 ms), damit verwaiste Sessions Ressourcen freigeben. - Maximale Sitzungen pro Benutzer:
Remotedesktopsitzungs-Host → Verbindungen → Remotedesktopdienste beschränken, sodass Benutzer auf eine einzelne Sitzung beschränkt sind→ Aktiviert.
8. Zertifikatbasierte Authentifizierung (Optional, für Hochsicherheit)
Statt Kennwörter können Smartcards oder Zertifikate genutzt werden:
- RD Gateway mit Clientzertifikat-Authentifizierung (AD CS oder öffentliches PKI).
- Remotedesktop-Verbindungsbroker für Hochverfügbarkeit mit Zertifikaten.
- GPO:
Computerkonfiguration → Administrative Vorlagen → Windows-Komponenten → Remotedesktopdienste → Remotedesktopverbindungs-Client → Serverauthentifizierung erfordern→ Aktiviert.
9. Überwachung und Logging
- Erfolgs- und Fehlschlag-Auditing: GPO
Computerkonfiguration → Windows-Einstellungen → Sicherheitseinstellungen → Erweiterte Auditrichtlinien → Anmeldung/Abmeldung → Anmelden überwachen→ Erfolg + Fehler. - Event-IDs im Blick behalten: 4624 (Erfolg), 4625 (Fehlschlag, Typ 10 = RDP), 4771 (Kerberos-Vorauthentifizierung fehlgeschlagen), 1149 (RDP-Client-Verbindung).
- Windows Defender ATP / Defender for Endpoint: RDP-bezogene Alerts (Brute-Force, lateral movement) aktivieren.
10. Härtung per PowerShell-Skript (Zusammenfassung)
Das folgende Skript setzt die wichtigsten Registry-Werte für einen einzelnen Server (lokal als Administrator ausführen):
# RDP-Härtung – lokale Registry (ergänzt GPO, nicht ersetzen)
$base = 'HKLM:SYSTEMCurrentControlSetControlTerminal ServerWinStationsRDP-Tcp'
Set-ItemProperty -Path $base -Name 'UserAuthentication' -Value 1 -Type DWord # NLA erzwingen
Set-ItemProperty -Path $base -Name 'MinEncryptionLevel' -Value 3 -Type DWord # High Encryption
Set-ItemProperty -Path $base -Name 'SecurityLayer' -Value 2 -Type DWord # 2 = SSL (TLS 1.2)
Set-ItemProperty -Path $base -Name 'fDenyTSConnections' -Value 0 -Type DWord # RDP aktiv (1 = aus)
# CredSSP Oracle Protection (Server)
$credssp = 'HKLM:SoftwareMicrosoftWindowsCurrentVersionPoliciesSystemCredSSPParameters'
if (-not (Test-Path $credssp)) { New-Item -Path $credssp -Force | Out-Null }
Set-ItemProperty -Path $credssp -Name 'AllowEncryptionOracle' -Value 1 -Type DWord # Force updated clients
# Firewall: RDP nur aus Management-Subnetz (Beispiel 10.10.10.0/24 anpassen!)
New-NetFirewallRule -DisplayName 'RDP aus Management-Netz' -Direction Inbound -Protocol TCP -LocalPort 3389 -RemoteAddress '10.10.10.0/24' -Action Allow -Profile Domain,Private -ErrorAction SilentlyContinue
Write-Host 'RDP-Härtung angewendet. GPO-Einstellungen für Domain-Umgebungen separat konfigurieren.'
Quellen
- Microsoft Learn: Remote Desktop – Zugriff erlauben und Sicherheit konfigurieren (Stand 2024)
- Microsoft Learn: Remote Desktop Services – Sicherheitskonfiguration
- Microsoft Security Bulletin MS18-017: CredSSP-Remote-Codeausführung (CVE-2018-0886)
- BSI IT-Grundschutz Baustein SYS.1.2: Windows Server 2019/2022 – Härtung Remotedesktopdienste
- Microsoft Security Policy: NLA für Remoteverbindungen verlangen
Hinweis: Dieser Beitrag wurde mit Unterstützung künstlicher Intelligenz (KI) erstellt.
No responses yet