Server-Blog Ubuntu Server

Thema Datum und Zeit: Zeitserver Konfiguration

Die korrekte Systemzeit ist essenziell für einen stabilen Serverbetrieb. Sie wird benötigt für:

  • Die korrekte Funktion von **Systemprotokollen (Logs)** und Audits.
  • **Sicherheitsmechanismen** wie Zertifikatsgültigkeiten (SSL/TLS) und verteilte Authentifizierung (z.B. Kerberos).
  • Die **Synchronisation** von Datenbanken und verteilten Anwendungen.

Wir nutzen in diesem Abschnitt das Tool **Chrony** als NTP-Client/Server, da es im Vergleich zum älteren `ntpd` schneller synchronisiert und besser mit instabilen Netzwerkverbindungen oder kurzzeitig ausgeschalteten Systemen umgehen kann.


Abschnitt 1: Zeitzone und lokale Zeit einstellen

Bevor die Zeit synchronisiert wird, sollte die korrekte Zeitzone festgelegt werden. Dies beeinflusst, wie das System die koordinierte Weltzeit (UTC) in die lokale Zeit umrechnet (inklusive Sommerzeit).

1.1 Zeitzone prüfen

Verwenden Sie das Tool `timedatectl`, um den aktuellen Status anzuzeigen:

timedatectl

1.2 Zeitzone einstellen

Um eine Liste aller verfügbaren Zeitzonen zu sehen, nutzen Sie:

timedatectl list-timezones | grep Europe/

Zum Setzen der Zeitzone (hier exemplarisch für Berlin/Deutschland):

sudo timedatectl set-timezone Europe/Berlin

Überprüfen Sie anschließend mit `timedatectl`, ob die Umstellung erfolgreich war.


Abschnitt 2: NTP-Synchronisation mit Chrony

2.1 Installation von Chrony

Unter Debian/Ubuntu-basierten Systemen:

sudo apt update
sudo apt install chrony

Unter RHEL/CentOS/Fedora-basierten Systemen:

sudo dnf install chrony

2.2 Konfiguration (`/etc/chrony/chrony.conf`)

Die Standardkonfiguration ist oft ausreichend. Achten Sie auf die NTP-Server, die synchronisiert werden sollen. Es empfiehlt sich, NTP-Pool-Server zu verwenden, da diese eine hohe Verfügbarkeit bieten:

# Beispielausschnitt aus /etc/chrony/chrony.conf

# Nutzen Sie die NTP-Pool-Server für Deutschland
pool 0.de.pool.ntp.org iburst
pool 1.de.pool.ntp.org iburst
pool 2.de.pool.ntp.org iburst
pool 3.de.pool.ntp.org iburst

# Speichere die Drift-Informationen
driftfile /var/lib/chrony/chrony.drift

# Aktualisiere die Hardware-Uhr (RTC)
rtcsync

**Erklärung:** Die Option `iburst` sorgt dafür, dass Chrony beim Start einen schnelleren Anlauf zur Synchronisation nimmt. `rtcsync` stellt sicher, dass die synchronisierte Systemzeit regelmäßig in die Hardware-Uhr geschrieben wird.

2.3 Chrony als Zeitserver für das lokale Netzwerk

Möchten Sie Ihren Server als lokale Zeitquelle für andere Geräte im Netzwerk nutzen, fügen Sie die `allow`-Direktive hinzu:

# Erlaubt allen Clients aus dem 192.168.1.x Netz, die Zeit abzufragen
allow 192.168.1.0/24

**Wichtig:** Wenn Sie Iptables (siehe 04.php) verwenden, stellen Sie sicher, dass **UDP-Port 123** für eingehenden Verkehr (`Inbound`) erlaubt ist, falls der Server als NTP-Quelle dienen soll.

2.4 Dienst starten und Status prüfen

Aktivieren und starten Sie den Dienst:

sudo systemctl enable --now chrony

Prüfen Sie den Synchronisationsstatus. Dies kann einige Minuten dauern, bis die Server erfolgreich erreicht wurden:

# Zeigt den Zustand der Synchronisation
chronyc tracking

# Zeigt die konfigurierten NTP-Quellen
chronyc sources

Die Ausgabe von `chronyc tracking` sollte im Feld **Reference ID** eine gültige ID und im Feld **System time** eine geringe Abweichung (Offset) zeigen, sobald die Synchronisation erfolgt ist.