Stell dir vor, die Uhren aller Server in einem Rechenzentrum gehen unterschiedlich – einer ist 5 Minuten vor, ein anderer 3 Minuten nach. Log-Dateien wären unlesbar, Zertifikate würden als abgelaufen gelten, Kerberos-Authentifizierung würde fehlschlagen und Transaktionen könnten in falscher Reihenfolge erscheinen.
Das Network Time Protocol (NTP) löst dieses Problem: Es synchronisiert die Systemuhren aller Netzwerkgeräte auf eine gemeinsame Zeitquelle – mit einer Genauigkeit von wenigen Millisekunden.
NTP ist hierarchisch aufgebaut. Die Ebenen heißen Stratum:
Stratum 0: Atomuhren, GPS-Empfänger, Funkuhren
(keine Netzwerkgeräte – direkt angeschlossene Referenzuhren)
│
Stratum 1: NTP-Server direkt an Stratum-0-Quelle angeschlossen
(z.B. ptbtime1.ptb.de – Physikalisch-Technische Bundesanstalt)
│
Stratum 2: Server die sich von Stratum-1-Servern synchronisieren
(z.B. pool.ntp.org-Server)
│
Stratum 3: Interne Firmen-NTP-Server
│
Stratum 4+: Clients und weitere Server
(Desktops, Laptops, Smartphones)Client NTP-Server
│ │
│── NTP-Anfrage ───────────────▶│ t1: Absendezeitpunkt (Client)
│ │ t2: Empfangszeitpunkt (Server)
│ │ t3: Antwortzeitpunkt (Server)
│◀── NTP-Antwort ──────────────│
t4: Empfangszeitpunkt (Client)
Berechnung:
Offset = ((t2 - t1) + (t3 - t4)) / 2
Delay = (t4 - t1) - (t3 - t2)
→ Client passt seine Uhr um den berechneten Offset anWindows:
w32tm /query /status → Aktuellen NTP-Status anzeigen
w32tm /query /peers → Konfigurierte NTP-Server anzeigen
w32tm /resync → Sofortige Synchronisierung erzwingen
NTP-Server konfigurieren (Registrierung):
w32tm /config /manualpeerlist:"pool.ntp.org" /syncfromflags:manual /update
Linux (systemd-timesyncd):
timedatectl status → Status anzeigen
timedatectl set-ntp true → NTP aktivieren
/etc/systemd/timesyncd.conf:
[Time]
NTP=pool.ntp.org
FallbackNTP=time.cloudflare.com
Linux (ntpd):
ntpq -p → Peers und Status anzeigen
ntpstat → SynchronisierungsstatusServer | Betreiber | Besonderheit |
|---|---|---|
pool.ntp.org | NTP Pool Project | Rund-Robin-Pool – empfohlen für allgemeine Nutzung |
ptbtime1.ptb.de | PTB (Deutschland) | Stratum 1 – direkt an Atomuhr |
time.cloudflare.com | Cloudflare | Unterstützt NTS (verschlüsseltes NTP) |
time.google.com | Leap-Smearing statt Schaltsekunde | |
time.windows.com | Microsoft | Standard bei Windows |
Anwendungsfall | Konsequenz bei falscher Zeit |
|---|---|
Kerberos-Authentifizierung | Scheitert bei > 5 Minuten Zeitunterschied |
TLS-Zertifikate | Gelten als abgelaufen oder noch nicht gültig |
Log-Analyse | Ereignisse können nicht korrekt zeitlich zugeordnet werden |
Datenbank-Transaktionen | Falsche Reihenfolge, Inkonsistenzen |
Backup-Systeme | Falsche Datums-Stempel, Backup-Rotation fehlerhaft |
Forensik | Beweiskette bei Sicherheitsvorfällen unzuverlässig |
Problem | Beschreibung | Lösung |
|---|---|---|
NTP-Amplification | Kleine NTP-Anfragen erzeugen große Antworten – für DDoS missbraucht | Monlist deaktivieren, Rate-Limiting |
NTP-Spoofing | Gefälschte Zeitantworten um Zertifikate ungültig zu machen | NTS (Network Time Security) |
Rogue NTP-Server | Angreifer betreibt eigenen NTP-Server um Zeit zu manipulieren | Feste NTP-Server konfigurieren, NTS |
Merkmal | Wert |
|---|---|
Port | 123 UDP |
Protokoll | UDP (Geschwindigkeit wichtiger als Zuverlässigkeit) |
Genauigkeit | Wenige Millisekunden im LAN, 10-100ms im Internet |
Nachfolger | PTP (Precision Time Protocol) – Mikrosekunden-Genauigkeit |
Verschlüsselte Version | NTS (Network Time Security) – Port 4460 TCP |
NTP synchronisiert Systemuhren im Netzwerk – Port 123 UDP
Die Hierarchie heißt Stratum – Stratum 0 sind Atomuhren, Stratum 1 direkt verbundene Server
NTP berechnet den Zeitversatz (Offset) und die Übertragungsverzögerung (Delay)
Falsche Systemzeit verursacht Fehler bei Kerberos, TLS, Logs und Datenbanken
pool.ntp.org ist der empfohlene öffentliche NTP-Pool
NTP-Amplification ist ein bekannter DDoS-Angriff
NTS (Network Time Security) verschlüsselt NTP-Kommunikation