Guide de configuration NTP sous Ubuntu : Gardez vos serveurs synchronisés

目次

1. Introduction : Pourquoi la synchronisation du temps est importante

Problèmes causés par la dérive de l’horloge système

Dans les systèmes Linux, y compris Ubuntu, il est crucial de maintenir une heure précise. Bien que cela puisse sembler un problème mineur d’inexactitudes d’horloge, la dérive du temps peut entraîner des problèmes critiques dans le fonctionnement des serveurs et les environnements d’exécution des applications.

Par exemple, les problèmes suivants peuvent survenir :

  • Journaux incohérents
    Si les horodatages dans les journaux système et les journaux d’application ne sont pas alignés, il devient difficile d’identifier la cause des problèmes lors du dépannage.
  • Tâches cron défaillantes
    Les tâches planifiées (comme les sauvegardes et le traitement par lots) peuvent ne pas sécuter aux moments prévus, pouvant ainsi s’exécuter à des moments inattendus.
  • Échecs de certificats SSL et d’authentification de sécurité
    Des informations temporelles précises sont nécessaires pour la communication HTTPS et l’authentification SSH. Si l’heure du système est incorrecte, les certificats peuvent être considérés comme « expirés », entraînant des erreurs de connexion.

Ces problèmes peuvent avoir un impact particulièrement sévère lorsqu’on exploite plusieurs serveurs synchronisés sur un réseau.

Rôle et importance du NTP

Pour prévenir de tels problèmes, NTP (Network Time Protocol) est utilisé. NTP communique avec desurs de temps sur Internet ou sur un réseau local afin de corriger automatiquement l’heure du système.

Ubuntu propose plusieurs outils liés au NTP, dont ntpd, chrony et systemd-timesyncd. Cet article se concentrera sur ntpd (Network Time Protocol daemon), en fournissant une explication détaillée de son installation et de son utilisation sur Ubuntu.

En particulier pour les serveurs destinés à une exploitation à long terme et les systèmes nécessitant une cohérence des journaux, la stabilité de ntpd est très appréci.

Le chapitre suivant présentera ce qu’est ntpd, ses rôles de base et les options disponibles sous Ubuntu.

年収訴求

2. Qu’est-ce que ntpd? Son rôle et ses options sous Ubuntu

Vue d’ensemble et fonctionnalités de ntpd

ntpd (démon du protocole de temps réseau) est un programme démon qui utilise NTP pour maintenir une heure système précise. Il communique périodiquement avec des serveurs NTP sur Internet ou sur un réseau local et ajuste automatiquement l’horloge du système.

Une caractéristique clé de ntpd est sa « synchronisation douce », qui corrige progressivement les différences de temps. Cette conception évite les changements brusques d’heure qui pourraient nuire aux systèmes et aux applications en cours d’exécution.

De plus, ntpd prend en charge des fonctionnalités NTP avancées telles que symmetric active mode et authentication, ce qui en fait un service de synchronisation horaire robuste adapté aux environnements d’entreprise.

Outils de synchronisation horaire disponibles dans Ubuntu

Ubuntu propose les options suivantes pour la synchronisation horaire :

  • ntpd (ntp package)
    Largement utilisé dans les environnements nécessitant un fonctionnement à long terme et une configuration détaillée. Il offre une excellente flexibilité et stabilité, permettant une synchronisation horaire de haute précision en se connectant à des serveurs NTP publics.
  • chrony
    Une alternative à ntpd qui a attiré l’attention pour sa grande précision et sa vitesse de synchronisation rapide après le démarrage. Il fonctionne bien dans les environnements à faibles spécifications et les machines virtuelles, et de nombreuses distributions modernes adoptent chrony comme défaut.
  • systemd-timesyncd
    Un service de synchronisation horaire léger activé par défaut dans Ubuntu 20.04 et versions ultérieures. Il est simple et facile à utiliser, mais ses fonctionnalités sont limitées, le rendant inadapté aux configurations avancées ou à une utilisation comme serveur NTP local.

Raisons de choisir ntpd et ses avantages

La principale raison d’adopter ntpd sous Ubuntu est sa fiabilité et stabilité. C’est un choix solide, notamment dans les cas suivants :

  • Lorsque une haute précision horaire est requise pour des serveurs fonctionnant sur le long terme.
  • Lorsque vous souhaitez mettre en place un serveur NTP au sein d’un réseau local.
  • Pour les applications d’entreprise nécessitant une authentification et un contrôle avancé.

De plus, ntpd présente l’avantage d’être compatible avec de nombreux systèmes existants et d’avoir fait ses preuves, ce qui réduit les inquiétudes lors de la mise en œuvre.

3. Installation et configuration initiale de ntpd sur Ubuntu

Procédure d’installation de ntpd

Pour utiliser ntpd sur Ubuntu, vous devez d’abord installer le paquet ntp. Vous pouvez facilement l’installer en suivant les étapes suivantes :

sudo apt update
sudo apt install ntp

Cette commande installera automatiquement ntpd et ses fichiers associés. Notez que sur certaines versions d’Ubuntu, chrony ou systemd-timesyncd peuvent être activés par défaut. Dans ce cas, il est recommandé de les désactiver ou les supprimer au préalable.

sudo systemctl stop systemd-timesyncd
sudo systemctl disable systemd-timesyncd

Activation du service et vérification du démarrage

Une fois l’installation terminée, activez le service ntpd et vérifiez son statut de démarrage.

sudo systemctl enable ntp
sudo systemctl start ntp
sudo systemctl status ntp

Si la commande status indique « active (running) », cela signifie que ntpd a démarré avec succès.

Vérification et modification du fichier de configuration initial

La configuration de ntpd est définie dans le fichier /etc/ntp.conf. La configuration par défaut après l’installation comprend plusieurs serveurs NTP par défaut (généralement de la série pool.ntp.org).

Tout d’abord, vérifions le contenu du fichier de configuration.

cat /etc/ntp.conf

Si vous souhaitez spécifier des serveurs aux États-Unis, vous pouvez les modifier comme suit :

server us.pool.ntp.org iburst

L’option iburst est recommandée car elle améliore la vitesse de synchronisation lors de la connexion initiale.

Après avoir modifié la configuration, redémarrez le service ntpd pour appliquer les changements.

sudo systemctl restart ntp

Vérification de la synchronisation automatique de l’heure système

Après le démarrage, ntpd synchronise automatiquement l’heure avec le serveur. Pour vérifier son bon fonctionnement, la commande suivante est utile :

ntpq -p

Cette commande vous permet de voir la liste des serveurs NTP connectés ainsi que des informations détaillées telles que le délai et le décalage.

4. Configuration et personnalisation des serveurs NTP

Sélection des serveurs NTP recommandés

Un aspect important de la configuration de ntpd consiste à choisir les serveurs NTP avec lesquels se synchroniser. Lors d’une connexion via Internet, spécifier des serveurs NTP fiables aux États‑Unis peut garantir une synchronisation horaire plus stable.

Les serveurs NTP publics typiques aux États‑Unis comprennent :

  • us.pool.ntp.org (Un pool de serveurs NTP aux États‑Unis)
  • Vous pouvez également trouver des pools régionaux comme north-america.pool.ntp.org ou des pools d’états spécifiques si nécessaire.

Ces serveurs fonctionnent à partir d’horloges atomiques de haute précision et peuvent être utilisés à titre personnel sans autorisation spéciale.

Vous pouvez configurer la synchronisation avec ces serveurs en écrivant ce qui suit dans /etc/ntp.conf:

server us.pool.ntp.org iburst
server north-america.pool.ntp.org iburst

Éléments de configuration détaillés dans ntp.confh3>

En plus de spécifier les serveurs NTP, /etc/ntp.conf permet un contrôle fin du comportement de ntpd. Voici quelques éléments de configuration typiques :

  • restrict directive
    Définit les restrictions et les permissions pour les connexions des clients. Pour des raisons de sécurité, les connexions inutiles doivent être restreintes. Exemple : autoriser les connexions depuis le réseau local
  restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap

<>

  • driftfile
    Spécifie le fichier qui enregistre la dérive de l’horloge système (déviations subtiles). En général, le réglage par défaut convient.
  driftfile /var/lib/ntp/ntp.drift

 

Création d’un serveur NTP au sein d’un réseau local

Vous pouvez également utiliser ntpd sur Ubuntu pour fonctionner comme un serveur NTP qui distribue l’heure à d’autres appareils de votre réseau local. Cette configuration est efficace dans les environnements sans accès à Internet ou où une gestion cohérente du temps sur plusieurs appareils est requise.

Voici un exemple de procédure de configuration :

  1. Ajoutez une règle restrict à /etc/ntp.conf pour autoriser l’accès local : restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
  2. Sur les PC clients, configurez-les pour qu’ils se réfèrent à ce serveur NTP local : server 192.168.1.10 iburst # Local IP of the NTP server
  3. Ouvrez le port du serveur NTP (autorisez le port UDP 123 dans le pare-feu) : sudo ufw allow 123/udp

Si la communication est bloquée, la synchronisation horaire échouera, et la commande ntpq n’affichera pas l’état de connexion au serveur.

5. Vérification du fonctionnement de ntpd et dépannage

Comment vérifier l’état du service

Pour vérifier que ntpd fonctionne correctement, utilisez la commande suivante :

sudo systemctl status ntp

Si elle affiche active (running), ntpd fonctionne normalement. Si elle indique inactive ou failed, il peut y avoir une erreur de configuration ou un problème de dépendance empêchant son démarrage.

Pour examiner les journaux en détail, la commande suivante est utile :

journalctl -u ntp

Cela vous permet de visualiser l’historique de démarrage et les messages d’erreur du service ntpd dans l’ordre chronologique.

Commande pour vérifier l’état de synchronisation (ntpq -p)

La commande ntpq -p est la plus couramment utilisée pour vérifier si ntpd se synchronise correctement avec les serveurs NTP.

ntpq -p

Exemple de sortie :

     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*time.cloudflare. 172.64.250.202  2 u   57   64  377    0.876   -0.012   0.009
+ntp.ubuntu.com   170.247.169.130  2 u   49   64  377    1.234   +0.056   0.015
 stratum2.ntp.br 162.229.5.20    2 u   51   64  377  105.234   -0.123   0.021
 LOCAL(0)        .LOCL.         10 l   --   64    0    0.000    0.000   0.000

La signification de chaque colonne est la suivante :

  • remote: Le nom du serveur NTP connecté
  • st: Le niveau de stratum du serveur (niveau hiérarchique), où 1 est le plus précis (par ex., horloge atomique)
  • reach: Un registre à décalage de 8 bits indiquant l’historique de réussite des huit dernières tentatives de connexion
  • delay: Le délai aller-retour du réseau en millisecondes (ms)
  • offset: La différence de temps entre votre système et le serveur en millisecondes (ms)
  • jitter: La variance statistique du décalage sur plusieurs échantillons

Le serveur avec un astérisque (*) au début est la source de synchronisation actuellement sélectionnée.

Erreurs courantes et leurs solutions

Voici quelques erreurs courantes que vous pourriez rencontrer lors de la mise en place de ntpd ainsi que leurs solutions correspondantes :

1. Rien n’est affiché avec ntpq -p / reach vaut 0

  • Cause: Le port UDP 123 peut être bloqué par un pare-feu ou un route.
  • Solution: Vérifiez les paramètres du pare-feu sur le serveur et le client pour vous assurer que le trafic NTP est autorisé.
sudo ufw allow 123/udp

2. L’affichage indique que System clock not synchronized n’est pas synchronisée

  • Cause: ntpd peut ne pas être en cours d’exécution, ou il peut être en conflit avec un autre service de synchronisation (comme systemd-timesd).
  • Solution: Désactivez les services de synchronisation temporelle inutiles et redémarrez ntpd.
sudo systemctl disable systemd-timesyncd
sudo systemctl restart ntp

3. Échec de la résolution des noms de serveurs NTP

  • Cause: Problèmes de configuration DNS ou de réseau.
  • Solution: Vérifiez que la résolution de noms fonctionne (par ex., en utilisant ping us.pool.ntp.org) et corrigez les paramètres du serveur DNS si nécessaire.

4. L’heure est nettement décalée mais ne se synchronise pas

  • Cause: ntpd n’ajuste pas automatiquement l’heure si la différence est trop grande (pour des raisons de sécurité).
  • Solution: Réglez manuellement l’heure initiale, puis redémarrez ntpd.
sudo ntpd -gq  # Perform an immediate synchronization once
sudo systemctl restart ntp

Pour une surveillance continue

Dans un environnement de production, il est judicieux de mettre en place un script qui consigne périodiquement la sortie de ntpq -p et crée des alertes en cas d’anomalies. Détecter des interruptions soudaines dans les journaux ou une valeur de reach constamment basse peut aider à identifier les problèmes tôt.

6. Comparaison de ntpd avec d’autres outils de synchronisation de l’heure

Principaux outils de synchronisation horaire utilisés sous Ubuntu

Plusieurs outils sont disponibles pour la synchronisation de l’heure dans les environnements Ubuntu. Chacun possède ses propres caractéristiques, et le choix dépend de l’usage prévu et des exigences du système. Les trois principaux outils sont :

  • ntpd (paquet ntp)
  • chrony
  • systemd-timesyncd

Comprendre les différences entre eux vous aidera à choisir la méthode de synchronisation optimale pour votre environnement.

Fonctionnalités de ntpd

  • Avantages
  • Ancien et stable avec une très grande fiabilité.
  • Riche en fonctionnalités et permet une configuration détaillée (mise en place d’un serveur NTP local, authentification, modes symétriques, etc.).
  • Très compatible avec les serveurs NTP publics, avec de nombreuses informations de dépannage disponibles.
  • Inconvénients
  • La synchronisation initiale après le démarrage peut parfois prendre du temps.
  • L’adaptabilité aux environnements réseau modernes (virtualisation, réseaux variables) est quelque peu moindre.

Fonctionnalités de chrony

  • Avantages
  • Synchronisation initiale rapide, corrige rapidement les écarts de temps après le démarrage.
  • Haute précision même dans les machines virtuelles et les environnements réseau variables (ordinateurs portables, utilisation de VPN).
  • Capacités d’apprentissage autonome (améliore la précision en fonction des conditions environnantes), offrant souvent une meilleure précision que ntpd.
  • Inconvénients
  • La configuration pour fonctionner comme serveur NTP local est légèrement plus complexe.
  • La documentation et les exemples sont moins nombreux comparés à ntpd.

Fonctionnalités systemd-timesyncd

  • Avantages
  • Activé par défaut dans Ubuntu 20.04 et versions ultérieures, très facile à installer et à gérer.
  • Fonctionnalités de synchronisation minimales avec une très faible consommation de ressources.
  • Bien intégré à systemd, ce qui le rend à utiliser avec les configurations Ubuntu standard.
  • Inconvénients
  • Fonctionnalité limitée, ne peut pas être utilisé pour des configurations manuelles avancées ou comme serveur NTP local.
  • Les fonctionnalités de précision et de journalisation sont basiques, non adaptées aux systèmes à grande échelle.

Tableau comparatif des outils (Résumé)

Fonctionnaliténtpdchronysystemd-timesyncd
PrécisionÉlevéTrès élevéNormal
Vitesse de synchronisation initialePeut être lentTrès RapideNormal
Serveur NTP local○ (Légèrement complexe)× (Not possible)
Flexibilité de configurationÉlevéMoyenBas
Adaptabilité aux environnements virtuelsIl semble que le texte à traduire n’ait pas été fourni. Pourriez‑vous s’il vous plaît copier‑colle le fragment HTML en anglais que vous souhaitez traduire ?Je suis désolé, mais je ne vois pas le fragment HTML que vous souhaitez traduire. Pourriez‑vous me le fournir ?
Historique prouvé & informationsJe suis désolé, mais je ne vois pas le fragment HTML que vous souhaitez traduire. Pourriez‑vous me le fournir ?
Cas d’utilisation recommandésServeurs, uniformité organisationnelleEnvironnements virtuels, ordinateurs portablesPCs uniques, débutants

Recommandations selon le scénario d’utilisation

  • Utilisation serveur (environnements toujours actifs)
     → ntpd ou chrony sont recommandés. La stabilité et la précision sont importantes.
  • Environnements cloud, machines virtuelles, ordinateurs portables
     → chrony est le plus flexible et le plus précis.
  • Synchronisation horaire simple pour un PC unique
     → systemd-timesyncd est suffisant.

7. Questions fréquemment posées (FAQ)

Q1. ntpd est-il installé par défaut sur Ubuntu 22.04?

A1.
Non, ntpd n’est pas installé par défaut sur Ubuntu 22.04. systemd-timesyncd est activé par défaut pour la synchronisation de base de l’heure. Pour utiliser ntpd, vous devez installer explicitement le paquet ntp.

sudo apt install ntp

Après l’installation, il est également recommandé de désactiver systemd-timesyncd pour éviter les conflits.

Q2. ntpq -p ne s’affiche pas correctement. Que faire ?

A2.
Plusieurs raisons peuvent en être la cause :

  • Service non démarré: Vérifiez avec sudo systemctl status ntp et démarrez si nécessaire.
  • Échec de la communication avec le serveur NTP: Vérifiez si votre pare-feu bloque le port UDP 123.
  • Erreurs dans le fichier de configuration: Vérifiez qu’il n’y a pas de fautes de frappe dans /etc/ntp.conf.

Tout d’abord, vérifiez le fonctionnement de base avec la commande suivante :

ntpq -p

Si la sortie est vide ou que la valeur reach est 0, il peut y avoir un problème de communication avec les serveurs externes.

Q3. Dois-je choisir ntpd ou chrony ?

A3.
Le meilleur outil dépend de votre environnement d’utilisation :

  • Serveurs physiques fonctionnant depuis longtemps ou mise en place d’un serveur NTP localntpd est recommandé pour sa stabilité.
  • Environnements virtuels, ordinateurs portables ou environnements réseau variables (Wi‑Fi, etc.)chrony offre une plus grande précision et rapidité.
  • Un simple réglage de l’heure suffitsystemd-timesyncd peut gérer cela facilement.

Q4. Que fait la commande ntpd -gq ?

A4.
ntpd -gq est une commande qui effectue une synchronisation ponctuelle avec le serveur NTP puis se termine immédiatement.

  • -g: Autorise sauts de temps importants pour corriger de grandes disparités.
  • -q: Quitte après une synchronisation unique (ne fonctionne pas comme un démon).

Cette commande peut être utilisée pour régler initialement l’heure correcte si l’horloge du système est fortement décalée et n’est pas corrigée par le service habituel ntpd.

Q5. Y a-t-il un avantage à spécifier plusieurs serveurs NTP ?

A5.
Oui, spécifier plusieurs serveurs NTP offre une redondance et améliore la fiabilité. Si un serveur échoue ou devient inaccessible, votre système peut toujours obtenir les informations de temps auprès des autres serveurs, assurant une synchronisation stable.

Exemple de configuration (/etc/ntp.conf):

server us.pool.ntp.org iburst
server time.google.com iburst
server ntp.cloudflare.com iburst

8. Conclusion : améliorer la fiabilité du système grâce à une synchronisation temporelle stable

Réaffirmer les avantages de ntpd

Dans les systèmes Ubuntu, la synchronisation précise de l’heure n’est pas seulement une question de commodité, mais un élément crucial qui impacte directement la sécurité, le dépannage, la gestion des journaux et la précision des processus automatisés.

Cet article a expliqué de manière exhaustive les bases du NTP (Network Time Protocol), le mécanisme de synchronisation de l’heure utilisant ntpd, les méthodes d’installation, la personnalisation de la configuration, la vérification du fonctionnement, et même les comparaisons avec d’autres outils.

Conseils aux lecteurs

Le choix de l’outil de synchronisation de l’heure à adopter sous Ubuntu dépend de l’objectif du système, de sa configuration et de ses exigences de disponibilité.
Cependant, le principe selon lequel « un fonctionnement stable sans une heure précise est impossible » reste valable pour tous les environnements.

  • Pour une utilisation serveur et lorsque la gestion des journaux est importante → Configurez correctement ntpd ou chrony.
  • Pour une utilisation simple sur un PC uniquesystemd-timesyncd offre une mise en œuvre facile.

La précision de la synchronisation de l’heure peut passer inaperçue dans les opérations quotidiennes, mais elle servira sans aucun doute comme un point de référence précieux lors du dépannage.

Nous vous encourageons à utiliser cet article comme guide pour mettre en place le mécanisme de synchronisation de l’heure optimal pour votre environnement Ubuntu.