NTP (Network Time Protocol)
Définition
NTP (Network Time Protocol, RFC 5905) est un protocole réseau pour synchroniser les horloges des systèmes informatiques sur des réseaux de données commutés par paquets. Il maintient une précision temporelle à quelques dizaines de millisecondes sur Internet public et une précision sous-millisecondes sur un réseau local.
NTP est critique pour les systèmes distribués, la journalisation, les certificats de sécurité et la cohérence des bases de données.
Hiérarchie NTP (Stratum)
Stratum 0 : Horloge de référence (horloge atomique, GPS, radio)
│
▼
Stratum 1 : Connecté directement au Stratum 0 (serveur de temps)
│
▼
Stratum 2 : Synchronisé depuis Stratum 1
│
▼
Stratum 3 : Synchronisé depuis Stratum 2
│
▼
...
Stratum 15 : Dernier stratum valide
│
▼
Stratum 16 : Non synchronisé (erreur)
NTP vs SNTP
| Fonctionnalité |
NTP |
SNTP (Simple NTP) |
| Complexité |
Algorithme complet, filtrage |
Simplifié, échantillon unique |
| Précision |
Millisecondes |
Secondes (acceptable pour la plupart) |
| Cas d’usage |
Serveurs de temps, systèmes critiques |
IoT, embarqué, clients simples |
| Utilisation ressources |
Plus élevée |
Plus faible |
| Norme |
RFC 5905 |
RFC 4330 |
NTP dans l’infrastructure
| Composant |
Rôle NTP |
| Servers |
Doivent avoir une temps synchronisé pour les logs, l’authentification, les certificats |
| Databases |
Cohérence temporelle pour la réplication, les transactions |
| Kerberos |
Authentification basée sur le temps (limite de décalage de 5 minutes) |
| TLS/SSL |
La validité des certificats dépend de l’heure correcte |
| Logging |
Corrélation des événements sur des systèmes distribués |
| Kubernetes |
kubelet nécessite la synchronisation NTP |
| DNS |
La validation DNSSEC nécessite une heure précise |
Configuration NTP (Linux)
# Vérifier le statut NTP
timedatectl status
chronyc tracking
# Serveurs NTP à utiliser
# Public pool : pool.ntp.org
# Google : time.google.com
# AWS : 169.254.169.123 (service metadata)
# Azure : 168.63.129.16 (service metadata)
# systemd-timesyncd (simple)
# /etc/systemd/timesyncd.conf
# [Time]
# NTP=time.google.com pool.ntp.org
# FallbackNTP=0.pool.ntp.org 1.pool.ntp.org
# chrony (production-grade)
# /etc/chrony.conf
# server time.google.com iburst
# server pool.ntp.org iburst
# driftfile /var/lib/chrony/drift
Sécurité NTP
- Authentification NTP : Authentification par clé (rarement utilisée)
- Attaques d’amplification NTP : Serveurs NTP utilisés dans les DDoS (commande monlist)
- Mitigation : Désactiver monlist, restreindre l’accès NTP, utiliser SNTP pour les clients
- Firewall : Autoriser le port UDP 123 (sortant uniquement pour les clients)
Alternatives NTP
| Protocole |
Précision |
Cas d’usage |
| PTP (Precision Time Protocol) |
Microsecondes |
Trading financier, télécoms |
| GPS time |
Nanosecondes |
Oscillateurs disciplinés par GPS |
| NMEA |
Millisecondes |
Données récepteur GPS |
| IEEE 1588 (PTP) |
Sous-microseconde |
Automatisation industrielle |
Termes liés
- Tls — Kerberos nécessite des horloges synchronisées NTP
- Dns — NTP garantit des horodatages de monitoring cohérents
- Backup — NTP garantit des horodatages de sauvegarde cohérents
Références