29.11. Die Uhrzeit mit NTP synchronisieren

Die interne Uhrzeit eines Computers ist nie ganz exakt. Dies ist problematisch, da viele Dienste darauf angewiesen sind, dass die Computer im Netzwerk die exakte Uhrzeit übermitteln. Die exakte Uhrzeit ist auch erforderlich um sicherzustellen, dass die Zeitstempel der Dateien konsistent bleiben. Das Network Time Protocol (NTP) bietet die Möglichkeit, die exakte Uhrzeit in einem Netzwerk zur Verfügung zu stellen.

Mit ntpd(8) enthält FreeBSD ein Werkzeug, das andere NTP-Server abfragen kann um die Uhrzeit auf diesem Computer zu synchronisieren, oder um selbst die Uhrzeit für andere Computer im Netzwerk bereitzustellen. Die Server, die abgefragt werden, können lokal oder von einem ISP zur Verfügung gestellt werden. Darüber hinaus gibt es eine Liste von öffentlich zugänglichen NTP-Servern. Falls Sie sich für einen solchen öffentlichen Server entscheiden, wählen Sie einen nahegelegenen Server und prüfen Sie die Nutzungsbedingungen.

Die Auswahl von mehreren NTP-Servern wird empfohlen, falls sich ein Server nicht erreichbar ist oder sich als unzuverlässig herausstellt. ntpd verwendet die Antworten anderer Server, um zuverlässige Server zu bestimmen, die dann bevorzugt abgefragt werden.

Dieser Abschnitt beschreibt die Konfiguration von ntpd unter FreeBSD. Zusätzliche Dokumentation im HTML-Format finden Sie in /usr/share/doc/ntp/.

29.11.1. NTP konfigurieren

Wenn Sie die Uhrzeit nur beim Systemstart synchronisieren wollen, benutzen Sie ntpdate(8). Für Desktoprechner, die regelmäßig neu gestartet werden und keine ständige Synchronisation benötigen, ist dies akzeptabel. In allen anderen Fällen sollten Sie jedoch ntpd verwenden.

Die Ausführung von ntpdate während des Systemstarts ist aber auch für Rechner, die ntpd(8) verwenden, sinnvoll. ntpd(8) passt die Systemzeit nur bei größeren Abweichungen an, während ntpdate(8) die Zeit immer synchronisiert, egal wie groß die Differenz zwischen Systemzeit und korrekter Zeit ist.

Um ntpdate beim Systemstart zu aktivieren, fügen Sie den Eintrag ntpdate_enable="YES" in /etc/rc.conf ein. Um auch ntpd zu aktivieren, fügen Sie den Eintrag ntpd_enable="YES" ein. Zusätzliche Variablen können ebenfalls in /etc/rc.conf gesetzt werden. Weitere Details finden Sie in rc.conf(5), ntpdate(8) und ntpd(8).

Beide Programme lesen /etc/ntp.conf um herauszufinden, welche Server abgefragt werden müssen. Hier ist ein einfaches Beispiel einer /etc/ntp.conf:

Beispiel 29.5. Beispiel einer /etc/ntp.conf
server ntplocal.example.com prefer
server timeserver.example.org
server ntp2a.example.net

driftfile /var/db/ntp.drift

Das Format dieser Datei wird in ntp.conf(5) beschrieben. Die Option server legt die zu verwendenden Server fest, wobei jeder Server in einer eigenen Zeile steht. Wenn ein Server mit der Option prefer versehen ist, wird dieser Server bevorzugt verwendet. Eine Antwort von einem bevorzugten Server wird verworfen, wenn sie signifikant von anderen Antworten abweicht, ansonsten wird sie akzeptiert. Die Option prefer sollte nur für sehr zuverlässige und genaue NTP-Server verwendet werden, die über eine spezielle Hardware zur Zeitüberwachung verfügen.

Die Option driftfile legt fest, in welcher Datei die Abweichungen der Systemuhr protokolliert werden. ntpd verwendet diese Datei, um die Systemzeit automatisch anzupassen, selbst wenn kurzzeitig kein NTP-Server zur Synchronisation verfügbar ist. Weiterhin werden in dieser Datei Informationen über frühere Anworten von NTP-Server. Da diese Datei interne Informationen für NTP enthält, sollte sie nicht verändert werden.

In der Voreinstellung ist der NTP-Server für alle Rechner im Netzwerk erreichbar. Die Option restrict in /etc/ntp.conf steuert, welche Rechner auf den Server zugreifen können. Wenn Sie beispielsweise alle Rechner vom Zugriff auf den NTP-Server ausschließen wollen, fügen Sie folgende Zeile in /etc/ntp.conf ein:

restrict default ignore

Anmerkung:

Dieser Eintrag verhindert auch den Zugriff von anderen NTP-Servern. Besteht die Notwendigkeit, sich mit einem externen NTP-Server zu synchronisieren, muss dieser Server explizit zugelassen werden. Weitere Informationen finden Sie in ntp.conf(5).

Wenn Sie nur Rechnern innerhalb des Netzwerks die Synchronisation mit dem Server erlauben, gleichzeitig aber verhindern wollen, dass diese den Server konfigurieren oder als Server für andere Rechner dienen können, fügen Sie folgende Zeile ein:

restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap

192.168.1.0 ist die lokale Adresse des Netzwerks, 255.255.255.0 ist die Netzmaske des Netzwerks.

Es werden mehrere restict-Einträge untstützt. Weitere Details finden Sie im Abschnitt Access Control Support von ntp.conf(5).

Sobald ntpd_enable="YES" in /etc/rc.conf hinzugefügt wurde, kann ntpd direkt gestartet werden:

# service ntpd start

29.11.2. NTP mit einer PPP-Verbindung verwenden

ntpd benötigt keine ständige Internetverbindung. Wenn Sie sich über eine PPP-Verbindung ins Internet einwählen, sollten Sie verhindern, dass NTP-Verkehr eine Verbindung aufbauen oder aufrechterhalten kann. Dies kann in den filter-Direktiven von /etc/ppp/ppp.conf festgelegt werden. Ein Beispiel:

set filter dial 0 deny udp src eq 123
# Prevent NTP traffic from initiating dial out
set filter dial 1 permit 0 0
set filter alive 0 deny udp src eq 123
# Prevent incoming NTP traffic from keeping the connection open
set filter alive 1 deny udp dst eq 123
# Prevent outgoing NTP traffic from keeping the connection open
set filter alive 2 permit 0/0 0/0

Weitere Informationen finden Sie im Abschnitt PACKET FILTERING von ppp(8) sowie in den Beispielen unter /usr/share/examples/ppp/.

Anmerkung:

Einige Internetprovider blockieren Ports mit niedrigen Nummern. In solchen Fällen funktioniert NTP leider nicht, da Antworten eines NTP-Servers den Rechner nicht erreichen werden.

Wenn Sie Fragen zu FreeBSD haben, schicken Sie eine E-Mail an <de-bsd-questions@de.FreeBSD.org>.

Wenn Sie Fragen zu dieser Dokumentation haben, schicken Sie eine E-Mail an <de-bsd-translators@de.FreeBSD.org>.