Archiv der Kategorie: Linux Howto

THINK UNBLOG GNU/Linux Knowledge Network for Tutorials, Howto’s, Workaround, DevOps Code for Professionals.

Network Time Protocol Linux Installation

Linux Systemzeit Synchronisation mit Network Time Protocol (NTP)

Network Time Protocol – NTP Synchronisation der Systemzeit mit der Atomzeit der NTP-Server. Dieser Beitrag zeigt die NTP-Service Bereitstellung und Konfiguration in der Linux Befehlszeile. Eine korrekte Systemzeit ist für Computersysteme essentiell und schafft überhaupt die Voraussetzung für ein reibungslosen Beitrieb der interagierenden Dienste. Zur Überprüfung und ändern der Systemzeit dienen folgende Befehlszeilentools.

Zur Abfrage der aktuellen Systemzeit mit date und timedatectl:

$ date
Fr 19. Feb 10:15:46 CET 2021
$ timedatectl
               Local time: Fr 2021-02-19 10:15:46 CET
           Universal time: Fr 2021-02-19 09:15:46 UTC
                 RTC time: Fr 2021-02-19 09:15:44
                Time zone: Europe/Zurich (CET, +0100)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no

Der Zeitabgleich auf einem Server wird von einem NTP-Daemon ausgeführt, mit Synchronisation der Systemzeit für eine ordnungsgemässe Funktion der Systeme. Die Atomzeit kann von NTP-Server im Internet synchronisiert werden, wie zum Beispiel Google Public Network Time Protocol (NTP) time.google.com

Die NTP-Daemon Bereitstellung

Der NTP-Daemon auf Debian Linux basiertem System Installieren:

$ sudo apt install ntp ntpdate -y

Der NTP-Daemon auf RHEL/CentOS/Fedora System Installieren:

$ sudo dnf install ntp ntpdate -y

NTP Pool Server pool.ntp.org versucht den nächstgelegenen verfügbaren Server zu finden. Das Projekt NTP-Pool ist ein dynamischer Pool von Zeitservern. Die NTP Pool Server kann man in /etc/ntp.conf editieren.

pool time.google.com
pool europe.pool.ntp.org

Bevor der ntpd-Dienst gestartet werden kann, muss die Systemzeit grob (im Bereich weniger Minuten) eingestellt werden. Das kann manuell mit date oder hier mit timedatectl set-time oder über den NTP Pool mit ntpdate pool.ntp.org gemacht werden.

$ sudo ntpdate pool.ntp.org
$ sudo ntpq -pn
$ sudo ntpq -c rv

Nach einigen Minuten kann der Status des Dienstes abgerufen werden. Die Ausgabe des Kommandos ntpq -p sollte in etwa wie folgt aussehen.

Der bereitgestellte NTP-Daemon nun ausführen und in systemd für den automatischen start verlinken:

$ sudo systemctl start ntp.service
$ sudo systemctl enable ntp.service

Die systemd-timesyncd Konfiguration

Der Service systemd-timesyncd ist bei vielen Distributionen bereits installliert. Die Konfigurationsdateien steuern die Zeitsynchronisation des NTP-Netzwerks.

Die Network Time Synchronization für den Service systemd-timesyncd beinhaltet die Datei /etc/systemd/timesyncd.conf

Die Konfigurationsdatei timesyncd.conf kann wie folgt sein.

# See timesyncd.conf(5) for details.

[Time]
NTP=ch.pool.ntp.org
FallbackNTP=0.ch.pool.ntp.org 1.ch.pool.ntp.org 2.ch.pool.ntp.org 3.ch.pool.ntp.org 4.ch.pool.ntp.org
RootDistanceMaxSec=5
PollIntervalMinSec=32
PollIntervalMaxSec=2048

Damit systemd-timesyncd automatisch gestartet wird, aktiviert der Befehl enable den Service entsprechend:

$ sudo systemctl enable systemd-timesyncd
$ sudo systemctl start systemd-timesyncd

Bei einem systemd-basierten System führt man folgenden Befehl aus, um den Servicestatus zu überprüfen:

$ timedatectl status
               Local time: Fr 2021-02-19 10:15:46 CET
           Universal time: Fr 2021-02-19 09:15:46 UTC
                 RTC time: Fr 2021-02-19 09:15:44
                Time zone: Europe/Zurich (CET, +0100)
System clock synchronized: no
              NTP service: n/a
          RTC in local TZ: no

Die Ausgabe auf Zeile 7 und 8 bedeutet, dass der Zeitabgleich nicht ausgeführt wird. Mit folgendem Befehl wird die Synchronisation aktiviert:

$ sudo timedatectl set-ntp true

Der NTP Servicestatus erneut abfragen, nach einigen Sekunden zeigt die Ausgabe System clock synchronized: yes und NTP service: active:

$ timedatectl status
               Local time: Fr 2021-02-19 10:15:46 CET
           Universal time: Fr 2021-02-19 09:15:46 UTC
                 RTC time: Fr 2021-02-19 09:15:44
                Time zone: Europe/Zurich (CET, +0100)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no

Die Kerberos-Authentifizierung

Die Kerberos-Authentifizierung ist gegenwärtig die Standard-Authentifizierungstechnologie unter Windows, auch Apple macOS, FreeBSD und Linux Systeme nutzen Kerberos-Implementierungen. Bei der Authentifizierung in einer Umgebung mit Kerberos, kommt eine synchrone Systemzeit für interagierende System eine fundamentale Bedeutung zu.

Die Kerberos Authentifizierung verlangt drei Entitäten, für die Ticket-Autorisierung durch eine dritte Partei, dabei darf die Systemzeit eine bestimmte Drift Limite nicht überschreiten, ein Ticket das durch Kerberos erstellt wird, ist nach einer gewissen Zeit abgelaufen, das Ticket wird ungültig.

Kerberos ist auch für Websites und SSO-Implementierungen plattformübergreifend zum Standard geworden. In Active Directory Domain Services (AD DS), ist bei der Integration von NAS und anderen Geräte, für den Zugriff auf Netzwerkressourcen für eine übereinstimmende Systemzeit zu sorgen. Für die Protokollierung wie Syslog ist die präzise Zeit, der Timestamp für die Auswertung der Ereignisse, und bei der Fehler Analyse bedeutend.

Linux Mint 20 Cinnamon: apt install ntp ntpdate

timedatectl Linux Zeitzone festlegen

Die Zeitzone mit timedatectl anzeigen und ändern bei Debian, Ubuntu und Fedora Linux, und den meisten modernen Linux Betriebssysteme.

Dieser Beitrag zeigt die Abfrage und das festlegen der Zeitzone mit timedatectl in der Befehlszeile bei Debian, RHEL/CentOS 8 und Fedora Linux. Eine korrekte Systemzeit ist für Computersysteme essentiell und schafft überhaupt die Voraussetzung für ein reibungslosen Beitrieb der interagierenden Dienste. Zur Überprüfung und Bearbeitung der Zeitzoneneinstellung dient das Befehlszeilentool timedatectl.

timedatectl Zeitzone Abfrage

Hier die Zeitzoneneinstellung Abfrage ohne zusätzliche Argumente:

$ timedatectl
               Local time: Mi 2021-02-17 17:04:29 GMT
           Universal time: Mi 2021-02-17 17:04:29 UTC
                 RTC time: Mi 2021-02-17 16:57:58
                Time zone: Europe/London (GMT, +0000)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no

Die Zeitzoneneinstellung ändern und festlegen:

$ sudo timedatectl set-timezone Europe/Zurich

Abfragen der geänderten Zeitzoneneinstellung:

$ timedatectl
               Local time: Mi 2021-02-17 18:05:58 CET
           Universal time: Mi 2021-02-17 17:05:58 UTC
                 RTC time: Mi 2021-02-17 16:59:27
                Time zone: Europe/Zurich (CET, +0100)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no

Die verfügbaren Zeitzonen mit folgendem Befehl ausgeben:

$ timedatectl list-timezones

Da es viele Zeitzonen gibt, wird die Abfrage sehr lange, mit grep wird die Abfrage eingegrenzt:

$ timedatectl list-timezones | grep Europe

timedatectl steuert die Systemzeit und das Datum

timedatectl kann zur Abfrage und Änderung der Systemuhr und ihrer Einstellungen sowie zur Deaktivierung der Zeitsynchronisationsdienste verwandt werden.

Verwende systemd-firstboot, um die Systemzeitzone für eingehängte (aber nicht gestartete) System-Abbilder zu initialisieren.

timedatectl kann zur Anzeige des aktuellen Status von Zeitsynchronisationsdiensten wie beispielsweise systemd-timesyncd.service verwandt werden.

Die Ausgabe von „timedatectl status“ enthält die folgenden Komponenten:

  • Local Time: It displays the date and local time using EST(Eastern Standard Time).
  • Universal Time: It shows the Universal time using the UTC timezone.
  • RTC Time: Real-Time Clock is a “Hardware clock” that keeps the date/time up to date even the system is turned off.
  • Time zone: It represents the current system timezone.
  • System clock synchronized”: The “system clock synchronized ” system verifies whether all the system clocks are synchronized.
  • NTP services: The “NTP” (Network Time Protocol) allows the user to synchronize all the system clocks within the network.
  • RTC in local TZ: It shows that the current Linux system uses the local timezone.

Fazit

Der Befehl „timedatectl“ ist nützlich, um Informationen zu Uhrzeit, Datum und Zeitzone anzuzeigen. Vorteilhaft ist auch die Einstellung von Datum/Uhrzeit und Zeitzone. Dieses Dienstprogramm stellt Informationen wie „Lokalzeit“, „Weltzeit“, „RTC-Zeit“, „NTP-Dienste und „RTC in lokaler TZ“ bereit. Darüber hinaus enthält der Befehl „timedatectl“ eine Liste von Befehlen und Optionen mit unterschiedlichen Funktionalitäten. In diesem Beitrag wurde kurz die Funktionsweise und Verwendung des Befehls timedatectl unter Linux erläutert.