Anleitung fürs Active Directory

Workshop - Zeitsynchronisierung in Windows-Netzwerken

30.05.2012 von Thomas Joos
Idealerweise sollten die Uhren von Servern und Clients im Active Directory nicht mehr als fünf Minuten voneinander abweichen, um Authentifizierungsprobleme zu vermeiden. Bei der Zeitsynchronisierung gilt es daher einige Punkte zu beachten, die folgender Praxisbeitrag erläutert.

Alleinstehende Rechner können sich direkt mit einer Zeitquelle im Internet oder einer Funkuhr synchronisieren. Wenn Windows-Rechner in einem Netzwerk zusammenarbeiten, und insbesondere in einem Active Directory, sollte man allerdings im Hinblick auf eine saubere Zeitsynchronisierung einige Punkte beachten, damit beispielsweise Probleme bei der Authentifizierung vermieden werden.

Die Konfiguration des Zeitdienstes in Windows ist nur über die Registry oder das Befehlszeilentool w32tm.exe möglich. Eingeschränkte Möglichkeiten bietet auch net time. Es steht allerdings keine grafische Oberfläche für die Konfiguration zur Verfügung. Wie Sie praktisch bei der Zeitsynchronisation vorgehen, erläutern folgende Abschnitte.

Grundlagen zur Zeitsynchronisierung im Active Directory

In einem Active Directory sollten die Uhren der Rechner und Server nicht mehr als fünf Minuten voneinander abweichen. Da das Active Directory bei der Authentifizierung mit Kerberos arbeitet, ein System das stark auf Tickets, Zeitstempel und damit gültige Uhrzeiten aufbaut, besteht die Gefahr dass Authentifizierungsaufgaben nicht funktionieren, wenn die Uhren einzelner Rechner stärker voneinander abweichen.

Nachhaltigkeit: In den Kerberos-Richtlinien finden Sie die Gruppenrichtlinien für die Gültigkeit von Kerberos-Tickets.

Standardmäßig toleriert Kerberos im Active Directory eine Zeitdifferenz von fünf Minuten. Diese Einstellungen sollten Sie nicht ändern, auch wenn prinzipiell die Möglichkeit besteht. Sie müssen für diese Änderung die Gruppenrichtlinie der entsprechenden Computer anpassen. Navigieren Sie dazu zu Computerkonfiguration\Windows-Einstellungen\Sicherheitseinstellungen\Kontorichtlinien\Kerberos-Richtlinie. Hier finden Sie die verschiedenen Einstellungen für die Gültigkeit der Tickets.

Der PDC-Master im Active Directory

Der PDC-Master einer Active-Directory-Domäne ist der autorisierende Zeitserver der Domäne und für die Uhrzeiten aller anderen Domänencontroller, Mitgliedsserver und Arbeitsstationen in der Gesamtstruktur verantwortlich. Alle Domänencontroller einer Domäne synchronisieren ihre Zeit mit dem PDC-Emulator der eigenen Domäne.

Gleichschaltung: Die Zeitsynchronisierung in komplexeren Active Directory-Umgebungen schematisch dargestellt.

Arbeitsstationen und Mitgliedsserver synchronisieren ihre Zeit wiederum mit einem beliebigen Active Directory-Domänencontroller der Domäne, sobald die Anmeldung am Netzwerk erfolgt. Wenn Sie im Unternehmen eine verschachtelte Struktur mit mehreren Domänen einsetzen, synchronisieren sich die einzelnen PDC-Master der Domänen jeweils mit dem PDC-Master der übergeordneten Domäne.

Der PDC-Master der Stammdomäne ist schließlich der Server, von dem sich alle anderen Server die Zeit holen. Auf diese Weise gibt es keine Schleifen bei der Konfiguration, da die Synchronisierung der Uhrzeit genau festgelegt ist. Hierarchisch geht es vom ersten PDC-Emulator der Gesamtstruktur nach unten zu den anderen PDC-Emulatoren, den Domänencontrollern und schließlich zu den einzelnen Mitgliedsservern und Arbeitsstationen.

Der PDC-Emulator

Beim ersten Domänencontroller einer Gesamtstruktur müssen Sie darauf achten entweder die Zeit mit dem Internet zu synchronisieren oder mit einer Funkuhr. Standardmäßig verwenden PDC-Master die BIOS-Zeit des Rechners, wenn im Netzwerk kein übergeordneter Zeitserver oder PDC-Emulator angegeben ist.

Hier können Sie natürlich von anderen Zeitquellen synchronisieren, neben Internetuhren und Funkuhren etwa auch über kompatible Layer3-Netzwerkswitches. Wichtig ist nur die NTP-Kompatibilität des entsprechenden Gerätes.

PDC-Emulator anzeigen: Sie können kontrollieren, welcher Domänencontroller diese Rolle verwaltet.

Die Rolle des PDC-Emulators gibt es in jeder Active Directory-Domäne ein Mal. Der erste installierte Domänencontroller einer Active-Directory-Domäne bekommt diese Rolle automatisch zugewiesen. Er ist für die Anwendung und Verwaltung der Gruppenrichtlinien zuständig und ist darüber hinaus für Kennwortänderungen bei Benutzern verantwortlich. Der PDC-Emulator steuert die externen Vertrauensstellungen einer Domäne und stellt den Zeitserver der Domäne zur Verfügung.

Wenn Sie überprüfen wollen, welcher Domänencontroller die Rolle des PDC-Emulators in Ihrer Domäne verwaltet, öffnen Sie hierfür das Snap-In Active Directory-Benutzer und -Computer im Server-Manager oder über dsa.msc. Klicken Sie mit der rechten Maustaste auf die Domäne im Snap-In und wählen Sie im Kontextmenü den Eintrag Betriebsmaster aus. Es öffnet sich ein neues Fenster. Klicken Sie auf die Registerkarte PDC.

Sie können sich den aktuellen PDC-Emulator auch mit Hilfe des Befehls dsquery server -hasfsmo pdc in der Befehlszeile anzeigen lassen. Alle FSMO (Flexible Single Master Operations)-Rollen einer Domäne können Sie sich auch mit netdom query fsmo anzeigen lassen.

Das NTP-Protokoll und Befehle zur Zeitsynchronisierung

Windows verwendet für die Synchronisation der Uhren das NTP-Protokoll (Network Time Protocol). Dieses Protokoll kommuniziert über den UDP-Port 123. Die bedeutet, dieser Port muss zwischen allen Clientcomputern und dem entsprechenden Domänencontroller geöffnet sein.

Windows synchronisiert die Zeit beim Starten von Windows und in regelmäßigen Abständen automatisch mit dem Windows Time Service (WTS oder auch W32Time). Sie können auf einer Arbeitsstation oder einem Server einen manuellen Synchronisierungsvorgang auslösen, indem Sie in einer Befehlszeile den Befehl w32tm /resync ausführen.

Der PC oder Server verbindet sich mit seinem Zeitserver und synchronisiert die Uhrzeit. Außer der Option resync stehen für den w32tm-Befehl noch weitere Optionen zur Verfügung. Diese sehen Sie wenn Sie in der Befehlszeile w32tm eingeben. Im TechNet erhalten Sie Informationen zu den einzelnen Optionen. Mit dem Befehl w32tm /query /computer:<Computername> /configuration lassen Sie sich zum Beispiel die aktuelle Konfiguration des Zeitdienstes anzeigen. Mit diesem Tool steuern Sie alle Zeiteinstellungen ab Windows Server 2003.

Achten Sie vor allem auf Domänencontrollern darauf, dass in der Ereignisanzeige unter System, keine Fehlermeldungen der Quelle W32Time stehen. Bei regelmäßigen Fehlern deutet das darauf hin, dass der Domänencontroller Probleme hat die Zeit mit seinem PDC-Emulator zu synchronisieren. Der beste Weg die Zeit des obersten PDC-Emulators aktuell zu halten, ist ein Zeitserver im Internet, zum Beispiel die Zeitserver der technischen Universität in Braunschweig. Diese erreichen Sie über die Servernamen ptbtime1.ptb.de, ptbtime2.ptb.de und ptbtime3.ptb.de. Eine Liste zahlreicher Zeitserver findet sich im Internet oder aber auch in dem Beitrag Alternative Zeitserver für Windows.

Standardmäßig konfigurieren sich Windows-Rechner automatisch mit Domänencontrollern, sobald diese Mitglied einer Domäne sind. Der Client oder Mitgliedsserver verbindet sich dazu mit dem Domänencontroller an dem er sich an der Domäne anmeldet zum Synchronisieren der Zeit. Sie können mit dem Befehl w32tm /config /syncfromflags:domhier /update diese Synchronisierung nachträglich aktivieren wenn diese nicht funktioniert oder Sie diese ausgeschaltet haben. Anschließend müssen Sie auf dem Computer aber den Zeitdienst neu starten. Verwenden Sie dazu zum Beispiel die beiden Befehle:

net stop w32time

net start w32time

Das Windows-Server-Team pflegt für technische Tipps zum Zeitdienst auch einen eigenen Blog.

net time versus w32tm.exe

Alle Zeiteinstellungen auf einem Server oder einem Mitgliedscomputer nehmen Sie mit dem Tool w32tm.exe in der Befehlszeile vor. Zusätzlich können Sie auch noch mit net time in der Befehlszeile verschiedene Aufgaben durchführen.

net time ist allerdings ein komplett unabhängiger Mechanismus zu w32tm.exe und ermöglicht zum Beispiel die Zeitabfrage von Remotecomputern im Netzwerk. Das geht zwar auch mit w32tm.exe, ist aber komplizierter und funktioniert weniger zuverlässig, vor allem wenn Ports geschlossen sind.

Alternative: Sie können net time zur Zeitsynchronisierung verwenden.

net.exe ist ein Tool im System32-Verzeichnis von Windows welches verschiedene Aufgaben im Netzwerk steuert, zum Beispiel auch das Verbinden von Netzlaufwerken (net use * \\<Freigabe>\). Wollen Sie die Uhrzeit eines Servers im Netzwerk anzeigen, verwenden Sie den Befehl net time \\<Servername>. Die Verbindung erfolgt dabei über das RPC-Protokoll nicht mit NTP. Sie können auch die lokale Zeit eines Computers mit der Zeit eines Servers im Netzwerk synchronisieren. Dazu verwenden Sie den Befehl net time \\<Servername> /set /yes. Der Befehl funktioniert auf Grund von Sicherheitsrichtlinien ber nicht von alleinstehenden Servern zu Domänencontrollern. Mit dem Befehl net help time lassen Sie sich eine ausführliche Hilfe zu net time anzeigen.

Rufen Sie in einer Domäne net time ohne Optionen auf, versucht sich der Computer mit einem Domänencontroller zu verbinden um dessen Zeit anzuzeigen. Mit der Option /domain können Sie die entsprechende Domäne angeben, in welcher der Client einen Domänencontroller zur Anzeige suchen soll. Bis Windows Server 2003 können Sie auch mit net time die Zeitsynchronisierung im Netzwerk konfigurieren. Dazu geben Sie auf dem PDC-Emulator der Domäne folgende Befehle ein:

net time /querysntp

net time /setsntp:<Zeitserver im Internet>

net stop w32time

net start w32time

Ab Windows Server 2008 konfigurieren Sie diese Einstellungen entweder mit w32tm.exe oder über Registry-Einstellungen.

Funkuhr versus Internetzeit

Wie wir bereits beschrieben haben, ist der einfachste Weg zur Zeitsynchronisierung die Verwendung einer Uhr im Internet. Das Problem bei dieser Konfiguration ist, dass der Server beim Ausfall der Internetleitung oder der entsprechenden Zeitserver seine Uhrzeit nicht mehr synchronisieren kann. Sie haben in diesem Fall aber die Möglichkeit mit einer lokalen Uhr zu konfigurieren.

Haben Sie aber am PDC-Emulator direkt eine Funkuhr angeschlossen, die dessen BIOS-Zeit automatisch steuert, müssen Sie keine Server mit w32tm.exe hinterlegen. In diesem Fall sollten Sie aber die Registry auf dem PDC-Emulator in einer Weise anpassen, damit der Server so konfiguriert ist seine eigene BIOS-Zeit zu verwenden und keine externen Zeitserver.

Ansonsten erhalten Sie in der Ereignisanzeige des Servers verschiedene Fehler, die darauf hinweisen, dass der Server seine Zeit nicht synchronisieren darf. Durch die folgende Konfiguration legen Sie in der Registry fest, dass der Domänencontroller ein zuverlässiger Zeitserver für alle Computer im Netzwerk ist, da er sich selbst mit einer Funkuhr synchronisiert. Gehen Sie dazu folgendermaßen vor:

1. Öffnen Sie den Registry-Editor und navigieren Sie zu

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config

2. Suchen Sie den Wert AnnounceFlags.

3. Ändern Sie den Wert von AnnounceFlags zu dem Wert A ab.

4. Starten Sie den Zeitdienst auf dem Server neu, zum Beispiel mit dem Befehl

net stop w32time && net start w32time

Konfigurieren eines PDC-Masters für eine externe Zeitquelle

Gehen Sie folgendermaßen vor, um einen Domänencontroller für die Synchronisierung mit einer externen Zeitquelle zu konfigurieren:

1. Öffnen Sie mit regedit den Registry-Editor.

2. Navigieren Sie zu

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters

3. Klicken Sie im rechten Bereich mit der rechten Maustaste auf Type und ändern Sie den Wert von NT5DS auf NTP.

4. Wechseln Sie zu

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config

5. Ändern Sie den Wert AnnounceFlags auf den Wert 5.

6. Navigieren Sie zu

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer

7. Klicken Sie im rechten Bereich mit der rechten Maustaste auf Enabled, und Ändern Sie den Wert auf 1.

8. Wechseln Sie zu

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters

Einrichtung: So konfigurieren Sie die Zeitsynchronisierung.

9. Klicken Sie im rechten Bereich mit der rechten Maustaste auf NtpServer und ändern Sie den Wert auf den gewünschten NTP-Server ab. Tragen Sie am besten eine durch Leerzeichen getrennte Liste ein. Sie müssen ,0x1 an das Ende der einzelnen DNS-Namen anhängen. Tragen Sie ein ,0x2 hinter den Eintrag ein, verwendet Windows diesen Server nur wenn er Server mit dem Eintrag ,0x1 nicht erreichen kann. Klappt nach der Konfiguration die Zeitsynchronisierung nicht, unterstützt der entsprechende Server nicht die Standardkonfiguration von NTP. In diesem Fall tragen Sie ,0x4 nach dem Servernamen ein. Diese Option aktiviert den Symmetric Active Mode. Normalerweise verwendet NTP einen Client/Server-Modus der auch für die meisten Zeitserver funktioniert.

10. Navigieren Sie zu

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient

11. Klicken Sie im rechten Bereich mit der rechten Maustaste auf SpecialPollInterval und ändern Sie den Wert auf Dezimal. Tragen Sie das Intervall in Sekunden ein, in dem sich der Server mit dem Internet synchronisiert. Der von Microsoft empfohlene Dezimalwert ist 900. Dieser Wert konfiguriert den Zeitserver für ein Intervall von 15 Minuten.

12. Geben Sie folgende Kommandos in der Befehlszeile ein

net stop w32time && net start w32time

Synchronisierung überprüfen

Anschließend können Sie in der Ereignisanzeige des Domänencontrollers über System überprüfen ob die Synchronisierung funktioniert. Hier sehen Sie entsprechende Meldung der Quelle Time-Service. Neben den Eintragungen über die Registry können Sie die Einstellungen auch über w32tm.exe vornehmen, zum Beispiel mit folgenden Befehlen:

w32tm /config /manualpeerlist:<Zeitserver> /syncfromflags:manual /reliable:yes /update

net stop w32time

net start w32time

Die Zeitserver trennen Sie durch Leerzeichen voneinander. Die gesamte Liste der Zeitserver tragen Sie in Anführungszeichen ein. Der Befehl hat grundsätzlich die gleichen Auswirkungen wie die Anpassungen in der Registry.

Kontrolle: So lassen Sie sich den Status der letzten erfolgreichen Zeitsynchronisierung anzeigen.

Wenn Sie den Befehl vor der Bearbeitung der Registry ausführen, sehen Sie die erstellten Einträge, zum Beispiel bei den hinterlegten Zeitservern. Die Option reliable definiert den Zeitserver als vertrauenswürdige Zeitquelle. syncfromflags legt fest, dass sich der Server mit einem Zeitserver im Internet (/syncfromflags:manual) oder in der Gesamtstruktur (/syncfromflags:domhier) synchronisieren soll. Mit dem Befehl w32tm /monitor können Sie die Synchronisierung überwachen und die Einstellungen anzeigen.

Den Status der Synchronisierung sehen Sie mit dem Befehl w32tm /query /status. Überprüfen Sie nach der Konfiguration, ob sich der Server problemlos mit dem externen Zeitserver synchronisiert und keine Fehler in der Ereignisanzeige erscheinen. Die verschiedenen Einstellungen, die Sie in der Registry vornehmen können, finden Sie in einem Knowledgebase-Artikel bei Microsoft.

Zeitsynchronisierung bei der Virtualisierung beachten

Wenn Sie Server virtualisieren, müssen Sie bei der Zeitsynchronisierung in der entsprechenden Virtualisierungslösung eventuell ebenfalls Konfigurationen vornehmen. Vor allem, wenn Sie Domänencontroller oder Exchange-Server virtualisieren sind Konfigurationsmaßnahmen notwendig.

Abschalten: Bei virtuellen Servern in Active-Directory-Domänen sollten Sie die Synchronisierung deaktivieren.

Auf jedem virtuellen Computer installiert Hyper-V von Windows Server 2008 oder Windows Server 2008 R2 zum Beispiel automatisch die Integrationsdienste. Dabei handelt es sich um ein Softwarepaket, welches die Leistung virtueller Server deutlich verbessert. Rufen Sie dazu für jeden Server die Einstellungen auf und klicken Sie auf Integrationsdienste. Hier können Sie einstellen, ob sich die virtuellen Server mit dem Host synchronisieren sollen.

Für virtuelle Windows-Server in Active Directory-Domänen sollten Sie diese Synchronisierung deaktivieren, da durch die Zeitsynchronisierung Inkonsistenzen auftreten können. Vor allem bei der Virtualisierung von SharePoint 2010, Exchange oder virtuellen Domänencontrollern liegt in dieser Konfiguration eine häufige Fehlerquelle. (mje)