Zeitsynchronisierung mit NTP

Inhaltsverzeichnis

25.1. Konfigurieren eines NTP-Client mit YaST
25.2. Manuelle Konfiguration von ntp im Netzwerk
25.3. Dynamische Zeitsynchronisierung während der Laufzeit
25.4. Einrichten einer lokalen Referenzuhr

Zusammenfassung

Der NTP-(Network Time Protocol-)Mechanismus ist ein Protokoll für die Synchronisierung der Systemzeit über das Netzwerk. Erstens kann ein Computer die Zeit von einem Server abrufen, der als zuverlässige Zeitquelle gilt. Zweitens kann ein Computer selbst für andere Computer im Netzwerk als Zeitquelle fungieren. Zwei Ziele sollen erreicht werden: die absolute Zeit beizubehalten und die Systemzeit aller Computer im Netzwerk zu synchronisieren.

Das Aufrechterhalten der genauen Systemzeit ist in vielen Situationen wichtig. Die integrierte Hardware-Uhr (BIOS-Uhr) erfüllt häufig nicht die Anforderungen bestimmter Anwendungen, beispielsweise Datenbanken oder Cluster. Die manuelle Korrektur der Systemzeit würde schwerwiegende Probleme nach sich ziehen; das Zurückstellen kann beispielsweise zu Fehlfunktionen wichtiger Anwendungen führen. Die Systemzeiten der in einem Netzwerk zusammengeschlossenen Computer müssen in der Regel synchronisiert werden. Es empfiehlt sich aber nicht, die Zeiten manuell anzugleichen. Vielmehr sollten Sie dazu NTP verwenden. Der NTP-Dienst passt die Systemzeit ständig anhand zuverlässiger Zeitserver im Netzwerk an. Zudem ermöglicht er die Verwaltung lokaler Referenzuhren, beispielsweise funkgesteuerter Uhren.

Konfigurieren eines NTP-Client mit YaST

Der NTP-Daemon (ntpd) im ntp-Paket ist so voreingestellt, dass die Uhr des lokalen Computers als Zeitreferenz verwendet wird. Das Verwenden der (BIOS-) Uhr ist jedoch nur eine Ausweichlösung, wenn keine genauere Zeitquelle verfügbar ist. YaST erleichtert die Konfiguration von NTP-Clients.

Grundlegende Konfiguration

Die NTP-Client-Konfiguration mit YaST (Netzwerkdienste+NTP-Konfiguration) benötigt zwei Dialogfelder. Legen Sie den Startmodus ntpd und den abzufragenden Server auf dem Karteireiter Allgemein Einstellungen fest.

Abbildung 25.1. Erweiterte NTP-Konfiguration: Allgemeine Einstellungen

Erweiterte NTP-Konfiguration: Allgemeine Einstellungen

Nur manuell

Wählen Sie Nur manuell, wenn Sie alle Einstellungen selbst konfigurieren möchten.

Ohne Daemon synchronisieren

Auf Laptops und anderen Computern, die automatisch angehalten werden, wählen Sie Ohne Daemon synchronisieren. In diesem Modus startet YaST nicht ntpd auf dem lokalen Computer zum Synchronisieren. Stattdessen erstellt YaST einen crontab-Eintrag (/etc/cron.d/novell.ntp-synchronize), mit dem die Zeit gemäß dem Feld Intervall der Synchronisation in Minuten mit dem Zeitserver verglichen wird. Weitere Informationen zu cron finden Sie unter Abschnitt 18.1.2, „Das cron-Paket“.

Jetzt und beim Booten

Wählen Sie Jetzt und beim Booten, um ntpd automatisch beim Booten des Systems zu starten. Eine Option aus 0.opensuse.pool.ntp.org, 1.opensuse.pool.ntp.org, 2.opensuse.pool.ntp.org und 3.opensuse.pool.ntp.org ist vorab ausgewählt.

Ändern der Basiskonfiguration

Die Server und anderen Zeitquellen für die Abfrage durch den Client sind im unteren Bereich im Karteireiter Allgemeine Einstellungen aufgelistet. Bearbeiten Sie diese Liste nach Bedarf mithilfe der Optionen Hinzufügen, Bearbeiten und Löschen. Mit Protokoll anzeigen können die Protokolldateien Ihres Clients angezeigt werden.

Klicken Sie auf Hinzufügen, um eine neue Quelle für Zeitinformationen hinzuzufügen. Wählen Sie im nachfolgenden Dialogfeld den Quellentyp aus, mit dem die Zeitsynchronisierung vorgenommen werden soll. Mit den zur Verfügung stehenden Optionen können Sie

Abbildung 25.2. YaST: NTP-Server

YaST: NTP-Server

Server

Geben Sie in der Pulldown-Liste unter Auswählen (siehe Abbildung 25.2, „YaST: NTP-Server“) an, ob die Zeitsynchronisierung anhand eines Zeitservers in Ihrem lokalen Netzwerk (Lokaler NTP-Server) oder eines Zeitservers im Internet erfolgen soll, der Ihre Zeitzone verwaltet (Öffentlicher NTP-Server). Bei einem lokalen Zeitserver klicken Sie auf Lookup, um eine SLP-Abfrage für verfügbare Zeitserver in Ihrem Netzwerk zu starten. Wählen Sie den am besten geeigneten Zeitserver in der Liste der Suchergebnisse aus und schließen Sie das Dialogfeld mit OK. Bei einem öffentlichen Zeitserver wählen Sie in der Liste unter Öffentlicher NTP-Server Ihr Land (Ihre Zeitzone) sowie einen geeigneten Server aus und schließen das Dialogfeld dann mit OK. Überprüfen Sie im Hauptdialogfeld die Verfügbarkeit des ausgewählten Servers mit Test.

Ein weiteres Dialogfeld ermöglicht Ihnen, einen NTP-Server auszuwählen. Aktivieren Sie Für initiale Synchronisierung verwenden, um die Synchronisierung der Zeitinformationen zwischen dem Server und dem Client auszulösen, wenn das System gebootet wird. Unter Optionen können Sie weitere Optionen für ntpd einstellen.

Mit den Access Control Options (Zugriffskontrolloptionen) können Sie die Aktionen einschränken, die der entfernte Computer mit dem Daemon Ihres Computers ausführen kann. Dieses Feld ist nur aktiviert, wenn die Option Restrict NTP Service to Configured Servers Only (NTP-Dienst auf konfigurierte Server beschränken) auf dem Karteireiter Sicherheitseinstellungen aktiviert ist (siehe Abbildung 25.3, „Erweiterte NTP-Konfiguration: Sicherheitseinstellungen“). Die Optionen entsprechen den restrict-Klauseln der Datei /etc/ntp.conf. Die Klausel nomodify notrap noquery verhindert beispielsweise, dass der Server die NTP-Einstellungen Ihres Computers ändern und die Trap-Funktion (eine Fernprotokollierungsfunktion für Ereignisse) Ihres NTP-Daemons verwenden kann. Diese Einschränkungen werden besonders für Server außerhalb Ihrer Kontrolle empfohlen (z. B. im Internet).

Ziehen Sie bezüglich detaillierter Informationen /usr/share/doc/packages/ntp-doc zurate (Bestandteil des ntp-doc-Pakets).

Peer

Ein Peer ist ein Computer, mit dem eine symmetrische Beziehung eingerichtet wird: Er fungiert sowohl als Zeitserver als auch als Client. Wenn Sie einen Peer im selben Netzwerk anstelle eines Servers verwenden möchten, geben Sie die Adresse des Systems ein. Der Rest des Dialogfelds ist mit dem Dialogfeld Server identisch.

Funkuhr

Wenn eine Funkuhr für die Zeitsynchronisierung in Ihrem System verwendet werden soll, geben Sie Uhrtyp, Gerätezahl, Gerätename und weitere Optionen in diesem Dialogfeld ein. Klicken Sie auf Treiber-Kalibirierung, um den Treiber genauer einzustellen. Detaillierte Informationen zum Betrieb einer lokalen Funkuhr finden Sie in /usr/share/doc/packages/ntp-doc/refclock.html.

Ausgangs-Broadcast

Zeitinformationen und Abfragen können im Netzwerk auch per Broadcast übermittelt werden. Geben Sie in diesem Dialogfeld die Adresse ein, an die Broadcasts gesendet werden sollen. Die Option für Broadcasts sollte nur aktiviert werden, wenn Ihnen eine zuverlässige Zeitquelle, etwa eine funkgesteuerte Uhr, zur Verfügung steht.

Eingangs-Broadcast

Wenn Ihr Client die entsprechenden Informationen per Broadcast erhalten soll, geben Sie in diesen Feldern die Adresse ein, von der die jeweiligen Pakete akzeptiert werden sollen.

Abbildung 25.3. Erweiterte NTP-Konfiguration: Sicherheitseinstellungen

Erweiterte NTP-Konfiguration: Sicherheitseinstellungen

Legen Sie auf dem Karteireiter Sicherheitseinstellungen (siehe Abbildung 25.3, „Erweiterte NTP-Konfiguration: Sicherheitseinstellungen“) fest, ob ntpd in einem "Chroot Jail" gestartet werden soll. Standardmäßig ist DHCP-Daemon in Chroot-Jail starten aktiviert. Hierdurch wird die Sicherheit im Falle eines Angriffs über ntpd erhöht, da der Angreifer daran gehindert wird, das gesamte System zu beeinträchtigen.

Die Option NTP-Dienst auf konfigurierte Server beschränken erhöht die Sicherheit Ihres Systems. Wenn gewählt, verhindert diese Option, dass entfernte Computer die NTP-Einstellungen Ihres Computers anzeigen und ändern und die Trap-Funktion für die Fernprotokollierung von Ereignissen verwenden können. Wenn gewählt, gelten diese Einschränkungen für alle entfernten Computer, es sei denn, Sie überschreiben die Zugriffskontrolloptionen für einzelne Computer in der Liste der Zeitquellen auf dem Karteireiter Allgemeine Einstellungen. Allen anderen entfernten Computern wird nur die Abfrage der lokalen Zeit erlaubt.

Aktivieren Sie Firewall-Port öffnen, wenn SuSEfirewall2 aktiviert ist (Standardeinstellung). Wenn Sie den Port geschlossen lassen, können Sie keine Verbindung zum Zeitserver herstellen.

Manuelle Konfiguration von ntp im Netzwerk

Die einfachste Art der Verwendung eines Zeitservers im Netzwerk besteht darin, Serverparameter festzulegen. Beispiel: Wenn der Zeitserver ntp.example.com über das Netzwerk erreichbar ist, fügen Sie seinen Namen in die Datei /etc/ntp.conf ein, indem Sie folgende Zeile einfügen.

server ntp.example.com

Wenn Sie weitere Zeitserver hinzufügen möchten, fügen Sie zusätzliche Zeilen mit dem Schlüsselwort server ein. Nach der Initialisierung von ntpd mit dem Kommando rcntp start dauert es etwa eine Stunde, bis die Zeit stabil ist und die Drift-Datei für das Korrigieren der lokalen Computeruhr erstellt wird. Mithilfe der Drift-Datei kann der systematische Fehler der Hardware-Uhr berechnet werden, sobald der Computer eingeschaltet wird. Die Korrektur kommt umgehend zum Einsatz und führt zu einer größeren Stabilität der Systemzeit.

Es gibt zwei Möglichkeiten, den NTP-Mechanismus als Client zu verwenden: Erstens kann der Client in regelmäßigen Abständen die Zeit von einem bekannten Server abfragen. Wenn viele Clients vorhanden sind, kann dies zu einer starken Auslastung des Servers führen. Zweitens kann der Client auf NTP-Broadcasts warten, die von Broadcast-Zeitservern im Netzwerk gesendet werden. Dieser Ansatz hat den Nachteil, dass die Qualität des Servers unbekannt ist und dass ein Server, der falsche Informationen sendet, zu schwerwiegenden Problemen führen kann.

Wenn die Zeit per Broadcast ermittelt wird, ist der Servername nicht erforderlich. Geben Sie in diesem Fall die Zeile broadcastclient in die Konfigurationsdatei /etc/ntp.conf ein. Wenn ein oder mehrere bekannte Zeitserver exklusiv verwendet werden sollen, geben Sie die Namen in der Zeile ein, die mit servers beginnt.

Dynamische Zeitsynchronisierung während der Laufzeit

Wenn das System ohne Netzwerkverbindung startet, fährt ntpd zwar hoch, kann jedoch nicht die DNS-Namen der in der Konfigurationsdatei festgelegten Zeitserver auflösen. Dies kann vorkommen, wenn Sie Network Manager mit einem verschlüsselten WLAN verwenden.

Wenn ntpd die DNS-Namen während der Laufzeit auflösen soll, müssen Sie die Option Dynamisch festlegen. Wenn das Netzwerk dann einige Zeit nach dem Start aufgebaut wird, überprüft ntpd die Namen erneut und kann die Zeitserver zum Abrufen der Zeit erreichen.

Bearbeiten Sie /etc/ntp.conf manuell und fügen Sie Dynamisch zu einem oder mehreren Servereinträgen hinzu:

server ntp.example.com dynamic

Oder verwenden Sie YaST und gehen Sie folgendermaßen vor:

  1. Klicken Sie in YaST auf Netzwerkdienste+NTP-Konfiguration.

  2. Wählen Sie den Server aus, der konfiguriert werden soll. Klicken Sie anschließend auf Bearbeiten.

  3. Aktivieren Sie das Feld Optionen und fügen Sie Dynamisch hinzu. Verwenden Sie ein Leerzeichen zum Trennen, falls bereits andere Optionen eingetragen sind.

  4. Klicken Sie auf OK, um das Dialogfeld für die Bearbeitung zu schließen. Wiederholen Sie den vorherigen Schritt, um alle Server wunschgemäß zu ändern.

  5. Klicken Sie abschließend auf OK, um die Einstellungen zu speichern.

Einrichten einer lokalen Referenzuhr

Das Software-Paket ntp enthält Treiber für das Verbinden lokaler Referenzuhren. Eine Liste unterstützter Uhren steht im Paket ntp-doc in der Datei /usr/share/doc/packages/ntp-doc/refclock.html zur Verfügung. Jeder Treiber ist mit einer Nummer verknüpft. In ntp wird die eigentliche Konfiguration mit Pseudo-IP-Adressen durchgeführt. Die Uhren werden so in die Datei /etc/ntp.conf eingegeben, als ob sie im Netzwerk vorhanden wären. Zu diesem Zweck werden Ihnen spezielle IP-Adressen im Format 127.127.t.u zugewiesen. Hierbei steht t für den Uhrentyp und legt fest, welcher Treiber verwendet wird und u steht für die Einheit (unit), die die verwendete Schnittstelle bestimmt.

Im Regelfall verfügen die einzelnen Treiber über spezielle Parameter, die die Konfigurationsdetails beschreiben. Die Datei /usr/share/doc/packages/ntp-doc/drivers/driverNN.html (NN steht für die Anzahl der Treiber) bietet Informationen zum jeweiligen Uhrentyp. Für die Uhr vom "Typ 8" (Funkuhr über serielle Schnittstelle) ist ein zusätzlicher Modus erforderlich, der die Uhr genauer angibt. Das Conrad DCF77-Empfängermodul weist beispielsweise Modus 5 auf. Wenn diese Uhr als bevorzugte Referenz verwendet werden soll, geben Sie das Schlüsselwort prefer an. Die vollständige server-Zeile für ein Conrad DCF77-Empfängermodul sieht folgendermaßen aus:

server 127.127.8.0 mode 5 prefer

Für andere Uhren gilt dasselbe Schema. Nach der Installation des Pakets ntp-doc steht die Dokumentation für ntp im Verzeichnis /usr/share/doc/packages/ntp-doc zur Verfügung. Die Datei /usr/share/doc/packages/ntp-doc/refclock.html enthält Links zu den Treiberseiten, auf denen die Treiberparameter beschrieben werden.