Heute schauen wir uns einmal die Installation von einem NTP Server unter Debian an. Der Debian-Server soll als NTP-Zeitserver im Netzwerk laufen und sich seine Uhrzeit von Zeitservern aus dem Internetz holen.
Update der Paketquellen und Installation von NTP
Alles beginnt mit der Installation des benötigten Paketes.
sudo apt update && sudo apt install ntp -y
Anpassung der Interfaces, auf dem der Dienst horcht
Im ersten Schritt bearbeiten wir die Datei /etc/default/ntp.
NTPD_OPTS='-4 -g -U 0'
Nun müssen die die Datei /etc/ntp.conf bearbeiten. Es macht Sinn, wenn man sich die Standard-Datei vor dem Einpflegen von Änderungen einmal wegkopiert, um später nochmal in die Beispiele schauen zu können.
cp /etc/ntp.conf /etc/ntp.conf.default
Nun müssen in der Datei einige Einstellungen gesetzt werden, wir gehen diese einmal der Reihe nach durch.
driftfile
Die erste Einstellung, die in meiner Konfigurationsdatei steht, ist die Option
driftfile /var/lib/ntp/ntp.drift
Diese Datei wird verwendet, um die Abweichung der lokalen Systemzeit zur Referenzsekunde mitzuschreiben. Wo die Datei liegt ist relativ egal, daher lasse ich sie an Standard-Pfad liegen.
Weitere Standard-Optionen
Nun kommt ein Block an Befehlen, der 1:1 aus der default-Datei übernommen wurde.
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
Die Zeitserver, die abgefragt werden
Nun kommt eine Liste von Servern (oder von Server-Pools), die als Referenz für die Uhrzeit genutzt werden sollen. Sollen hier zum Beispiel die Server der Physikalisch-Technischen Bundesanstalt in Braunschweig genommen werden, sähe die Liste wie folgt aus:
server ptbtime1.ptb.de iburst
server ptbtime2.ptb.de iburst
server ptbtime3.ptb.de iburst
Möchte man hier stattdessen Pools benutzen, müssten die folgenden Zeilen genutzt werden:
pool 0.debian.pool.ntp.org iburst
pool 1.debian.pool.ntp.org iburst
pool 2.debian.pool.ntp.org iburst
pool 3.debian.pool.ntp.org iburst
Beschränkungen und Erlaubtliste
Nun muss definiert werden, welche Systeme auf den NTP Server zugreifen dürfen. Es macht Sinn, diesen Zugriff einzuschränken, um ungewollte Anfragen und ggf. sogar Änderungen abzufangen und direkt zu unterbinden.
Als erstes erlauben wir einen Zugriff per Client auf die IPv4-Adresse des Servers, allerdings dürfen keine Änderungen oder Anpassungen gemacht werden.
Danach erlauben wir den Zugriff lokal über die 127.0.0.1, dies ist für manche Dienste oder Anwendungen notwendig. Eine Anpassung lokal stellt in meinen Augen kein Problem dar, da ja nur ein Administrator dies machen kann (sollte ;)).
In den weiteren Zeilen erlauben wir bestimmte IPv4-Adressen, die auf den NTP zugreifen dürfen und sich mit dem System abgleichen dürfen.
restrict -4 default kod notrap nomodify nopeer noquery limited
restrict 127.0.0.1
restrict 1.2.3.1 notrap nomodify nopeer
restrict 1.2.3.2 notrap nomodify nopeer
restrict 1.2.3.3 notrap nomodify nopeer
restrict 1.2.3.4 notrap nomodify nopeer
restrict 1.2.3.5 notrap nomodify nopeer
restrict 1.2.3.6 notrap nomodify nopeer
restrict 1.2.3.7 notrap nomodify nopeer
Eine Beschreibung der Optionen findet man direkt auf der Seite des NTP-Projekts: doc.ntp.org
Definition der Interfaces
Als letzten Bereich in der Konfiguration wird nun noch definiert, auf welchen Interfaces das System überhaupt lauschen soll. Dies wurde zwar auch schon über die /etc/default/ntp gesetzt, kann aber nicht schaden.
interface ignore ipv6
interface listen ipv4
Abschließenden Arbeiten und Kontrolle
Sind nun alle Einstellungen gesetzt, starten wir den NTP-Dienst einmal mit
systemctl restart ntp
durch und prüfen, ob eine Synchronisierung mit den eingetragenen Servern gemacht wird.
root@Server:/etc# ntpq -pn 127.0.0.1
remote refid st t when poll reach delay offset jitter
==============================================================================
+192.53.103.108 .SHM. 1 u 50 64 377 15.044 0.248 0.199
+192.53.103.104 .PTB. 1 u 44 64 377 14.130 -0.225 0.019
*192.53.103.103 .PTB. 1 u 60 64 377 15.021 0.221 0.040