Netzwerkzeit

Permalink

Nach einigen Monaten im Betrieb viel mir auf das die Uhr meines Server etwas vor ging. Daher habe ich mich mal mit dem Thema der Zeitsynchronisierung beschäftigt.

Genau zu diesem Zweck gibt es das Network Time Protokoll, kurz NTP. Damit ist es möglich direkt von einer angeschlossenen Uhr oder indirekt von einem Server die Zeit zu erfragen.

Unter Linux gibt es üblicherweise zwei Wege das NTP zu nutzen: Ein einfacher Client namens ntpdate ermöglicht auf einfache Weise einen Zeitservern abzufragen und die Systemzeit danach zu setzen. Etwas umfangreicher ist der Daemon ntpd. Dieser dient gleichzeitig als Server und Client.

In diesem Fall habe ich mich für die umfangreichere Lösung entschieden. Dadurch kann ich nicht nur den Server “up-to-date” halten sondern auch diese Zeit weiterreichen. Im optimalen Fall sind so alle Computer im Netzwerk auf der selben Zeit.

Installation

Die Installation unter Debian ist ganz einfach:

aptitude install ntp ntpdate

Das Paket ntp enthält den eigentlichen Daemon und Verwaltungstools. Der NTP-Client aus dem Paket ntpdate dient nur zum anfänglichen Stellen der Zeit:

ntpdate -b 1.de.pool.ntp.org

Mit diesem Befehl wird ein Serverpool mit deutschen Servern als Zeitquelle genutzt. Diesen und weitere Pools mit öffentlichen NTP-Servern werden auf www.pool.ntp.org bereitgestellt. Wer möchte darf hier auch selbst Server beisteuern.

Die anfängliche Synchronisierung ist nötig da der ntpd nur dann seine Arbeit machen möchte wenn ein Mindestmaß an korrekter Zeit vorliegt. Wer also mag kann die Uhr seines Computers auch von Hand stellen bevor ntpd seine Arbeit aufnimmt..

Abschließend startet man den NTP-Server noch mittels…

/etc/init.d/ntp start

Grundkonfiguration

Die Konfiguration des ntpd befinden sich in der Datei /etc/ntp.conf.

Die Standarteinstellungen von Debian für den ntpd sind in meinen Augen wirklich brauchbar. Ich habe lediglich die voreingestellten Zeitserver gegen vier Pools mit Servern aus Deutschland ausgetauscht.

Zugriffssteuerung

Wer sich den unteren Teil der Konfigurationsdatei ansieht findet einige Einträge mit dem Schlüsselword restrict. Mit diesen wird festgelegt wer wie auf den ntpd zugreifen darf.

Auf das Schlüsselwort folgt der zu berechtigende Client. Das kann entweder eine IP-Adresse, ein ganzes Netzwerk (mit Netzwerkmaske) oder ein DNS-Host-Name. Wer die Standardeinstellungen ändern will kann hier statt der genanten Dinge auch Default angeben.

Als nächstes folgt eine Liste von Berechtigungen oder Verweigerungen:

  1. ignore:
    Hiermit werden alle Zugriffe unterbunden.
  2. nomodify:
    Diese Anweisung verhindert das mittels der Verwaltungstools ntpq und ntpdc Änderungen an der Konfiguration vorgenommen werden.
  3. noquery:
    Im Gegensatz zu nomodify verhindert diese Anweisung das Abfragen von Informationen über den ntpd. Der eigentliche Zeitservice ist davon aber nicht betroffen.
  4. noserve
    Hierdurch werden alle Netzwerkpakete abgewiesen. Einzige Ausnahme sind Verbindungen durch die Verwaltungstools ntpq und ntpdc initiiert werden.

Diese Möglichkeiten sind nur eine Auswahl. Weitere Schlüsselwörter sind in der Dokumentation aufgeführt.

Für den Betrieb im lokalen Netzwerk sind die hier vorgestellten Möglichkeiten mehr als ausreichend. Mein Server geht jetzt jedenfalls auf die Sekunde genau.