Anleitung zum Einrichten von Chrony als NTP Server und Client unter AlmaLinux 9

NTP (Network Time Protocol) ist ein Netzwerkprotokoll für die Zeit- und Uhrensynchronisation im Computernetzwerk.

Chrony implementiert das NTP oder Network Time Protocol und ist eine Alternative zu anderen Anwendungen wie up. Chrony kann auf Unix-ähnlichen Betriebssystemen ausgeführt werden und ist unter der GNU GPL v2 veröffentlicht. Chrony wird als Standard-NTP-Server-Software für einige Linux-Distributionen verwendet und ist auch für andere Linux-Distributionen verfügbar.

In der folgenden Anleitung werde ich dir zeigen, wie du Chrony auf einem AlmaLinux 9 Server installierst. Wir werden Chrony als NTP-Server und NTP-Client installieren. Außerdem lernst du, wie du Chrony mit der Kommandozeile chronyc verwalten und überwachen kannst.

Voraussetzungen

Um loszulegen, musst du folgende Voraussetzungen erfüllen:

  • Einen AlmaLinux 9 Server – Diese Demo verwendet einen Server mit dem Hostnamen alma9 und der IP-Adresse 192.168.10.15.
  • Der Linux-Client-Rechner verwendet ebenfalls einen AlmaLinux-Rechner mit dem Hostnamen node1 und der IP-Adresse 192. 168.10.20.
  • Ein Nicht-Root-Benutzer mit Root-Administrator-Rechten.

Einrichten der Systemzeitzone

Um eine Zeitzone unter Linux einzurichten, kannst du das Dienstprogramm timedatectl verwenden. Der folgende Abschnitt zeigt dir, wie du die Systemzeitzone einrichtest und überprüfst, bevor du den Chrony NTP Server installierst.

Überprüfe zunächst die Liste der verfügbaren Zeitzonen mit dem folgenden Befehl und entscheide, welche Zeitzone du verwenden möchtest.

sudo timedatectl list-timezones

Führe nun den folgenden Befehl aus, um die Standardzeitzone auf deinem Server zu ändern. Mit dem folgenden Befehl wird die Standardzeitzone auf Europa/Amsterdam eingestellt.

sudo timedatectl set-timezone Europe/Amsterdam

Als Nächstes überprüfst du die aktuelle Zeitzone mit dem folgenden Befehl.

sudo timedatectl

Im Abschnitt Zeitzone kannst du deine aktuelle Zeitzone sehen.

Zeitzone einrichten

Du kannst auch die Standardzeitzone des Systems überprüfen, indem du die Datei /etc/localtime überprüfst. Achte darauf, dass die Datei ein Symlink auf die richtige Zeitzone ist.

ls -lah /etc/localtime

Installation von Chrony

Chrony ist eine Implementierung des NTP-Protokolls, die als NTP-Server und NTP-Client verwendet werden kann. Der folgende Abschnitt zeigt dir, wie du Chrony installierst und den Chrony-Dienst über das Dienstprogramm systemctl verwaltest.

Um zu beginnen, führe den folgenden dnf-Befehl aus, um das Chrony-Paket im AlmaLinux-Repository zu finden. Du solltest sehen, dass das Standard-Baseos-Repository chrony bereitstellt und zur Installation bereit ist.

sudo dnf search chrony

fidning chrony package

Installiere chrony mit dem folgenden dnf-Befehl. Wenn du dazu aufgefordert wirst, gib zur Bestätigung y ein und drücke ENTER.

sudo dnf install chrony

Installation der Chronik

Sobald Chrony installiert ist, führe den folgenden Befehl aus, um den Dienst chronyd zu starten und zu aktivieren. Der chronyd-Dienst ist ein systemd-Dienst für Chrony. Mit diesen Befehlen wird chronyd beim Systemstart automatisch gestartet.

sudo systemctl start chronyd
sudo systemctl enable chronyd

Überprüfe den chronyd-Dienst mit dem folgenden Befehl, um sicherzustellen, dass der Dienst läuft.

sudo systemctl status chronyd

Die folgende Ausgabe bestätigt, dass chronyd läuft, denn es wird die Meldung active (running) angezeigt.

start enable verify chronyd

Firewalld konfigurieren

Nachdem Chrony installiert ist, musst du den NTP-Port auf dem NTP-Server öffnen. Jetzt fügst du den NTP-Dienst über die Befehlszeile firewall-cmd zur Firewalld hinzu.

Wenn du einen öffentlichen NTP-Server betreibst, führst du den folgenden firewall-cmd-Befehl aus, damit jeder auf deine NTP-Server-Installation zugreifen kann.

sudo firewall-cmd --add-service=ntp --permanent
sudo firewall-cmd --reload

Wenn du jedoch einen NTP-Server für dein lokales Netzwerk betreibst, führe den folgenden firewall-cmd-Befehl aus, um das Netzwerk-Subnetz über die firewalld rich-rule anzugeben.

sudo firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='192.168.5.0/24' service='ntp' accept"
sudo firewall-cmd --reload

Wenn alles vollständig ist, überprüfe die Liste der Firewalld-Regeln mit dem folgenden Befehl.

sudo firewall-cmd --list-all

Du solltest den Dienst ntp zur Liste der Firewalld-Dienste hinzugefügt bekommen.

firewalld einrichten

Chrony als NTP-Server einrichten

Ein NTP-Server ist der Ort, an dem deine Clients die Systemzeit synchronisieren können. Um Chrony als NTP-Server einzurichten, musst du zwei wichtige Konfigurationen ändern:

  • NTP-Pool als Quelle hinzufügen: Besuche https://www.ntppool.org/en/, um verfügbare NTP-Server zu finden, die als Quelle verwendet werden können.
  • Internes Netzwerk zulassen: Füge die Subnetze deines internen Netzwerks hinzu, die auf deinen NTP-Server zugreifen und ihn nutzen dürfen. Auf diese Weise kannst du einen privaten/lokalen NTP-Server für deine Umgebung erstellen.

Öffne die chrony-Standardkonfiguration /etc/chrony.conf mit dem folgenden nano-Editor-Befehl.

sudo nano /etc/chrony.conf

Besuche https://www.ntppool.org/en/ und wähle öffentliche NTP-Server aus, die als Quellen verwendet werden sollen. Meistens hängt es vom Standort deines Servers ab, wähle nahegelegene NTP-Server als Quelle.

Füge dann den Server-Parameter wie folgt hinzu:

# list servers
server 0.nl.pool.ntp.org iburst
server 1.nl.pool.ntp.org iburst
server 2.nl.pool.ntp.org iburst
server 3.nl.pool.ntp.org iburst

Füge den Parameter allow hinzu und gib dein Netzwerk-Subnetz an. Jedes Netzwerk-Subnetz, das innerhalb des allow-Parameters liegt, darf auf deine NTP-Server-Installation zugreifen.

# allowed clients
allow 192.168.10.0/24

Außerdem musst du eventuell noch die folgenden Optionen anpassen:

# Allow the system clock to be stepped in the first three updates
# if its offset is larger than 1 second.
makestep 1.0 3
# Enable hardware timestamping on all interfaces that support it.
#hwtimestamp *

# Specify the file containing keys for NTP authentication.
keyfile /etc/chrony.keys

# Get TAI-UTC offset and leap seconds from the system tz database.
leapsectz right/UTC

Wenn du fertig bist, speichere und schließe den Editor.

Führe nun den folgenden systemctl-Befehl aus, um den chronyd-Dienst neu zu starten und die Änderungen zu übernehmen.

sudo systemctl restart chronyd

Sobald chronyd neu gestartet ist, führe den unten stehenden Befehl chronyc aus, um die aktuellen NTP-Serverquellen zu überprüfen. chronyc ist ein Kommandozeilenprogramm von Chrony, mit dem du sowohl den NTP-Server als auch den Client verwalten kannst.

chronyc sources

Wenn alles gut läuft, solltest du die Liste der nächsten NTP-Server-Quellen sehen.

chronyc Quelle prüfen

Außerdem kannst du mit der Option -v, die für eine ausführliche Ausgabe steht, eine detaillierte Version des Berichts erhalten.

chronyc sources -v

detaillierte Quellen

Chrony als NTP-Client einrichten

Oben hast du gelernt, wie du mit Chrony einen NTP-Server einrichtest. Jetzt erfährst du, wie du Chrony als NTP-Client einrichtest. Im folgenden Beispiel wird das Chrony-Paket auf dem Client-Rechner mit dem Hostnamen node1 und der IP-Adresse 192.168.10.20 installiert.

Um Chrony als NTP-Client einzurichten, musst du deinen NTP-Server zu den Server-Parametern in der Chrony-Konfigurationsdatei /etc/chrony.conf hinzufügen.

Führe zunächst den folgenden Befehl aus, um sicherzustellen, dass der chronyd-Dienst auf deinem Client-Rechner läuft.

sudo systemctl status chronyd

Wenn er läuft, sollte die folgende Ausgabe angezeigt werden:

chrony status node1

Öffne nun die chrony-Konfigurationsdatei /etc/chrony.conf mit dem nano-Editor.

sudo nano /etc/chrony.conf

Füge deinen NTP-Server zum Parameter server hinzu. Du kannst entweder die IP-Adresse oder den fqdn deines NTP-Servers verwenden.

Ein zusätzlicher Parameter iburst ermöglicht es dem Chronyd-Dienst, die erste Aktualisierung der Uhr kurz nach dem Start vorzunehmen, und der Parameter prefer priorisiert die NTP-Server-Quelle unter anderen Servern ohne prefer-Option.

server 192.168.10.15 iburst prefer

Führe nun den folgenden systemctl-Befehl aus, um den chronyd-Dienst neu zu starten und die Änderungen zu übernehmen. Überprüfe dann chronyd, um sicherzustellen, dass der Dienst läuft.

sudo systemctl restart chronyd
sudo systemctl status chronyd

chrony als ntp-Client

Zum Schluss gibst du den folgenden Befehl ein, um die NTP-Serverquellen auf deinem Client-Rechner zu überprüfen.

chronyc sources
chronyc sources -v

Wenn du erfolgreich warst, solltest du sehen, dass dein NTP-Server als NTP-Server-Quelle auf dem Client-Rechner verwendet wird.

Quellen prüfen

Grundlegende Verwendung des Befehls Chronyc

Chronyc ist eine Befehlszeilenschnittstelle zur Verwaltung von Chrony als NTP-Server oder NTP-Client. Im letzten Abschnitt lernst du einige grundlegende Chronyc-Befehle für die Verwaltung deiner NTP-Installation kennen.

Der Tracking-Parameter zeigt dir die Leistung der Systemuhr an.

chronyc tracking

Im Abschnitt Referenz-ID solltest du die NTP-Serverquelle sehen, die derzeit synchronisiert wird.

Chronikverfolgung

Mit dem Parameter ntpdata kannst du die NTP-Quelle messen und überprüfen.

chronyc ntpdata

Im Bereich Remote-Adresse siehst du die IP-Adresse der NTP-Server-Quelle. Im Abschnitt Remote-Port solltest du den Standard-Port des NTP-Servers sehen, der derzeit verwendet wird. Im Abschnitt Lokale Adresse schließlich solltest du die IP-Adresse des Client-Rechners als entsprechende Referenz-ID sehen.

ntpdata

Benutze als Nächstes den Parameter activity, um die Anzahl der NTP-Server der Gegenstelle anzuzeigen.

chronyc activity

Du kannst die Ausgabe online sehen, wenn der NTP-Server erreichbar ist und nur, und den Offline-Status, wenn der Server-Peer offline ist.

chronische Aktivität

Schließlich kannst du über die chronyc-Befehlszeile auch Netzwerk-Subnetze auf Chrony zulassen/verweigern.

Mit dem Parameter allow erlaubst du Subnetzen den Zugriff auf den Chrony NTP-Server.

chronyc allow IP/subnet

Um Subnetzen den Zugriff auf deinen Chrony NTP Server zu verweigern, verwende den Parameter deny wie folgt:

chronyc deny IP/subnet

Fazit

Gut gemacht! Du hast Chrony nun erfolgreich auf dem AlmaLinux 9 Server installiert. Du hast auch gelernt, wie du einen NTP-Server mit Chrony einrichtest und wie du einen NTP-Client mit Chrony einrichtest. Außerdem hast du die Systemzeitzone über timedatectl konfiguriert und einige grundlegende chronyc-Kommandozeilenbefehle zur Verwaltung der Chrony-Installation gelernt.

Das könnte dich auch interessieren …