Einführung
Das NTP (Network Time Protocol) ist dazu da, um die Zeit auf einem Server mit einem zentralen Zeitserver abzugleichen. In den Hetzner Standardimages ist dies bereits vorkonfiguriert. Hierbei werden die Hetzner NTP Server genutzt.
Schritt 1 - NTP installieren
Bei einer individuellen Installation ist dies nicht der Fall. Hier muß als erstes der NTP Daemon installiert werden. Dieser ist bei den einzelnen Distributionen schon als Paket vorhanden und kann ganz einfach installiert werden.
Debian:
debian root # apt-get install ntp
Gentoo:
emerge ntp
OpenSuSE:
zypper install ntp
Schritt 2 - Den NTP Daemon konfigurieren
Seit Januar 2010 bietet Hetzner drei Zeit-Server mit dem NTP-Protokoll an. Diese sind an drei unterschiedlichen Standorten untergebracht und haben folgende Adressen:
- ntp1.hetzner.de
- ntp2.hetzner.com
- ntp3.hetzner.net
Um diese Zeit-Server unter Linux zu verwenden, muss der ntpd entsprechend konfiguriert werden. Bei Debian Linux sind beispielsweise folgende drei Zeilen in die Datei /etc/ntp.conf
einzufügen bzw. die bestehenden mit server
beginnenden Zeilen zu ersetzen:
server ntp1.hetzner.de iburst
server ntp2.hetzner.com iburst
server ntp3.hetzner.net iburst
Optional können weitere öffentliche Server hinzugefügt werden:
server 0.de.pool.ntp.org
server 1.de.pool.ntp.org
server 2.de.pool.ntp.org
server 3.de.pool.ntp.org
Hier wird bei jedem Start des NTP Dienstes ein beliebiger deutscher Server ausgenutzt. Dies stellt sicher, daß die Anfragen über viele Server verteilt werden und erhöht gleichzeitig die Zuverlässigkeit.
Abschliessend muss der ntpd
neu gestartet werden.
Schritt 3 - Absicherung
Da NTP ein UDP-basiertes Protokoll ist, kann es leicht für DDoS-Angriffe missbraucht werden. Da bei falscher Konfiguration die Antwort größer als die Anfrage ausfällt, wird so ein Angriff verstärkt.
Falls möglich, sollte auf die Version 4.2.7p26 oder höher aktualisiert werden. Andernfalls können mittels noquery
alle Statusabfragen unterbunden werden.
Eine entsprechende Konfiguration, welche nur die Hetzner NTP Server nutzt, könnte wie folgt aussehen:
restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery
restrict 127.0.0.1
restrict -6 ::1
server ntp1.hetzner.de iburst
server ntp2.hetzner.de iburst
server ntp3.hetzner.de iburst
Bei dieser Konfiguration sind Veränderungen und Statusabfragen nur noch lokal möglich. Zeitinformationen können mit und von jeder IP aus abgerufen werden.
Alternativ ist es möglich alle Anfragen blockieren und Zeitinformationen nur mit explizit erlaubten Zeitservern auszutauschen. Folgendes Beispiel erlaubt nur den Austausch von Zeitinformationen mit den Hetzner NTP Servern
restrict default ignore
restrict -6 default ignore
restrict 127.0.0.1
restrict -6 ::1
server ntp1.hetzner.de iburst
restrict 213.239.239.164 nomodify notrap nopeer noquery
restrict -6 2a01:4f8:0:a0a1::2:1 nomodify notrap nopeer noquery
server ntp2.hetzner.de iburst
restrict 213.239.239.165 nomodify notrap nopeer noquery
restrict -6 2a01:4f8:0:a101::2:3 nomodify notrap nopeer noquery
server ntp3.hetzner.de iburst
restrict 213.239.239.166 nomodify notrap nopeer noquery
restrict -6 2a01:4f8:0:a112::2:2 nomodify notrap nopeer noquery
Schritt 4 - Mit NTP die Zeit manuell synchronisieren
Es kann notwendig sein, dass man einmal nachdem man den NTP Server installiert hat, die Zeit manuell synchronisiert. Dies geht entweder mit ntpd
oder mit ntpdate
(muss bei Debian Sarge zusätzlich installiert werden):
ntpd -q -g
Die Option -g bedeutet, dass ntpd auch synchronisiert, wenn die Zeit mehr als 1000 Sekunden abweicht. Die Option -q bedeutet, dass ntpd nur einmal ausgeführt wird.
ntpdate NTP-Server
ntpdate ptbtime1.ptb.de
Schritt 5 - Uhrzeit in Hardwareuhr schreiben
Dann sollte man noch mit
hwclock --systohc
die Uhr in die Hardwareclock schreiben, denn sonst kommt der Server eventuell nach einem Boot mit einer völlig falschen Zeit hoch.
Fazit
Nun sollte ihr Server auch bei einer individuellen Konfiguration die Zeit abgesichert mit einem Server ablgleichen.