NTP Daemon Konfigurieren
Kernel anpassen
Es muss apci und apm deaktiviert werden. Dazu die Kernelzeile in /boot/grub/menu.list anpassen. Hier ein Beispiel für den 2.6.18-164.15.1.el5 Kernel:
title CentOS (2.6.18-164.15.1.el5) root (hd0,1) kernel /boot/vmlinuz-2.6.18-164.15.1.el5 ro root=LABEL=/ apm=off noapci nolapic vga=791 pci=noacpi rhgb quiet acpi=off splash initrd /boot/initrd-2.6.18-164.15.1.el5.img
Server-Konfiguration
Auf dem Server installierte ich zunächst die beiden Pakete ntp und ntpdate:
apt-get install ntp ntpdate
Anschließend editierte ich die Konfiguration des NTP-Prozesses, die in der Datei /etc/ntp.conf zu finden ist. In Deutschland ist die Physikalisch-Technische Bundesanstalt für die gesetzliche Zeit zuständig. Daher habe ich die beiden Zeitserver der PTB als Referenzquelle angegeben. Damit die Last der Zeitserver etwas verteilt wird, sollte besser gleich die Serveradresse „pool.ntp.org“ eingetragen werden.
## NTP Server Config ## # Oeffentliche NTP Server server ptbtime1.ptb.de server ptbtime2.ptb.de # Zugriff durch NTP-Server gestatten restrict ptbtime1.ptb.de restrict ptbtime2.ptb.de # Zugriff vom localhost gestatten (ntpq -p) restrict 127.0.0.1 # Zugriff aus dem internen Netz gestatten restrict 192.168.20.0 mask 255.255.255.0 restrict 10.0.0.0 mask 255.255.255.0 # allen anderen Rechnern Zugriff verwehren restrict default notrust nomodify nopeer # Abweichungen in driftfile schreiben driftfile /var/lib/ntp/drift
Bevor der NTP-Daemon gestartet wurde, habe ich die Uhrzeit bereits erstmalig synchronisiert:
ntpdate ptbtime1.ptb.de
Wenn dabei eine zu hohe Differenz angezeigt wird, ist möglicherweise die Zeitzone nicht richtig eingestellt. Unter beiden Debian-Versionen muss in der /etc/timezone daher „Europe/Berlin“ stehen. Konfigurieren kann man die Zeitzone mit dem Tool tzconfig. Mit dem folgenden Kommando wurde dann der NTP-Prozess und somit die Zeitsynchronisation auf meinem Server angestoßen:
/etc/init.d/ntp start
Client-Konfiguration
Auf meinem Client musste ich ebenfalls die NTP-Pakete installieren. Bei Debian 3.0 sind es jedoch drei Pakete:
apt-get install ntp ntp-simple ntpdate
Die Konfiguration des NTP-Daemons befindet sich auf der Client-Seite auch in der Datei /etc/ntp.conf. Die folgenden Zeilen sorgen dafür, dass sich der Client die Uhrzeit von meinem DSL-Router holt.
# /etc/ntp.conf, configuration for ntpd; see ntp.conf(5) for help driftfile /var/lib/ntp/ntp.drift # Enable this if you want statistics to be logged. #statsdir /var/log/ntpstats/ statistics loopstats peerstats clockstats filegen loopstats file loopstats type day enable filegen peerstats file peerstats type day enable filegen clockstats file clockstats type day enable # You do need to talk to an NTP server or two (or three). server 192.168.20.10 server ntp.ubuntu.com # Access control configuration; see /usr/share/doc/ntp-doc/html/accopt.html for # details. The web page <http://support.ntp.org/bin/view/Support/AccessRestrictions> # might also be helpful. # # Note that "restrict" applies to both servers and clients, so a configuration # that might be intended to block requests from certain clients could also end # up blocking replies from your own upstream servers. # By default, exchange time with everybody, but don't allow configuration. restrict -4 default kod notrap nomodify nopeer noquery restrict -6 default kod notrap nomodify nopeer noquery # Local users may interrogate the ntp server more closely. restrict 127.0.0.1 restrict ::1 # Clients from this (example!) subnet have unlimited access, but only if # cryptographically authenticated. #restrict 192.168.123.0 mask 255.255.255.0 notrust # If you want to provide time to your local subnet, change the next line. # (Again, the address is an example only.) #broadcast 192.168.123.255 # If you want to listen to time broadcasts on your local subnet, de-comment the # next lines. Please do this only if you trust everybody on the network! #disable auth #broadcastclient restrict default notrust nomodify nopeerBevor auf dem Client der NTP-Daemon gestartet wurde, wurde die Uhrzeit wie beim Server auch erstmalig synchronisiert:
ntpdate 192.168.20.10
Mit dem folgenden Kommando wurde dann der NTP-Prozess und somit die Zeitsynchronisation mit meinem Server angestoßen:
/etc/init.d/ntp start
Falls das Start-/Stop-Script des NTP-Daemons (Server & Clients) beim Herunterfahren des Rechners die Uhrzeit nicht automatisch in die Realtime Clock (RTC) des Rechners schreibt, kann dieser Vorgang manuell durchgeführt werden:
hwclock --systohc
Um sich alle eingebundenen Zeitserver anzeigen zu lassen, verwendet man üblicherweise einen der beiden folgenden Befehle:
ntpq -p ntpdc -p
Das wars… Alle Rechner im lokalen Netzwerk haben nun stets die korrekte Uhrzeit.
Uhrzeit via Cronjob abgleichen
Dazu ein Script in /etc/cron.hourly/ namens clock erstellen
#! /bin/bash MAIL=monit@creutz.net HEAD=clock_adjust ntpserver=clock.redhat.com { time { /usr/sbin/ntpdate $ntpserver } 2>&1; } 2>&1 | mail -s $HEAD $MAIL # /usr/bin/logger "Daily Watchdog Mail send to $MAIL" # EndeDie Datei dann mit
chmod +x clock
ausführbar machen.
Nach der Testphase kann dann das mail -s… ausgeremmt werden.