Voraussetzungen für die Installation von NTP mittels Tarball
Bevor mit der eigentlichen Installation begonnen werden kann, benötigen wir ein paar Vorbereitungen. Als aller erstes benötigen wir die aktuellste Version von NTP. Diese kann von der Seite Seite „Current versions of NTP" heruntergeladen werden. Da wir zusätzlich zu den normalen Einstellungen auch das Auto-Key Verfahren benutzen wollen, sollten die Entwicklerwerkzeuge installiert sind.
Entfernen vorhandener NTP Installationen
Um keine Konflikte mit einer noch vorhandenen NTP Installation und unserer selbst kompillierten Version zu verursachen, muss eine eventuell vorhandene Installation gelöscht werden. Dies kann für RPM-basierte Betriebssysteme, mittels dem Befehl: rpm -e --nodeps ntp erfolgen. Ebenfalls ist zu prüfen, ob im Verzeichnis usr/local/bin noch NTP Binaries vorhanden sind. Die Überprüfung kann schnell mittels des Befehles: ls -al /usr/local/bin/ntp* durchgeführt werden. Sofern Binaries gefunden wurden, müssen diese entfernt werden.
Sourcen herunterladen und Ordnerstruktur für die Kompilierung anlegen
Für die eigentliche Kompilierung lege ich zu erst einen Ordner im Home-Verzeichnis vom Benutzer root an mkdir -p /root/software_archiv/ntp. Im Anschluss wechsle ich in diesen gerade angelegten Ordner cd /root/software_archiv/ntp/. In meinem Beispiel habe ich die Version ntp-4.2.8p15 als Tarball heruntergeladen und entpackt diesen wie folgt tar -xzvf ntp-4.2.8p15.tar.gz. Nach dem Entpacken kann ich in den Ordner ntp-4.2.8.p15 wechseln cd ntp-4.2.8p15.
Erstellen der Konfiguration mit folgenden Variablen
Für die Konfiguration benötigen wir die folgenden Variablen:
- --enable-RAWDCF (Diese Variable stellt die Unterstützung des DCF77 Rohsignals sicher. Denn wir wollen auch einen NTP Stratum 1 Server betreiben.)
- --enable-step-slew (Diese Variable ermöglicht es dem NTP Daemon (ntpd), die Geschwindigkeit der Systemuhr moderat zu reduzieren und somit eine vorgehende Uhr an die korrekte Uhrzeit anzupassen.)
- --enable-ntpdate-step (Diese Variable ermöglicht es, dass auch das Kommando ntpdate, die Geschwindigkeit der Systemuhr moderat reduzieren kann und somit eine vorgehende Uhr an die korrekte Uhrzeit anpaßt.)
- --enable-LOCAL-CLOCK (Diese Variable ermöglicht es, dass auch der lokale Systemzeitgeber als Referenzuhr herangezogen wird.)
- --enable-MEINBERG (Diese Variable ermöglicht den Einsatz von DCF77 Empfängern des Herstellers Meinberg. Dieses ist wichtig für unseren NTP Stratum 1 Server.)
- --enable-timing-stats (Diese Variable ermöglicht das Schreiben von Timing-Statistiken, die Auskunft über die Prozess-Verarbeitungszeiten von ntpd erteilen.)
Das fertige Konfigurationsbeispiel sieht wie folgt aus:
./configure \
--enable-RAWDCF\
--enable-step-slew\
--enable-ntpdate-step\
--enable-LOCAL-CLOCK\
--enable-timing-stats\
--enable-MEINBERG
Kompilieren
Mittels des des Befehls make wird der Vorgang des Kompilieren gestartet.
Installieren
Mittels des des Befehls make install wird der Vorgang der Installation gestartet.
Log- und PID-Verzeichnisse
Zum Abschluss muss noch einmal geprüft werden, dass das alle benötigten Ordner (Verzeichnisse) vorhanden sind. Sollten diese nicht vorhanden sein, müssen diese noch angelegt werden. Hinsichtlich der Berechtigung auf die Verzeichnisse ist wichtig, dass diese nur für den Benutzer root volle Zugriffsrechte bereitstellen. Nachfolgend die Liste der benötigten Verzeichnisse und deren Bedeutung.
- NTP Konfigurationsdateien - /etc/ntpd/
- NTP Schlüsselverzeichnis für Zertifikate - /etc/ntpd/keys/
- Das PID-file Verzeichnis - /var/run/ntpd/
- Das Logverzeichnis für ntpd.log - /var/log/
- Verzeichnis für das ntp Driftfile - /var/lib/ntp/drift/
- Verzeichnis für die ntp Statistiken - /var/lib/ntp/stats/