1. Importance du NTP sur Ubuntu
Qu’est-ce que le NTP ?
NTP (Network Time Protocol) est un protocole conçu pour synchroniser avec précision l’heure des systèmes informatiques sur un réseau. Maintenir une heure système exacte est essentiel pour la cohérence des journaux, le traitement des transactions et la fiabilité des communications réseau. Si l’horloge du système dérive, des erreurs réseau ou des incohérences de données peuvent survenir, rendant la synchronisation précise de l’heure cruciale, notamment dans les environnements serveur.
Sur Ubuntu, chrony est recommandé car il fournit une synchronisation horaire précise même dans des réseaux instables. Chrony offre également une faible latence et une synchronisation rapide, ce qui le rend adapté aux environnements serveur et client.
2. Comment configurer le NTP
Installation et configuration de Chrony
Chrony est le client NTP par défaut sur Ubuntu 18.04 et versions ultérieures. Utilisez les étapes suivantes pour installer Chrony et configurer la synchronisation horaire à l’aide de serveurs NTP.
Étapes d’installation
sudo apt update
sudo apt install chrony
Ensuite, démarrez le service Chrony et activez-le pour un démarrage automatique.
sudo systemctl start chrony
sudo systemctl enable chrony
Le fichier de configuration se trouve à /etc/chrony/chrony.conf. Si vous souhaitez utiliser des serveurs NTP situés au Japon, configurez-le comme suit :
server ntp.nict.jp iburst
server 0.jp.pool.ntp.org iburst
server 1.jp.pool.ntp.org iburst
server 2.jp.pool.ntp.org iburst
L’option iburst accélère la synchronisation initiale lors de la connexion à un serveur NTP.
3. Optimisation et sélection des serveurs NTP
Utilisation du projet NTP Pool
Le projet NTP Pool fournit des serveurs NTP optimisés par région, provenant du monde entier. En configurant plusieurs serveurs NTP, la fiabilité augmente, garantissant que si un serveur devient indisponible, d’autres peuvent poursuivre la synchronisation horaire sans interruption.
L’exemple ci-dessous montre une configuration qui utilise des serveurs situés au Japon :
server ntp.nict.jp iburst
server 0.jp.pool.ntp.org iburst
server 1.jp.pool.ntp.org iburst
server 2.jp.pool.ntp.org iburst
4. Configuration du fuseau horaire
Utilisation de la commande timedatectl
Par défaut, Ubuntu utilise UTC comme fuseau horaire du système. Vous pouvez le changer en heure normale du Japon (JST) en utilisant la commande suivante :
sudo timedatectl set-timezone Asia/Tokyo
Après avoir effectué le changement, vérifiez les paramètres du fuseau horaire actuel avec :
timedatectl
5. Dépannage
Lorsque le NTP ne se synchronise pas
Vérifier le pare-feu
NTP utilise le port UDP 123, et la synchronisation peut échouer si le pare-feu bloque ce port. Ouvrez le port 123 avec la commande suivante :
sudo ufw allow 123/udp
Vérification des faux-tickers
Utilisez la commande ntpq -p pour vérifier si les serveurs NTP fonctionnent correctement. Les serveurs fournissant une heure inexacte sont marqués d’un symbole x. Si vous en détectez, supprimez ou remplacez ces serveurs dans votre configuration.
Erreur Stratum 16
Si le serveur NTP ne peut pas se synchroniser avec un serveur en amont, une erreur Stratum 16 se produit. Cela indique un problème de connectivité ou de configuration. Vérifiez vos paramètres réseau et reconfigurez vos serveurs NTP pour assurer la synchronisation avec des sources en amont fiables.
Synchronisation manuelle de l’heure
Pour synchroniser manuellement l’heure avec Chrony, exécutez la commande suivante :
sudo ntpdate ntp.nict.jp
Vous pouvez également consulter les journaux de Chrony pour diagnostiquer les problèmes de synchronisation :
sudo journalctl -u chrony
6. Optimisation du NTP dans les environnements à forte charge
Ajustement de minpoll et maxpoll
Dans les environnements nécessitant une synchronisation temporelle de haute précision, ajuster les intervalles d’interrogation du NTP permet des mises à jour plus fréquentes et aide à minimiser la dérive temporelle. L’exemple de configuration ci-dessous augmente la fréquence de synchronisation :
server ntp.nict.jp iburst minpoll 4 maxpoll 10
Gestion du NTP avec Juju
Dans les environnements cloud à grande échelle, Juju peut automatiser les déploiements de services NTP. Juju surveille les charges des hôtes et sélectionne automatiquement l’hôte optimal en tant que serveur NTP. Déployez NTP via Juju comme suit :
juju deploy cs:ntp ntp
juju config ntp auto_peers=true
Cela permet une gestion automatisée de NTP, distribuant efficacement la charge et assurant une synchronisation temporelle efficace.
7. Amélioration de la sécurité
Contrôle d’accès pour les serveurs NTP
Pour améliorer la sécurité, vous pouvez restreindre l’accès au serveur NTP à des adresses IP spécifiques. Ajoutez des règles de contrôle d’accès à /etc/chrony/chrony.conf comme indiqué ci-dessous pour autoriser les requêtes uniquement depuis des réseaux approuvés :
allow 192.168.1.0/24
Cela empêche les requêtes NTP non autorisées provenant d’hôtes externes et renforce la sécurité du réseau interne.
