Zeitsynchronisation mit chrony

Der Server soll für die anderen Rechner im lokalen Netz immer die aktuelle Uhrzeit bereitstellen. Dazu gibt es im Internet sogenannte Time-Server, die die aktuelle Uhrzeit bereitstellen. Wir verwenden chrony 1.14. Chrony hat den Vorteil, die Uhr nicht ruckweise zu verstellen, sondern die interne Uhr schneller oder langsamer laufen zu lassen, um die Zeit langsam anzugleichen. Sonst kann es passieren, dass Dateien angelegt werden, die Uhrzeit zurückgestellt wird und diese Dateien dann ein Erstellungsdatum in der Zukunft haben. Dabei muß der Kernel mit der Option

[*] Enhanced Real Time Support

aktiviert sein. Man findet diese Option unter "Character devices". Chrony wird über die zentrale Konfigurationsdatei /etc/chrony.conf gesteuert.

server 129.69.1.153     minpoll 12 maxpoll 12 maxdelay 0.4 offline
server 130.149.17.8     minpoll 12 maxpoll 12 maxdelay 0.4 offline
server 130.149.17.21    minpoll 12 maxpoll 12 maxdelay 0.4 offline
server 131.173.17.7     minpoll 12 maxpoll 12 maxdelay 0.4 offline
server 131.188.1.31     minpoll 12 maxpoll 12 maxdelay 0.4 offline
server 131.188.1.40     minpoll 12 maxpoll 12 maxdelay 0.4 offline
server 131.188.1.45     minpoll 12 maxpoll 12 maxdelay 0.4 offline
server 131.188.34.45    minpoll 12 maxpoll 12 maxdelay 0.4 offline
server 131.188.34.75    minpoll 12 maxpoll 12 maxdelay 0.4 offline
server 131.188.34.107   minpoll 12 maxpoll 12 maxdelay 0.4 offline
server 134.93.132.118   minpoll 12 maxpoll 12 maxdelay 0.4 offline
server 194.95.250.35    minpoll 12 maxpoll 12 maxdelay 0.4 offline
server 194.95.250.36    minpoll 12 maxpoll 12 maxdelay 0.4 offline

allow           127.0.0.1
allow           192.168.0
commandkey      25
driftfile       /etc/chrony.drift
dumponexit
dumpdir         /var/log/chrony
initstepslew    30 130.149.17.8 131.173.17.7 134.93.132.118 194.95.250.35
keyfile         /etc/chrony.keys
log             measurements rtc satistics tracking
logdir          /var/log/chrony
logchange       0.5
mailonchange    root@localhost 5
maxupdateskew   100.0
rtcfile         /etc/chrony.rtc

Die ersten Zeilen definieren, welche Server zu befragen sind. Die Pollanweisungen dahinter geben an, dass mindestens und maximal alle 2 hoch 12 (4096) Sekunden die Server zu befragen sind. maxdelay sagt, dass die gelieferte Zeit zu berücksichtigen ist, wenn die Differenz zur lokalen Zeit weniger als 0.4 Sekunden ist. offline bedeutet, dass die Server erst befragt werden, wenn der Rechner online ist. Damit wird verhindert, dass unnötige Verbindungen aufgebaut werden. Wir werden dem Dämon mitteilen, wann der Rechner online bzw. offline ist. Die weiteren Optionen in der Übersicht:

Optionen von chrony
Option Bedeutung
allow gibt an, welche Rechner den Dämon steuern dürfen
driftfile hier legt chrony ab, wie die interne Uhr angepasst wurde
dumponexit chrony soll beim Beenden die Uhrzeit in der RealTimeClock speichern
initstepslew diese Server werden zuerst befragt, um die Uhrzeit festzustellen, wenn die Uhrzeiten zur lokalen Zeit um mehr als 30 Sekunden abweicht, wird die Uhr ruckweise verstellt
keyfile die Passwörter für die Steuerung des Dämons
log was soll protokolliert werden
logdir wo sollen die protokollierten Informationen gespeichert werden
logchange chrony protokolliert, wenn die Uhr um mehr als 0.5 Sekunden verstellt wird
mailonchange wenn die Uhr um mehr als 5 Sekunden verstellt wird, dann Mail an root
maxupdateskew hier werden 100 Promille als Fehlertoleranz festgelegt
rtcfile hier speichert chrony, wann es welche Werte in die RealTimeClock schreibt

Die Option "commandkey" gibt an, welches Passwort benötigt wird. Der Dämon kann verschiedene User berücksichtigen und jedes Kommando kann einer Nummer zugeordnet werden. Die Passwörter werden in /etc/chrony.keys definiert. Jede Zeile besteht aus der Kommandonummer und einem Passwort im Klartext.

25 chrony

Nun kann der Dienst gestartet werden.

/usr/local/sbin/chronyd -r -s

Soll der Uhrzeitabgleich nur erfolgen, wenn der Rechner gerade online ist, so sind in der Datei /etc/ppp/ip-up noch die folgenden Zeilen einzufügen.

cat << EOF | /usr/local/bin/chronyc
password chrony
online
EOF

Analog verfährt man in der /etc/ppp/ip-down.

cat << EOF | /usr/local/bin/chronyc
password chrony
offline
dump
writertc
EOF

Damit die Windowsrechner im lokalen Netz die Zeit aktualisieren können, wird die folgende Verknüpfung im Ordner Autostart angelegt.

net time \\krypton /set /yes

Nun wird bei jedem Systemstart eines Windowsrechners die Zeit in der Hardware-Uhr aktualisiert. Weiterhin müssen in der Datei /etc/inetd.conf die folgenden Zeilen hinzugefügt werden.

time stream tcp nowait root internal
time dgram  udp wait   root internal