Administration Système et Infrastructure

NTP et synchronisation horaire des infrastructures

Une horloge décalée de quelques minutes suffit à casser l'authentification Kerberos, à invalider des certificats et à rendre les journaux inexploitables. Voici comment construire une synchronisation horaire fiable.

Hiérarchie NTP des sources de référence de strate 1 jusqu'aux serveurs et équipements du réseau

L'heure exacte est une dépendance invisible de nombreuses fonctions : l'authentification Kerberos tolère par défaut un écart de seulement 5 minutes dans Active Directory, la validité des certificats dépend de dates, les journaux ne peuvent être corrélés qu'avec des horloges alignées, et certains protocoles de haute disponibilité ou bases de données répliquées y sont sensibles.

Objectif : comprendre NTP, concevoir une hiérarchie de synchronisation, la configurer sur Linux, Windows et les équipements réseau, et diagnostiquer les dérives.

Comment fonctionne NTP

NTP (Network Time Protocol), dans sa version 4 définie par la RFC 5905, synchronise les horloges à travers le réseau sur UDP 123.

Le client échange des messages horodatés avec un ou plusieurs serveurs. À partir de quatre horodatages (émission et réception de chaque côté), il calcule :

  • le délai aller-retour ;
  • le décalage (offset) entre son horloge et celle du serveur.

Il ne fait pas « sauter » brutalement l'heure en fonctionnement normal : il ajuste progressivement la fréquence de l'horloge locale pour rattraper le décalage. Un saut n'est appliqué qu'au démarrage ou en cas d'écart important, selon la configuration.

NTP interroge plusieurs sources et applique des algorithmes de sélection pour écarter celles qui sont incohérentes (falsetickers). Avec seulement deux sources en désaccord, le client ne peut pas savoir laquelle a raison : visez au moins trois ou quatre sources.

La notion de strate

Strate Description
0 Horloge de référence : récepteur GNSS (GPS, Galileo), horloge atomique, signal radio
1 Serveur directement relié à une horloge de strate 0
2 Serveur synchronisé sur une strate 1
3 et + Chaque niveau ajoute 1 ; 16 signifie « non synchronisé »

La strate indique la distance à la référence, pas la qualité absolue : un serveur de strate 2 proche et stable peut être préférable à une strate 1 lointaine.

Concevoir la hiérarchie dans l'entreprise

Une architecture courante et robuste :

  1. Deux à quatre serveurs NTP internes qui se synchronisent sur des sources externes fiables (pool public, serveurs de votre opérateur, d'un organisme national, ou un récepteur GNSS interne).
  2. Tous les équipements internes (serveurs, routeurs, commutateurs, pare-feu, hyperviseurs) se synchronisent sur ces serveurs internes.
  3. Les flux NTP sortants vers Internet ne sont autorisés que depuis les serveurs NTP internes.

Cette approche réduit la dépendance externe, simplifie le filtrage et garantit que tous les équipements partagent la même référence.

Le projet pool.ntp.org fournit des groupes de serveurs publics par zone, par exemple 0.fr.pool.ntp.org à 3.fr.pool.ntp.org.

Linux : chrony

chrony est l'implémentation NTP par défaut sur RHEL et dérivés, et un choix recommandé sur les autres distributions. Il converge rapidement et gère bien les machines virtuelles et les connexions intermittentes. Certaines distributions utilisent par défaut systemd-timesyncd, un client SNTP simple, suffisant pour un poste mais pas pour un serveur de temps.

Client

# /etc/chrony.conf (ou /etc/chrony/chrony.conf)
server ntp1.exemple.local iburst
server ntp2.exemple.local iburst
server ntp3.exemple.local iburst
makestep 1.0 3
rtcsync
  • iburst accélère la synchronisation initiale ;
  • makestep 1.0 3 autorise un saut si l'écart dépasse 1 seconde lors des 3 premières mises à jour ;
  • rtcsync recopie périodiquement l'heure dans l'horloge matérielle.

Serveur interne

pool 0.fr.pool.ntp.org iburst
pool 1.fr.pool.ntp.org iburst
allow 10.10.0.0/16

La directive allow autorise les clients du réseau interne à interroger ce serveur.

Vérifier

chronyc tracking            # décalage actuel, strate, source de référence
chronyc sources -v          # sources et état de sélection (* = source retenue)
timedatectl                 # synchronisation active, fuseau horaire

Windows et Active Directory

Dans un domaine, la synchronisation suit la hiérarchie du domaine :

  • l'émulateur PDC du domaine racine de la forêt se synchronise sur une source externe fiable ;
  • les autres contrôleurs se synchronisent sur la hiérarchie du domaine ;
  • les postes et serveurs membres se synchronisent sur un contrôleur de domaine.

Configuration de l'émulateur PDC :

w32tm /config /manualpeerlist:"ntp1.exemple.local,0x8 ntp2.exemple.local,0x8" /syncfromflags:manual /reliable:yes /update
Restart-Service w32time
w32tm /resync

Vérification sur n'importe quelle machine :

w32tm /query /status
w32tm /query /source
w32tm /stripchart /computer:ntp1.exemple.local /samples:5 /dataonly

Ne configurez pas manuellement une source externe sur les membres du domaine : vous briseriez la hiérarchie. Attention aussi aux machines virtuelles : un contrôleur de domaine virtualisé ne doit pas cumuler la synchronisation de l'hyperviseur et celle du domaine. Suivez les recommandations de votre plateforme de virtualisation.

Équipements réseau (Cisco IOS)

clock timezone CET 1 0
clock summer-time CEST recurring last Sun Mar 2:00 last Sun Oct 3:00
ntp server 10.10.99.40 prefer
ntp server 10.10.99.41
ntp source Vlan99
service timestamps log datetime msec localtime show-timezone

Vérification :

show ntp associations
show ntp status
show clock detail

Un astérisque devant une association indique la source retenue. Sur les plateformes récentes, NTP peut aussi être authentifié par clés symétriques.

Sécuriser NTP

  • Filtrez UDP 123 : seuls vos serveurs internes interrogent l'extérieur ; seuls vos clients interrogent vos serveurs.
  • Désactivez les requêtes de contrôle obsolètes (monlist sur les anciennes versions de ntpd), exploitées pour des attaques par amplification.
  • NTS (Network Time Security, RFC 8915) authentifie les réponses NTP grâce à TLS et protège contre l'usurpation. chrony le prend en charge (option nts sur une directive server), et plusieurs fournisseurs publics proposent des serveurs compatibles.

Diagnostiquer une dérive

Symptôme Piste
Échecs d'authentification Kerberos, erreurs de jonction au domaine Écart horaire supérieur à la tolérance
Certificats signalés « pas encore valides » Horloge en retard
Strate 16 ou « non synchronisé » Aucune source joignable : filtrage UDP 123, DNS des serveurs NTP
Décalage qui oscille Sources incohérentes, conflit entre synchronisation de l'hyperviseur et NTP
Heure exacte mais décalée d'une heure Fuseau horaire ou heure d'été mal configurés (NTP transporte l'heure UTC)

Erreurs courantes

  • Une seule source NTP, ou deux qui divergent.
  • Chaque équipement interroge Internet directement.
  • Confondre fuseau horaire et synchronisation.
  • Double synchronisation (hyperviseur + NTP) sur les machines virtuelles.
  • Oublier les équipements réseau, dont les journaux deviennent impossibles à corréler.

Conclusion

Une hiérarchie simple — sources externes fiables, serveurs internes redondants, tous les équipements synchronisés sur ces serveurs — suffit à éliminer toute une famille de pannes. Vérifiez régulièrement chronyc tracking, w32tm /query /status et show ntp status, et intégrez le décalage horaire à votre supervision.

Références