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.
FreeBSD enthält ntpd(8), 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.
Dieser Abschnitt beschreibt die Konfiguration von
ntpd unter FreeBSD. Zusätzliche
Dokumentation im HTML-Format finden Sie in
/usr/share/doc/ntp/
.
FreeBSD enthält mit ntpd ein
Werkzeug, das zur Synchronisation der Uhrzeit verwendet werden
kann. Die Konfiguration von Ntpd
erfolgt über Variablen in rc.conf(5) und
/etc/ntp.conf
, und wird in den folgenden
Abschnitten beschrieben.
Ntpd kommuniziert über UDP mit mit seinen Peers. Sämtliche Firewalls zwischen Ihrem Rechner und seinen NTP-Peers müssen so konfiguriert sein, dass UDP-Pakete auf Port 123 ein- und ausgehen können.
Ntpd liest
/etc/ntp.conf
um herauszufinden,
welche NTP-Server abgefragt werden
sollen. Die Auswahl mehrerer NTP-Server
wird empfohlen, falls einer der Server nicht erreichbar ist
oder sich seine Uhr als unzuverlässig erweist. Wenn
ntpd Antworten erhält, bevorzugt
es zuverlässige Server gegenüber weniger zuverlässigen. Die
abgefragten Server können lokal im Netzwerk, von einem
ISP bereitgestellt oder aus einer
Liste
öffentlich zugänglicher NTP-Server
ausgewählt werden. Wenn Sie einen öffentlichen
NTP-Server auswählen, wählen Sie einen
geografisch nahen NTP-Server und
überprüfen Sie dessen Nutzungsrichtlinien. Das
Schlüsselwort pool
wählt einen oder
mehrere Server aus einem Pool von Servern aus. Eine
Liste mit öffentlich zugänglichen
NTP-Pools ist ebenfalls
verfügbar, sortiert nach geografischen Gebieten. Darüber
hinaus bietet FreeBSD einen vom Projekt gespendeten Pool,
0.freebsd.pool.ntp.org
.
/etc/ntp.conf
Dies ist ein einfaches Beispiel für eine
ntp.conf
-Datei. Die Einträge können
so übernommen werden, wie sie sind. Die Datei enthält die
notwendigen Einschränkungen für den Betrieb an einer
öffentlich zugänglichen Netzwerkverbindung.
# Disallow ntpq control/query access. Allow peers to be added only # based on pool and server statements in this file. restrict default limited kod nomodify notrap noquery nopeer restrict source limited kod nomodify notrap noquery # Allow unrestricted access from localhost for queries and control. restrict 127.0.0.1 restrict ::1 # Add a specific server. server ntplocal.example.com iburst # Add FreeBSD pool servers until 3-6 good servers are available. tos minclock 3 maxclock 6 pool 0.freebsd.pool.ntp.org iburst # Use a local leap-seconds file. leapfile "/var/db/ntpd.leap-seconds.list"
Das Format dieser Datei ist in ntp.conf(5) beschrieben. Die folgenden Erläuterungen geben einen Überblick über die Schlüsselwörter, die in dem obigen Beispiel benutzt werden.
In der Voreinstellung ist ein
NTP-Server für jeden Host im Netzwerk
zugänglich. Das Schlüsselwort restrict
steuert, welche Systeme auf den Server zugreifen dürfen.
Es werden mehrere restrict
-Einträge
unterstützt, die jeweils die vorherigen Anweisungen
verfeinern. Die im Beispiel gezeigten Werte gewährem dem
lokalen System vollen Abfrage- und Kontrollzugriff, während
entfernte Systemen nur die Möglichkeit gegeben wird, die
Zeit abzufragen. Weitere Details finden Sie im Abschnitt
Access Control Support
von
ntp.conf(5).
Das Schlüsselwort server
gibt einen
einzelnen Server zur Abfrage der Zeit an. Die Datei kann
das Schlüsselwort server
mehrmals
enthalten, wobei pro Zeile jeweils ein Server aufgeführt
ist. Das Schlüsselwort pool
gibt einen
Pool von Servern an. Ntpd fügt
bei Bedarf einen oder mehrere Server aus diesem Pool hinzu,
um die Anzahl der mit dem Wert
tos minclock
Peers zu erreichen. Das
Schlüsselwort iburst
weist
ntpd an, einen Burst von acht
schnellen Paketen mit dem Server auszutauschen, wenn der
Kontakt zum ersten Mal hergestellt wird, um so die
Systemzeit schneller zu synchronisieren.
Das Schlüsselwort leapfile
gibt den
Pfad einer Datei an, die Informationen über Schaltsekunden
enthält. Die Datei wird automatisch durch periodic(8)
aktualisiert. Der angegebene Pfad muss mit dem in der
Variable ntp_db_leapfile
aus
/etc/rc.conf
übereinstimmen.
Um ntpd beim Booten zu
starten, Sie in /etc/rc.conf
den Eintrag ntpd_enable="YES"
hinzu.
Danach kann ntpd direkt gestartet
werden:
#
service ntpd start
Lediglich ntpd_enable
wird benötigt
um ntpd benutzen zu können. Die
unten aufgeführten rc.conf
-Variablen
können bei Bedarf ebenfalls verwendet werden.
Ist ntpd_sync_on_start="YES"
konfiguriert, setzt ntpd die
Uhrzeit beim Systemstart, unabhängig davon wie hoch die
Abweichung ist. Normalerweise protokolliert
ntpd eine Fehlermeldung und
beendet sich selbst, wenn die Uhr um mehr als 1000 Sekunden
abweicht. Diese Option ist besonders auf Systemem ohne
batteriegepufferte Echtzeituhr nützlich.
Setzen Sie ntpd_oomprotect="YES"
, um
ntpd-Daemon davor zu schützen,
vom System beendet zu werden, das versucht, sich von einer
Out of Memory (OOM) Situation zu
retten.
Mit ntpd_config=
setzen Sie den Pfad
auf eine alternative
ntp.conf
-Datei.
In ntpd_flags=
können bei Bedarf
weitere Werte enthalten sein. Vermeiden Sie jedoch die
Werte, die intern von
/etc/rc.d/ntpd
verwaltet werden:
-p
(Pfad zur PID-Datei)
-c
(Setzen Sie stattdessen
ntpd_config=
)
In FreeBSD kann Ntpd als nicht
privilegierter Benutzer gestartet und ausgeführt werden.
Dies erfordert das Modul mac_ntpd(4). Das Startskript
/etc/rc.d/ntpd
untersucht zunächst die
NTP Konfiguration. Wenn möglich, lädt es das
mac_ntpd
-Modul und startet dann
ntpd als nicht privilegierten
Benutzer ntpd
(Benutzer-ID 123). Um
Probleme mit dem Datei- und Verzeichniszugriff zu
vermeiden, wird das Startskript
ntpd nicht automatisch als
Benutzer ntpd
starten, falls die
Konfiguration irgendwelche Datei-bezogenen Optionen
enthält.
Falls einer der folgenden Werte in
ntpd_flags
vorhanden ist, muss eine
manuelle Konfiguration vorgenommen werden, damit der Daemon
vom ntpd
-Benutzer ausgeführt werden
kann:
-f oder --driftfile
-i oder --jaildir
-k oder --keyfile
-l oder --logfile
-s oder --statsdir
Wenn einer der folgenden Schlüsselwörter in
ntp.conf
vorhanden ist, muss eine
manuelle Konfiguration vorgenommen werden, damit der Daemon
vom ntpd
-Benutzer ausgeführt werden
kann:
crypto
driftfile
key
logdir
statsdir
Um ntpd so zu konfigurieren,
dass der Daemon als Benutzer ntpd
läuft,
müssen folgende Voraussetzungen erfüllt sein:
Stellen Sie sicher, dass der
ntpd
-Benutzer Zugriff auf alle in
der Konfiguration angegebenen Dateien und
Verzeichnisse hat.
Stellen Sie sicher, dass das Modul
mac_ntpd
in den Kernel geladen oder
kompiliert wird. mac_ntpd(4) enthält weitere
Details.
Setzen Sie ntpd_user="ntpd"
in
/etc/rc.conf
.
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/
.
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>.