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.
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
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
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.
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.
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.
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
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:
Ö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
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.
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.
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.
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.
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.