Hallo,
da Ich mich recht mühsam durch aufgeblasene HowTos kämpfen musste um eine minimale funktionierende Konfiguration für NTPD zu finden, hier ein kleines aber informatives HowTo.
Ausgangssituation und Ziel:
In einem Unix/Linux Netzwerk befinden sich mehrere Rechner. Um sich das genaue Einstellen der Zeit zu ersparen soll das ganze automatisiert werden. Ein Rechner holt sich die genaue Zeit von einem Server und verteilt diese an alle anderen Rechner im Netzwerk
Lösungsmöglichkeit:
Der NTP Daemon ist Client und Server zugleich. Ein Rechner im Netz erfüllt also die Client/Server funktionialität indem er sich die Zeit aus dem Netz holt und diese für alle anderen bereitstellt und die anderen fungieren nur als Clients.
1.) Als erstes wird auf allen Rechnern das NTP Paket von http://www.ntp.org/ installiert. Für (fast?) alle Distributionen gibt es vorgefertigte Packete.
2.) Konfigurieren des "Servers", der die Zeit für alle anderen im Netzwerk zur verfügung stellt. Hierzu wird /etc/npt.conf angepasst. Hier eine Beispielkonfiguration
Code:
driftfile /var/lib/ntp/ntp.drift
logfile /var/log/ntp.log
server 0.de.pool.ntp.org iburst
server 1.de.pool.ntp.org iburst
server 2.de.pool.ntp.org iburst
server ntp1.ptb.de iburst
server ntp2.ptb.de iburst
logfile: Sollte selbsterklärend sein. Ein Extra Logfile dient der besseren Übersicht.
driftfile: Hier wird die errechnete Differenz zwischen der "Laufgeschwindigkeit" der Systemuhr und der Laufgeschwindigkeit der "richtigen" Zeit festgehalten.
server: Hier wird der zu verwendende Zeitserver gegen den synchronisiert werden soll angegeben.
Es werden 3 Server aus dem Pool von ntp.org verwendet und 2 Server der Physikalisch Technischen Bundesanstalt. 5 Server sind ausreichend um ein gutes Ergebnis zu bekommen.
Nun starten wir den ntpd. Nach ca. 1 Minute können wir testen ob Erfolgreich synchronisiert wurde. Zum einen sieht man das im Logfile, aber es lässt sich auch über `ntpq -p` überprüfen. Falls der ntpd korrekt läuft sieht die Ausgabe so aus (ähnlich):
Code:
fms@odin fms (0) $ ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
+binky.tuxfriend 192.53.103.104 2 u 44 128 377 82.603 -0.244 0.714
anton.hin.de .INIT. 16 u - 1024 0 0.000 0.000 4000.00
anton.hin.de .INIT. 16 u - 1024 0 0.000 0.000 4000.00
anton.hin.de .INIT. 16 u - 1024 0 0.000 0.000 4000.00
*anton.hin.de 130.149.17.21 2 u 4 128 377 68.504 0.000 0.714
Unser Server synchronisiert sich hier mit dem an letzter Stelle stehenden Zeitserver, erkennbar am "*".
Nun geht es an die Konfiguration der Clients. Hier die Beispielkonfiguration für einen Client:
Code:
server 192.168.123.123 iburst
logfile /var/log/ntpd.log
driftfile /var/lib/ntp/drift
Hier wird jetzt der lokale PC, welcher sich mit der externen Quelle synchronisiert, als Zeitserver angegeben.
Die Ausgabe von `ntpq -p` sieht hier so aus:
Code:
[root@baldur root]# ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
odin.schnitz-on 80.237.234.15 3 u 136 256 17 0.571 -2.039 11.318
Zur Erklärung, mein Zeitserver ist "odin.schnitz-online.de" und hat intern die IP 192.168.123.123.
Mit allen anderen Clients kann man genau gleich verfahren.
Schlussbemerkung:
Da Ich hinter einer Firewall (NAT) sitze und es sich um ein privates Netzwerk handelt in dem nur Ich aktiv bin, brauche Ich keine sicherheitsrelevanten Einstellungen vornehmen. Wer seine NTPD absichern will/muss, sollte einen genaueren Blick auf die "restrict" Option in ntp.conf werfen.
Warum nicht einfach alle Rechner extern synchronisieren:
Dies belastet die öffentlichen Zeitserver unnötig und es schafft euch und den Zeitservern unnötigen Traffic.
HTH,
Schnitz
Lesezeichen