Domänencontroller härten: die DC-Baseline
Praxis-Checkliste zur Härtung von Domänencontrollern: Sicherheits-Baselines, Druckwarteschlange, Anmelderechte, RDP, ausgehender Verkehr und Patch-Prioritäten.
Domänencontroller sind in den meisten Windows-Umgebungen das wertvollste Einzelziel: Wer einen kompromittiert, besitzt faktisch die Domäne. Trotzdem werden DCs häufig wie gewöhnliche Mitgliedsserver behandelt – mit aktivierten Standardrollen, per RDP für den halben Helpdesk erreichbar und „der Bequemlichkeit halber“ mit Internetzugang. Dieser Leitfaden führt durch die konkreten Konfigurationsschritte, die die Angriffsfläche eines DC auf das reduzieren, was er wirklich braucht: Authentifizierung, Replikation und DNS.
Alles Folgende ergänzt Ihren bestehenden Patch-Rhythmus, ersetzt ihn aber nicht. Betrachten Sie es als Mindeststandard für jeden DC – egal, ob Sie zwei oder zweihundert betreiben.
Die Microsoft-Sicherheits-Baseline anwenden
Beginnen Sie mit der von Microsoft veröffentlichten Baseline aus dem Security Compliance Toolkit für die Domänencontroller-Rolle, statt eine eigene Richtlinie von Grund auf zu entwerfen. Die Baseline-GPOs bilden Microsofts aktuelle Empfehlungen für Überwachungsrichtlinie, Zuweisen von Benutzerrechten und Sicherheitsoptionen ab und sind pro Windows-Server-Version versioniert.
- Laden Sie das aktuelle Security Compliance Toolkit (SCT) und die passende Windows-Server-Sicherheits-Baseline für die Betriebssystemversion Ihrer DCs von Microsoft herunter.
- Importieren Sie die Baseline-GPOs in Ihre Domäne (zunächst mit einer Test-OU verknüpft) – mit dem Skript
Baseline-ADImport.ps1aus dem Paket oder dem Assistenten Einstellungen importieren der Gruppenrichtlinienverwaltungskonsole (GPMC).LGPO.exewendet Einstellungen nur auf die lokale Richtlinie eines einzelnen Testrechners an. - Vergleichen Sie die Baseline vor dem Rollout mit Ihren aktuellen DC-GPOs per
Get-GPOReport -ReportType Html, damit Sie genau wissen, was sich ändert. - Verknüpfen Sie die Baseline-GPO mit einer OU, die ausschließlich Domänencontroller enthält (normalerweise die integrierte OU Domain Controllers), niemals mit dem Domänenstamm.
# Aktuell mit den DCs verknüpfte GPOs vor dem Baseline-Import zum Vergleich exportieren
Get-GPO -All | Where-Object { (Get-GPInheritance -Target "OU=Domain Controllers,DC=corp,DC=example,DC=com").GpoLinks.DisplayName -contains $_.DisplayName } |
ForEach-Object { Get-GPOReport -Guid $_.Id -ReportType Html -Path "C:\GPOBackup\$($_.DisplayName).html" }Wiederholen Sie den Baseline-Import bei jedem Update von Microsoft; behandeln Sie das wie Patch-Management, nicht wie ein einmaliges Projekt.
Die Druckwarteschlange auf DCs deaktivieren
Der Druckwarteschlangendienst (Print Spooler) war der Einstiegspunkt für mehrere kritische Schwachstellen, allen voran PrintNightmare (CVE-2021-34527), dazu eine lange Reihe von Problemen bei der Point-and-Print-Treiberinstallation und Coercion-Missbrauch (Spooler-basierte RPC-Coercion als Zubringer für NTLM-Relay). Nichts davon wird auf einem Domänencontroller benötigt.
# Druckwarteschlange auf allen DCs deaktivieren und stoppen
Get-ADDomainController -Filter * | ForEach-Object {
Invoke-Command -ComputerName $_.HostName -ScriptBlock {
Stop-Service -Name Spooler -Force
Set-Service -Name Spooler -StartupType Disabled
}
}Erzwingen Sie dies zentral per GPO, damit es Neustarts und Neubereitstellungen übersteht:
- Computer Configuration → Policies → Windows Settings → Security Settings → System Services → Print Spooler → auf Disabled setzen.
Überprüfung:
Get-ADDomainController -Filter * | ForEach-Object {
Get-Service -ComputerName $_.HostName -Name Spooler | Select-Object MachineName, Status, StartType
}Wenn eine Legacy-Anwendung auf einem Server tatsächlich Druckdienste benötigt, ist das eine Aufgabe für einen dedizierten Druckserver, der kein DC ist – niemals für einen Domänencontroller.
Lokale und RDP-Anmeldung auf Tier 0 beschränken
Jedes Konto, das sich interaktiv oder per RDP an einem DC anmelden kann, ist funktional ein Domänen-Admin. Wenden Sie die folgenden Einstellungen zum Zuweisen von Benutzerrechten über eine mit der OU Domain Controllers verknüpfte GPO an und befüllen Sie sie mit einer dedizierten Tier-0-Admin-Gruppe statt mit breiten Gruppen wie Domain Admins oder Server Admins.
| Recht | GPO-Pfad | Empfohlene Mitgliedschaft |
|---|---|---|
| Allow log on locally | Computer Configuration → Windows Settings → Security Settings → Local Policies → User Rights Assignment | Nur Tier-0-Admins |
| Allow log on through Remote Desktop Services | (gleicher Pfad) | Nur Tier-0-Admins (kleine, benannte Gruppe) |
| Deny log on through Remote Desktop Services | (gleicher Pfad) | Alle Nicht-Tier-0-Admin-Gruppen (nicht Domain Users: Auch Tier-0-Admins sind Mitglied, und Verweigern hat Vorrang vor Zulassen) |
| Deny access to this computer from the network | (gleicher Pfad) | Lokale Konten und Tier-1/Tier-2-Admin-Gruppen (niemals Domain Users: Jeder Benutzer und Computer braucht die Netzwerkanmeldung an DCs für SYSVOL und Gruppenrichtlinien) |
# Aktuelle Mitgliedschaft in „Allow log on through RDS“ auf einem DC prüfen
$dc = "DC01"
secedit /export /cfg C:\Temp\dc01-secpol.cfg /areas USER_RIGHTS
Select-String -Path C:\Temp\dc01-secpol.cfg -Pattern "SeRemoteInteractiveLogonRight"Kombinieren Sie dies mit dem Modell Tier 0 & privilegierter Zugriff: Tier-0-Admins sollten sich von Privileged Access Workstations aus verbinden, nicht von ihren Alltags-Laptops, und dauerhafter RDP-Zugriff sollte nach Möglichkeit durch Just-in-Time-Erhöhung ersetzt werden.
Ausgehenden Internetzugriff von Domänencontrollern blockieren
Ein DC hat keinen legitimen Grund, beliebige Internethosts anzusprechen. Ausgehender Zugriff ist ein gängiger Kanal nach einer Kompromittierung – für Command-and-Control-Callbacks und das Bereitstellen von Daten. Beschränken Sie den ausgehenden Verkehr der DCs an der Netzwerk-Firewall auf das betrieblich Notwendige:
- Windows Update / WSUS oder einen Patch-Management-Endpunkt
- NTP-/Zeitquellen (falls keine interne Zeithierarchie genutzt wird)
- Endpunkte für Zertifikatsperrung/OCSP, sofern öffentlich gehostet
- Erforderliche Endpunkte für die Verzeichnissynchronisierung (z. B. Entra Connect, falls nicht auf demselben System)
# Example firewall intent (implement in your perimeter/NGFW, not just Windows Firewall)
DENY DC-subnet -> ANY (0.0.0.0/0) port 80,443 [default deny]
ALLOW DC-subnet -> WSUS-server port 8530,8531
ALLOW DC-subnet -> approved-NTP port 123Verlassen Sie sich dabei nicht allein auf die Windows Defender Firewall – setzen Sie es auf Netzwerkebene durch, damit eine lokale Richtlinienänderung auf dem DC den ausgehenden Verkehr nicht unbemerkt wieder öffnen kann.
Patch-Prioritäten: ZeroLogon, PetitPotam/Coercion, PrintNightmare
Drei Schwachstellenklassen verdienen dauerhaft Priorität in Ihrem Patch-Zyklus, weil jede direkt zur Kompromittierung der Domäne führen kann:
ZeroLogon (CVE-2020-1472) – nutzt einen Fehler im sicheren Netlogon-Kanal aus, um das Kennwort des Computerkontos eines DC zurückzusetzen. Patchen Sie vollständig (den ersten Patch von 2020 plus die Erzwingungsphase, die von allen Netlogon-Clients sicheres RPC verlangt) und bestätigen Sie den Erzwingungsmodus:
Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters" -Name "FullSecureChannelProtection" -ErrorAction SilentlyContinueHintergründe zur Schwachstelle selbst finden Sie unter ZeroLogon.
PetitPotam und andere Coercion-Techniken – missbrauchen RPC-/DCOM-Schnittstellen, um einen DC zur Authentifizierung an einem vom Angreifer kontrollierten Endpunkt zu zwingen, typischerweise als Zubringer für einen NTLM-Relay-Angriff auf AD CS oder LDAP. Gegenmaßnahmen:
- Extended Protection for Authentication (EPA) auf den Web-Registrierungsendpunkten von AD CS und für LDAP aktivieren.
- NTLM wo möglich deaktivieren oder zumindest LDAP-/LDAPS-Signierung und Channel Binding erzwingen.
- RPC-Filter einsetzen, um nicht authentifizierte Aufrufe an Schnittstellen wie
EFSRPC/MS-RPRNvon Nicht-DC-Hosts zu blockieren, wo sie nicht benötigt werden.
PrintNightmare – oben durch das Deaktivieren des Spoolers abgedeckt; patchen Sie trotzdem, da einige verwandte Druckertreiber-CVEs auch Codepfade außerhalb des Spoolers betreffen.
Führen Sie diese drei CVE-Familien in Ihrem Schwachstellenmanagement-SLA als „Patch innerhalb von 72 Stunden nach Veröffentlichung“, getrennt vom regulären Patchday-Rhythmus.
Zeitsynchronisierung absichern (w32time)
Kerberos setzt standardmäßig eine Zeitabweichung von höchstens 5 Minuten voraus; ein Angreifer, der die Uhr eines DC manipulieren kann, kann die Authentifizierung stören oder Bedingungen für Ticket-Replay schaffen. Stellen Sie sicher, dass Ihr PDC-Emulator mit einer vertrauenswürdigen externen Zeitquelle synchronisiert und alle anderen DCs der Domänenhierarchie folgen – lassen Sie DCs niemals eigenständig mit beliebigen NTP-Servern im Internet synchronisieren.
# Auf dem PDC-Emulator
w32tm /config /manualpeerlist:"time.windows.com,0x8 pool.ntp.org,0x8" /syncfromflags:manual /reliable:yes /update
Restart-Service w32time
# Überprüfen
w32tm /query /status
w32tm /query /sourceUnnötige Rollen und Features deaktivieren
Prüfen Sie jeden DC mit Get-WindowsFeature und entfernen Sie alles, was über AD DS, DNS und die erforderlichen Verwaltungstools hinausgeht. Typische Kandidaten: IIS als Überbleibsel einer alten CA-Installation, Telnet-Client, SMB1 und ungenutzte Dateifreigaberollen.
Get-WindowsFeature | Where-Object Installed -eq $true | Select-Object Name, InstallState
Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol -NoRestartZusammenfassung der Überprüfung
# Schneller Gesundheitscheck der DC-Härtung
Get-ADDomainController -Filter * | ForEach-Object {
$dc = $_.HostName
[PSCustomObject]@{
DC = $dc
SpoolerRunning = (Get-Service -ComputerName $dc -Name Spooler).Status
SMB1Enabled = (Get-SmbServerConfiguration -CimSession $dc).EnableSMB1Protocol
TimeSource = (w32tm /query /source /computer:$dc)
}
}Was dabei kaputtgeht
- Verwaltungstools, die sich direkt per RDP auf DCs verbinden. Manche Backup-, Monitoring- oder Patch-Agenten setzen interaktives RDP oder uneingeschränkte lokale Anmeldung voraus. Stellen Sie diese auf Dienstkonten mit explizit delegierten Rechten um oder wechseln Sie zu agentenbasierter Verwaltung, die keine interaktiven Anmelderechte benötigt.
- Legacy-Tools mit Druckabhängigkeit, die (fälschlicherweise) einen DC als Ausweich-Druckserver nutzten.
- Monitoring-Agenten von Drittanbietern, die direkt vom DC aus ins Internet kommunizieren; sie müssen über einen genehmigten Proxy geleitet oder vom System entfernt werden.
- Integrationen im Umfeld von NTLM-Relay, die auf unsigniertes LDAP oder nicht EPA-fähige AD-CS-Registrierung angewiesen waren; sie müssen Signierung/Channel Binding unterstützen, bevor Sie dies domänenweit erzwingen.
Kombinieren Sie diese Härtung mit den Maßnahmen aus Kerberos-Härtung und Objekt- & ACL-Sicherheit – ein gehärtetes DC-Betriebssystem ist nur die halbe Miete, wenn ACLs und Kerberos-Konfiguration des Verzeichnisses weiterhin zu freizügig sind.
Häufige Fragen
Sollte der Druckwarteschlangendienst (Print Spooler) auf allen Domänencontrollern deaktiviert werden?
Ja, es sei denn, ein DC fungiert tatsächlich als Druckserver – was er nicht sollte. Das Deaktivieren des Spooler-Dienstes beseitigt die Angriffsfläche von PrintNightmare (CVE-2021-34527) und der Point-and-Print-Treiberinstallation vollständig und ist eine Standardempfehlung von Microsoft und CIS für DCs.
Können Administratoren nach dieser Härtung noch per RDP auf Domänencontroller zugreifen?
Nur Konten, denen das Recht „Allow log on through Remote Desktop Services“ ausdrücklich zugewiesen wurde – und das sollte auf eine kleine Tier-0-Admin-Gruppe beschränkt sein. Alle anderen verwalten DCs über Windows Admin Center, PowerShell-Remoting von einer Privileged Access Workstation oder über Just-Enough-Administration-Endpunkte statt über interaktives RDP.
Warum muss der ausgehende Internetzugriff von Domänencontrollern blockiert werden?
DCs halten das Anmeldematerial der Domäne und haben keinen legitimen Grund, im Web zu surfen oder beliebige Internethosts zu erreichen. Das Blockieren ausgehender Verbindungen (außer zu erforderlichen Microsoft-Update- oder Zeitquellen) schließt einen gängigen Pfad für Command-and-Control und Datenabfluss, sobald ein DC kompromittiert ist.
Domänencontroller härten: die DC-Baseline