System
Difficulte: Beginner
4 min de lecture

NTP Client : Synchroniser l'heure de son système

Tutoriel pour installer et configurer un client NTP sur Linux afin de synchroniser l\\'heure système avec des serveurs de temps fiables.

Retour aux tutoriels
Pourquoi la synchronisation de l\'heure est-elle si importante ?
Une heure système précise est cruciale pour de nombreuses raisons : - Les logs doivent être horodatés correctement pour le dépannage et la corrélation d\'événements. - Les certificats de sécurité (SSL/TLS) ont une période de validité. - Les protocoles d\'authentification comme Kerberos sont très sensibles aux écarts de temps. - Les tâches planifiées (cron) doivent s\'exécuter au bon moment. - La cohérence des données dans les systèmes distribués et les bases de données.

Quel client NTP utiliser ?

Sur les systèmes Linux modernes, vous avez principalement trois choix :

  • systemd-timesyncd : Intégré à systemd. C\'est le client par défaut sur de nombreuses distributions modernes (comme Ubuntu 20.04+). Il est très léger et simple, parfait pour un client. Il ne peut pas servir de serveur NTP.
  • chrony : L\'alternative moderne à ntpd. Il est plus performant pour les systèmes qui ne sont pas toujours en ligne (ordinateurs portables) ou qui ont une connexion réseau instable. Il peut aussi servir de serveur NTP.
  • ntpd : L\'implémentation de référence historique. Toujours très robuste, mais souvent considéré comme plus lourd et complexe que ses alternatives pour un simple client.

Recommandation : Utilisez systemd-timesyncd si disponible. Si vous avez besoin de plus de fonctionnalités ou de servir le temps, utilisez chrony.

Configuration de systemd-timesyncd (le plus simple)

C\'est souvent déjà activé par défaut.

Étape 1 : Vérifier le statut

timedatectl status

Cherchez la ligne `NTP service: active`. Si c\'est le cas, vous n\'avez rien à faire !

Étape 2 : Activer si nécessaire

sudo timedatectl set-ntp true

Étape 3 : (Optionnel) Changer les serveurs NTP

Les serveurs sont configurés dans /etc/systemd/timesyncd.conf.

sudo nano /etc/systemd/timesyncd.conf

Décommentez et modifiez la ligne `NTP=` pour y mettre vos serveurs, séparés par des espaces.

[Time]
NTP=0.fr.pool.ntp.org 1.fr.pool.ntp.org

Redémarrez le service pour appliquer les changements :

sudo systemctl restart systemd-timesyncd

Configuration de chrony

Si vous préférez chrony ou si timesyncd n'est pas disponible.

Étape 1 : Installation

# D'abord, désactiver timesyncd s'il est actif
sudo timedatectl set-ntp false

# Sur Debian / Ubuntu
sudo apt-get install -y chrony

# Sur CentOS / RHEL
sudo yum install -y chrony

Étape 2 : Configuration

Le fichier de configuration est /etc/chrony/chrony.conf (ou /etc/chrony.conf).

sudo nano /etc/chrony/chrony.conf

La configuration par défaut utilise souvent des pools de serveurs. Vous pouvez les remplacer par des serveurs plus proches de votre localisation (ex: `fr.pool.ntp.org` pour la France).


# Utiliser des serveurs du pool NTP français.
pool 2.fr.pool.ntp.org iburst

# ... autres options

Étape 3 : Démarrer et activer le service

sudo systemctl start chronyd
sudo systemctl enable chronyd

Étape 4 : Vérifier la synchronisation

La commande chronyc est l'outil pour interagir avec le démon chronyd.

chronyc sources -v

Cette commande liste les sources de temps, leur état et le décalage.

chronyc tracking

Cette commande donne un résumé de la synchronisation de l\'horloge système.

Le paramètre `iburst`
L\'option iburst, présente dans les configurations par défaut, est très utile. Elle indique au client d\'envoyer une rafale de paquets au démarrage pour accélérer la première synchronisation.
Pare-feu
NTP utilise le port 123 en UDP. Si vous avez un pare-feu restrictif, assurez-vous que le trafic sortant sur ce port est autorisé.

Conclusion

Maintenir une heure système précise est une tâche de fond simple mais fondamentale pour tout administrateur système. Avec les outils modernes comme systemd-timesyncd et chrony, la configuration d\'un client NTP est devenue extrêmement simple. Il n\'y a aucune raison de ne pas l\'activer sur tous vos serveurs Linux.