Passer au contenu principal

Administration (Linux)

Gestion du temps

L'heure système est critique en production : des logs avec des timestamps décalés rendent le diagnostic impossible, des certificats TLS invalides bloquent les services, et certains protocoles d'authentification (Kerberos, TOTP) ont une tolérance de quelques secondes seulement. La synchronisation du temps n'est pas optionnelle.

timedatectl : état du temps système

timedatectl              # état complet : heure, timezone, synchronisation NTP
timedatectl status       # équivalent

La sortie affiche l'heure locale, l'UTC, le fuseau horaire, et la ligne System clock synchronized: yes qui confirme que NTP fonctionne.

Configurer le fuseau horaire

timedatectl list-timezones | grep Europe    # lister les fuseaux disponibles
timedatectl set-timezone Europe/Paris       # appliquer
timedatectl                                # vérifier

Sur un serveur, les logs sont souvent plus lisibles en UTC : timedatectl set-timezone UTC. Cela évite les ambiguïtés lors des changements d'heure.

systemd-timesyncd : client NTP intégré

Sur Debian, systemd-timesyncd est le client NTP léger intégré à systemd. Il est actif par défaut et suffisant pour la grande majorité des serveurs.

systemctl status systemd-timesyncd
timedatectl show-timesync          # détails : serveur utilisé, offset, délai

Configuration dans /etc/systemd/timesyncd.conf :

[Time]
NTP=0.debian.pool.ntp.org 1.debian.pool.ntp.org
FallbackNTP=time.cloudflare.com
systemctl restart systemd-timesyncd

chrony : NTP avancé

chrony est plus précis et plus robuste que systemd-timesyncd, particulièrement adapté aux machines avec des variations importantes de charge, à celles qui sont régulièrement suspendues ou redémarrées, et aux serveurs qui doivent eux-mêmes distribuer le temps sur le réseau.

apt install chrony

Ne pas activer chrony et systemd-timesyncd simultanément : ils entrent en conflit.

systemctl disable --now systemd-timesyncd
systemctl enable --now chrony

Configuration dans /etc/chrony/chrony.conf :

server 0.debian.pool.ntp.org iburst
server 1.debian.pool.ntp.org iburst
server time.cloudflare.com iburst
chronyc tracking          # état de synchronisation : offset, RMS, fréquence
chronyc sources -v        # sources NTP actives et leur qualité
chronyc makestep          # forcer une synchronisation immédiate (grand écart)

En pratique

Sur un serveur Debian standard, vérifier que systemd-timesyncd est actif et synchronisé : timedatectl, ligne System clock synchronized: yes. Si la machine est dans un environnement isolé sans accès NTP public, configurer un serveur NTP interne dans timesyncd.conf. Préférer chrony sur les hyperviseurs (les VMs sous charge ont des dérives d'horloge importantes) et les serveurs qui doivent servir d'autres machines. Un décalage de temps se manifeste typiquement par des erreurs TLS inexpliquées, des tokens TOTP invalides ou des entrées de log avec des timestamps incohérents.