redhat:time-services-redhat:start

NTP unter Redhat / CentOS

Dieser Artikel behandelt die Installation, Konfiguration und Verwendung des NTP-Services und gibt zudem vorher einen kurzen Überblick über NTP sowie die Bedeutung der Uhrzeit im Computerbereich.

Bedeutung von NTP: Durch verschiedene, hardwareseitige Geräte oder VM's kommt es bei den allermeisten Computern früher oder später zu Differenzen der tatsächlichen Uhrzeit. Je nach Dauer der Nicht-Korrektur und der Eigenschaften der Hardware von einigen wenigen Sekunden bis hin zu mehreren Minuten im Monat. Der NTP-Daemon synchronisiert die aktuelle Uhrzeit des Clients mit Hilfe eines Zeitservers, so dass der Client immer über eine möglichst aktuelle Uhrzeit verfügt.

Eine genaue Uhrzeit ist zum Beispiel auf Mail- oder Webservern wichtig, da an die Uhrzeit häufig noch andere Dinge gekoppelt sind. Beispielsweise könnte eine Mail auf einem Mailserver mit einer vorgehenden Uhr weitergereicht werden, und ein anderer Mailserver erhält damit eine Mail „aus der Zukunft“ – Dies könnte zum Ablehnen der Mail aus Spamverdachtsgründen resultieren. Auch Clients profitieren von einer genauen Uhrzeit. Wenn die lokale Uhr nachgeht, erhält man plötzlich nur noch e-Mails „aus der Zukunft“, da es zum Beispiel anstelle 14:38:47 Uhr schon 14:39:52 Uhr ist. Auch beim Bearbeiten von Datenbanken, oder generell beim Arbeiten mit Daten kann es aufgrund einer falschen Uhrzeit zu Inkonsistenzen kommen.

Die meisten Computer verfügen nicht über einen hinreichend stabilen Taktgeber, wie einen thermostatgesteuerten Quarzoszillator oder einen Oszillator auf Rubidium-Basis und verfügen für gewöhnlich auch nicht über eine ausreichend stabile Energiequelle, um derlei Hardware zuverlässig zu betreiben, daher kommt es früher oder später unweigerlich zu einer Differenz zwischen lokaler Systemzeit und einer Referenzzeit (beispielsweise vom Funksender DCF77, der das westliche Europa mit einer exakten Referenzzeit versorgt).

Abhilfe gegen dieses Problem bietet sehr zuverlässig NTP, mittels welchem mithilfe des NTP-Services die lokale Uhrzeit mit einer genauen Referenzzeit synchronisiert werden kann.

Der NTPd Service ist unter RHEL 7 und CentOS 7 bereits per default installiert. Fall CentOS mit der minimal-Installation installiert wurde, ist es nicht enthalten; kann aber mit folgendem yum-statement nachinstalliert werden. Anschliessend, muss der Service nur noch wie weiter unten beschrieben, konfiguriert und aktiviert werden.

# yum -y install ntp

In der Datei /etc/ntp.conf werden die Parameter des NTP-Services definiert. Es wird hier davon ausgegangen, dass der Rechner nicht als Server für andere Rechner dienen soll, sondern nur seine eigene Zeit synchronisieren soll.

# vim /etc/ntp.conf

In einem Zeitserver-Pool sind mehrere Zeitserver vereint, bei jeder Anfrage wird zufallsgesteuert ein Zeitserver aus diesem Pool befragt. Dies hat zum Einen den Vorteil, dass die Ausfallsicherheit erhöht wird (wenn ein Server nicht antworten sollte, wird einfach ein anderer Server verwendet), und zum Anderen wird so die Last der weltweiten Anfragen besser verteilt. Um den schweizerischen NTP-Zeitserverpool zu verwenden, ist folgendes in der „/etc/ntp.conf“ zu definieren:

server 0.ch.pool.ntp.org
server 1.ch.pool.ntp.org
server 2.ch.pool.ntp.org
server 3.ch.pool.ntp.org

# Wahlweise geht auch
# server ch.pool.ntp.org
# Damit wird der gesamte CH-Pool auf einmal angesprochen

Somit werden alle vier Anlaufstellen des schweizerischen NTP-Zeitserverpools verwendet. Man kann hier jedoch auch einen einzigen Server gezielt eintragen.

server ntp.blackgate.org

# Es wird der eigene private Server abgefragt.

Es ist jedoch nicht ratsam, einen einzigen Server zur Synchronisation anzugeben, sondern immer einen Pool zu verwenden. Wenn man in einem Netzwerk allerdings einen eigenen Zeitserver betreibt, kann man diesen natürlich auch als einzigen Server angeben, ansonsten sollte man immer einen Zeitserver-Pool verwenden.

Zum Schluss wird noch der erforderliche Firewalld Service für NTP freigeschalten und zum übernehmen der Konfiguration der ntpd.service neugestartet, beziehungsweise bei der Erst-Konfiguration zuerst einmal nur aktiviert und gestartet.

# firewall-cmd --add-service=ntp --permanent

# firewall-cmd --reload 

# systemctl enable ntpd.service
# systemctl start ntpd.service

Der NTP-Services synchronisiert dann bereits schon nach wenigen Minuten das erste Mal mit den definierten NTP-Server und stellt so automatisch die richtige Uhrzeit ein.

(Optional) Manuelles NTP-Zeit-update:

# ntpd -q

Quelle: https://wiki.archlinux.de/title/NTP

ACHTUNG: Soll die Zeit nun fortan automatisch mit dem cronyd NTP-clients anstelle des ntpd synchronisiert werden; So muss der ntpd Service entfernt/disabled werden! → yum remove ntp

  • Chrony Installieren
    # yum install chrony
  • Konfiguration bearbeiten und korrekte Zeitserver ergänzen!
    # vim /etc/chrony.conf

    # Use public servers from the pool.ntp.org project.
    # Please consider joining the pool (http://www.pool.ntp.org/join.html).
    server 0.ch.pool.ntp.org iburst
    server 1.ch.pool.ntp.org iburst
    server 2.ch.pool.ntp.org iburst
    server 3.ch.pool.ntp.org iburst
    
    # Record the rate at which the system clock gains/losses time.
    driftfile /var/lib/chrony/drift
    
    # 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 kernel synchronization of the real-time clock (RTC).
    rtcsync
    
    # Enable hardware timestamping on all interfaces that support it.
    #hwtimestamp *
    
    # Increase the minimum number of selectable sources required to adjust
    # the system clock.
    #minsources 2
    
    # Allow NTP client access from local network.
    #allow 192.168.0.0/16
    
    # Serve time even if not synchronized to a time source.
    #local stratum 10
    
    # Specify file containing keys for NTP authentication.
    #keyfile /etc/chrony.keys
    
    # Specify directory for log files.
    logdir /var/log/chrony
    
    # Select which information is logged.
    #log measurements statistics tracking
    
    

  • Aktivieren der benötigten firewalld Rule:
    # firewall-cmd --add-service=ntp --permanent
    # firewall-cmd --reload 
  • Chrony starten & enablen
    # systemctl start chronyd 
    # systemctl enable chronyd
  • Zeit test-synchronisieren:
    # chronyc tracking
  • Aktivieren der Automatischen Zeit Synchronisation auf Systemebene:
    # timedatectl set-ntp true
  • Testen und anzeigen der aktuellen Zeit:
    # timedatectl

          Local time: Tue 2017-10-03 14:57:27 CEST
      Universal time: Tue 2017-10-03 12:57:27 UTC
            RTC time: Tue 2017-10-03 12:57:27
           Time zone: Europe/Zurich (CEST, +0200)
         NTP enabled: yes
    NTP synchronized: yes
     RTC in local TZ: no
          DST active: yes
     Last DST change: DST began at
                      Sun 2017-03-26 01:59:59 CET
                      Sun 2017-03-26 03:00:00 CEST
     Next DST change: DST ends (the clock jumps one hour backwards) at
                      Sun 2017-10-29 02:59:59 CEST
                      Sun 2017-10-29 02:00:00 CET
    
    

  • redhat/time-services-redhat/start.txt
  • Last modified: 2019/03/07 15:00
  • by michael