GNU/Linux >> Tutoriels Linux >  >> Linux

Utiliser NTP pour synchroniser l'heure

Vous pouvez facilement conserver l'exactitude de la date et de l'heure de votre système en utilisant le protocole NTP (Networktime Protocol).

Avoir une horloge précise sur votre serveur garantit que les horodatages des e-mails envoyés depuis votre machine sont corrects. Une horloge précise est particulièrement utile lorsque vous avez besoin de consulter les journaux à une heure particulière de la journée.

Si vous ne réglez pas vous-même occasionnellement l'horloge système, l'heure s'éloignera lentement d'un réglage parfaitement précis. C'est là que NTP est utile.

Qu'est-ce que NTP ?

NTP vous permet de synchroniser automatiquement l'heure de votre système avec un serveur distant. Le NTP peut être utilisé pour mettre à jour l'horloge sur une machine avec un serveur distant. Cela permet de maintenir l'heure exacte de votre machine en se synchronisant avec des serveurs connus pour avoir des heures précises. NTP synchronise également les horloges de plusieurs machines, ce qui facilite la correspondance des entrées de journal pour un événement sur plusieurs serveurs.

Il est facile de configurer un serveur NTP pour régler régulièrement l'horloge de votre machine. Il est également possible de compliquer un peu les choses si vous avez besoin que votre horloge soit précise à la milliseconde au lieu de la seconde à la seconde près.

Installer

La première chose à faire est d'installer le serveur NTP. Récupérez le colis en exécutant :

Systèmes d'exploitation Ubuntu / Debian :

sudo aptitude update
sudo aptitude install ntp

CentOS :

sudo yum install ntp

Après avoir installé NTP, vous pouvez vous assurer que le service s'exécute au démarrage en exécutant la commande suivante :

sudo /sbin/chkconfig ntpd on

Fedora / RHEL :

sudo yum install ntp

Après avoir installé NTP, vous pouvez vous assurer que le service s'exécute au démarrage en exécutant la commande suivante :

sudo chkconfig ntpd on

Démarrer le service

Pour vous assurer que le service NTP démarre après son installation, exécutez la commande suivante :

Systèmes d'exploitation Ubuntu / Debian / CentOS / RHEL :

sudo /etc/init.d/ntp start

Fédora :

sudo /etc/init.d/ntpd start

Comme d'habitude pour les services Linux®, vous pouvez arrêter ou redémarrer le service NTP en exécutant la commande précédente avec stop ou restart comme argument au lieu de start .

Démarrage rapide

La plupart des gens veulent juste faire fonctionner NTP et n'ont pas besoin de synchroniser leur horloge pour une précision de l'ordre de la milliseconde. Dans ce cas, vous n'avez rien d'autre à faire. Lorsque vous avez installé NTP, il vous a configuré des serveurs par défaut avec lesquels synchroniser, afin que NTP synchronise automatiquement votre horloge. Félicitations pour un travail bien fait !

Le fichier .ntpconf

Si vous souhaitez utiliser NTP pour synchroniser plusieurs de vos propres machines, ou si vous souhaitez choisir des serveurs NTP autres que ceux par défaut, vous pouvez trouver le fichier de configuration NTP sur /etc/ntp.conf .

Quelques paramètres peuvent être modifiés, mais les seuls paramètres intéressants pour la plupart des utilisateurs incluent les entrées de serveur. Utilisez les paramètres par défaut de votre distribution Linux spécifique.

Avec plus d'une entrée de serveur, votre serveur NTP interroge tous les serveurs et sélectionne une heure sur laquelle la plupart des serveurs interrogés sont d'accord. Étant donné que NTP utilise trois serveurs ou plus, votre horloge est plus précise que si elle n'en utilise qu'un.

L'ajout de l'option iBurst après l'adresse du serveur accélère légèrement la synchronisation NTPtime. Bien que cela soit utile, ce n'est pas essentiel.

L'option dynamique indique à NTP qu'il peut réessayer un serveur configuré ultérieurement s'il n'est pas disponible à un moment donné. L'option dynamique est utile lorsque NTP s'exécute sur une machine qui n'a pas toujours accès à Internet. Ce n'est pas nécessaire sur une machine avec une connexion dédiée.

Sécurité NTP

Protégez-vous contre les attaques de serveur NTP en ajoutant disable monitor à votre /etc/ntp.conf dossier. La désactivation de la surveillance empêche les requêtes distantes indésirables qui utilisent des commandes d'anciennes versions de NTP, telles que monlist .

Synchroniser plusieurs serveurs

Si vous avez plusieurs machines à synchroniser, il est préférable d'en désigner une comme serveur NTP maître. Configurez le serveur maître pour qu'il se connecte à un serveur NTP externe, puis synchronisez les autres machines avec le maître. Cette configuration réduit le nombre de connexions sortantes et garantit que toutes vos machines ont leur heure réglée sur la même valeur. Cette configuration nécessite des modifications des paramètres du serveur dans ntp.conf fichiers sur chaque machine.

Configurez les serveurs externes que vous souhaitez utiliser sur la machine maître. Par exemple, si vous souhaitez utiliser les serveurs de pool NTP, vous pouvez définir les valeurs du serveur dans le maître ntp.conf fichier vers :

server 0.pool.ntp.org iburst
server 1.pool.ntp.org iburst
server 2.pool.ntp.org iburst
server 3.pool.ntp.org iburst

Pointez le ntp.conf à votre serveur maître sur toutes les autres machines qui doivent synchroniser l'heure. Par exemple, si votre serveur maître est main.example.com , vous modifieriez le ntp.conf fichiers sur les machines secondaires afin que les entrées du serveur soient les suivantes :

server main.example.com iburst

Après avoir défini les paramètres du serveur et vérifié que les entrées iptables ne bloquent pas les connexions à votre serveur NTP principal, redémarrez les services NTP sur chaque machine pour les synchroniser.

Ajustement d'iptables

NTP utilise le port UDP 123 pour mener ses activités, soit en se connectant à un autre serveur NTP, soit en acceptant les connexions entrantes. Si vous avez des iptables filtrant le trafic entrant sur le serveur NTP principal de votre cluster, vous devez ouvrir le port 123 au trafic UDP pour permettre aux autres serveurs de s'y connecter. Vous pouvez ouvrir le port 123 pour le trafic UDP avec les arguments iptables suivants :

-I INPUT -p udp --dport 123 -j ACCEPT
-I OUTPUT -p udp --sport 123 -j ACCEPT

Choisir un serveur NTP

Lorsque vous synchronisez une ou plusieurs machines via NTP, vous souhaitez qu'au moins l'une d'entre elles règle son heure à partir d'un serveur externe fiable. De nombreux serveurs publics sont soit synchronisés directement à partir d'une horloge atomique (garantissant une heure absolument précise), soit synchronisés à partir d'un autre serveur qui se synchronise sur une horloge atomique.

Listes de serveurs NTP publics

La meilleure source pour les listes de serveurs NTP publics est le NTP ServersWebHome sur le site mainNTP. Le site contient une description des serveurs disponibles et la barre latérale contient des liens vers trois niveaux de serveurs NTP :principal, secondaire et pool.

Le choix du type de serveur à partir duquel synchroniser dépend de la précision dont vous avez besoin pour vos serveurs.

Serveurs de pool NTP

Pour la plupart des utilisateurs, les serveurs de pool sont le meilleur choix. Les serveurs de pool sont des machines qui se sont portées volontaires pour mettre leur serveur NTP à la disposition du public. Ils se synchronisent généralement à partir d'un serveur NTP secondaire, de sorte que leur heure est précise, mais pas nécessairement précise à la milliseconde près.

La plupart des utilisateurs n'ont pas besoin que leur temps machine soit précis à la milliseconde près; ils veulent juste savoir quelle heure il est. Utilisez les serveurs de pool sauf si vous avez besoin d'une précision extrême.

L'utilisation des serveurs de pool NTP est aussi simple que de définir les entrées de serveur dans votre ntp.conf fichier vers :

server 0.pool.ntp.org iburst
server 1.pool.ntp.org iburst
server 2.pool.ntp.org iburst
server 3.pool.ntp.org iburst

Pour vous assurer que vous vous connectez uniquement aux serveurs de pool dans votre propre pays ou région, visitez la page des serveurs de pool pour des adresses plus spécifiques. Pour la plupart des gens, les entrées ci-dessus sont plus que suffisantes. Ces adresses tournent parmi une énorme liste de serveurs NTP bénévoles dans le monde entier, de sorte que la charge sur une machine n'est jamais trop importante.

Si vous souhaitez contribuer au pool NTP après avoir configuré votre serveur NTP, obtenez des détails sur la façon de le faire sur le site Web du pool.

Serveurs principaux et secondaires

Les deux autres niveaux de serveurs NTP sont les serveurs principal et secondaire. Un serveur primaire obtient son heure directement d'une horloge atomique (ou de satellites GPS, qui utilisent des horloges atomiques). Les horloges atomiques sont chères, il n'y a donc pas beaucoup de serveurs primaires. Vous n'êtes pas obligé d'utiliser un serveur primaire, sauf si vous recherchez une précision scientifique extrême.

Un serveur secondaire reçoit généralement son heure d'un serveur principal. Si vous voulez une précision au niveau de la milliseconde, avoir trois serveurs secondaires dans votre ntp.conf fonctionne bien.

Vous pouvez voir quels serveurs publics sont disponibles dans l'un ou l'autre des niveaux en sélectionnant l'une ou l'autre des listes dans NTP ServersWebHome. Avant de sélectionner et d'utiliser un serveur, vérifiez les détails de ce serveur comme suit :

  • ISO : La colonne ISO répertorie le pays d'origine de ce serveur particulier.
  • Règle d'accès : Le champ AccessPolicy vous indique quelle est la politique d'accès pour ce serveur. Accès libre signifie que le serveur peut être utilisé par le public, sous réserve des exigences de notification du serveur.
  • Notifier : Le champ Notifier pour les serveurs secondaires répertorie les préférences de cet administrateur de serveur concernant s'il doit être notifié avant la synchronisation avec son serveur NTP. Les administrateurs qui souhaitent être notifiés essaient généralement de gérer le trafic vers leur serveur, alors assurez-vous et respectez leurs souhaits concernant la notification. Notez que les serveurs principaux sont toujours considérés comme demandant une notification avant utilisation.
  • Zone de service : Si vous avez sélectionné un serveur principal ou secondaire que vous souhaitez utiliser, cliquez sur son nom d'hôte dans la liste pour afficher plus de détails sur ce serveur. Parmi les détails répertoriés figure le ServiceArea champ qui décrit le groupe géographique ou démographique qu'ils ont l'intention de desservir. Si ce champ est Public , vous n'avez pas besoin d'être dans une région particulière pour utiliser le serveur. S'ils répertorient une zone de service plus spécifique, assurez-vous de respecter les souhaits de l'administrateur du serveur à cet égard.

Tester avec ntpdate

Avant d'utiliser un serveur NTP externe pour synchroniser votre temps, vous devez vous assurer que vous pouvez réellement vous connecter au serveur depuis votre machine. Heureusement, il existe un outil pour cela inclus avec le serveur NTP appelé ntpdate .

Le ntpdate La commande synchronise votre horloge avec un serveur NTP. C'est similaire à ce que le serveur NTP fait régulièrement. Le ntpd program est un package séparé sur les systèmes d'exploitation Ubuntu® et Debian®. Les autres distributions installent ntpdate au moment de l'installation de ntpd. Utiliser ntpdate , le système d'exploitation Ubuntu et les utilisateurs de Debian doivent d'abord l'installer.

sudo aptitude install ntpdate

Réglez votre horloge pour qu'elle se synchronise aux heures que vous spécifiez en utilisant cron pour exécuter ntpdate . Sinon, exécutez le serveur NTP car il utilise moins de bande passante et garde l'heure avec plus de précision en suivant la dérive de votre horloge dans le temps et en l'ajustant en conséquence. Utilisez ntpdate à des fins de test uniquement.

Le ntpdate La commande ne s'exécute pas lorsque le serveur NTP est en cours d'exécution. Si vous exécutez ntpdate et obtenez une réponse du type "le socket NTP est utilisé", cela signifie que votre serveur NTP est en cours d'exécution. Arrêtez-le avec la commande appropriée pour votre distribution :

Systèmes d'exploitation Ubuntu / Debian

sudo /etc/init.d/ntp stop

CentOS/Fedora/RHEL

sudo /etc/init.d/ntpd stop

Vous pouvez maintenant exécuter ntpdate avec le serveur avec lequel vous souhaitez vous synchroniser en tant qu'argument. Par exemple, pour indiquer ntpdate pour essayer de synchroniser avec "pool.ntp.org", exécutez la commande suivante :

sudo ntpdate pool.ntp.org

Une fois les tests terminés, n'oubliez pas de redémarrer NTP :

Systèmes d'exploitation Ubuntu / Debian

sudo /etc/init.d/ntp start

CentOS/Fedora/RHEL

sudo /etc/init.d/ntpd start

Résumé

Heureusement, la synchronisation de l'heure NTP est assez facile à faire. Une fois que vous avez défini les serveurs de temps et démarré le service NTP, il fait son travail silencieusement en arrière-plan.

Si NTP rencontre des problèmes, il les enregistre dans le journal système, que vous devriez vérifier régulièrement de toute façon.

Pour plus de détails sur la configuration d'un serveur NTP et sur les options disponibles, visitez le site de documentation NTP. Si vous voulez en savoir plus sur le fonctionnement de NTP, rendez-vous sur le site Web principal de NTP et tout sera révélé.


Linux
  1. Synchronisation de l'heure Linux

  2. Comment définir le fuseau horaire et synchroniser l'heure du serveur avec NTP sous Linux

  3. Synchroniser l'heure du serveur Linux avec le serveur de temps réseau

  4. Architecture du serveur NTP

  5. Qu'est-ce que la dispersion NTP et comment la contrôler ?

Comment synchroniser correctement l'heure avec le serveur NTP dans CentOS 7

Serveur NTP et meilleures pratiques

Comment utiliser Rsync pour copier/synchroniser des fichiers entre des serveurs

Comment configurer la synchronisation de l'heure avec NTP sur Ubuntu 18.04

Ubuntu 19.04 :Configurer le serveur NTP

Centos 7 :Configurer le serveur NTP