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.
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.
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.