ntp – richtig konfiguriert

NTP-Konfiguration

Zu “NTP” gibt es zwei verschiedene Bedeutungen. Zum einen ist es das [Network Time Protocol][NTP] beschrieben in verschiedenen RFCs (aktuell NTPv4 in [RFC5905][RFC]). Zum andern wird damit die Software für die Referenzimplementation bezeichnet. Lange Zeit wurde fast ausschliesslich diese Referenzimplementation genutzt. Unterdessen gibt es Alternativen, die vermehrt eingesetzt werden. Die hier vorliegende Beschreibung zur NTP-Konfiguration bezieht sich nur auf die Referenzimplementation.

[NTP] https://en.wikipedia.org/wiki/Network_Time_Protocol

[RFC] https://www.rfc-editor.ord/rfc/rcf5905

Beispiel-Konfiguation Client

Der ntp-Daemon ist gleichzeitig Client und Server. Der Unterschied ergibt sich aus der Konfiguration. Für die Sicherheit sind die restrict Zeilen und für gutes Funktionieren die server und pool Zeilen am wichtigsten. Für einen Client eignet sich folgende Konfiguration.


    driftfile /var/lib/ntp/ntp.drift
    server time.ethz.ch
    server time1.ethz.ch
    server time2.ethz.ch
    pool 0.ch.pool.ntp.org
    pool 1.ch.pool.ntp.org
    pool 2.ch.pool.ntp.org
    restrict -4 default kod notrap nomodify nopeer noquery limited
    restrict -6 default kod notrap nomodify nopeer noquery limited
    restrict 127.0.0.1
    restrict ::1
    restrict source notrap nomodify noquery

Hinweise zur Konfiguration

Die detailierten Erklärungen findet man in der Manual-Page von ntp.conf . Hier kurz die wichtigsten Stichworte:

  • driftfile: hilft beim Kompensieren des eingebauten Taktgebers
  • server und pool definieren die zu kontaktierenden ntp-Server
  • restrict schränkt Zugriffsrechte aus dem Netzwerk ein und erlaubt ohne weitere Parameter alle Verbindungen

In einigen Fällen wurde restrict falsch konfiguriert, was zu einem schlechten Ruf für ntp führte. In der Grundeinstellung erlaubt ntp alle Netzwerkverbindungen um so eine einfache Zusammenarbeit zwischen ntp-Servern zu ermöglichen. Es wurde erwartet, dass die Systemadministratoren sich intensiv um eine angemessene Konfiguration kümmern, bevor sie einen Host mit dem Internet verbinden. Modernere Implementation des NTP-Protokolls sind in der Grundeinstellung oft eingeschränkt.

In der vorgeschlagenen Konfiguration schränken wir mit default die Zugriffe stark ein um sie gezielt nur für localhost (d.h. 127.0.0.1 und ::1) wieder voll zu öffnen.

Bei server und pool soll beachtet werden, dass zusammen die Zeit mit drei oder mehr Servern abgeglichen wird. Dadurch wird ein Mehrheitsentscheid möglich, falls die Verbindung zu einzelnen Hosts unzuverlässig wird.

(gilt für RHEL6, RHEL7, Debian, Ubuntu etc.)