HorlogeUn des prérequis fondamentaux d’un serveur – local ou dédié – c’est qu’il soit à l’heure. Malheureusement, l’horloge intégrée dans notre machine n’est pas suffisamment exacte. Le protocole NTP (Network Time Protocol) permet à notre machine de mettre ses pendules à l’heure.  Dans un réseau local, il permet la synchronisation des machines entre elles.

Vue d’ensemble

Les serveurs de temps public sur Internet permettent de recevoir le temps exact. À partir de là, on a plusieurs possibilités d’utiliser NTP.

  • La commande ntpdate procède à un ajustement ponctuel de l’horloge du BIOS.
  • L’ajustement ponctuel ne suffit pas pour un serveur qui est censé tourner sans discontinuer. L’horloge du serveur risque de dévier de plus en plus de l’heure exacte. Dans ce cas, il faudra configurer le démon ntpd contenu dans le paquet ntp, qui se charge de contacter les serveurs de temps publics à intervalles réguliers pour procéder ensuite à une série de corrections de l’heure locale.
  • Dans un réseau local, le démon ntpd peut à son tour être configuré comme serveur de temps pour les machines locales.
  • Dans la pratique quotidienne, on utilisera ntpdate pour l’ajustement initial de l’heure locale, et ntpd pour la synchronisation régulière.

Prérequis

Le démon ntpd utilise le port 123 en UDP. Si l’on utilise NTP pour synchroniser les machines d’un réseau local, il faut ouvrir ce port sur le serveur pour permettre aux postes clients de se connecter.

Installation

Si le serveur Chrony est installé, il faudra le supprimer pour éviter les conflits.

$ sudo systemctl stop chronyd
$ sudo yum remove chrony

Installer les paquets relatifs à NTP.

$ sudo yum install ntp ntpdate

Synchronisation avec un serveur NTP public

Éventuellement, aller sur https://www.ntppool.org et choisir la liste des serveurs en fonction du pays.

Sauvegarder le fichier de configuration existant.

$ cd /etc
$ sudo mv ntp.conf ntp.conf.orig

Configurer le service.

# /etc/ntp.conf

driftfile /var/lib/ntp/drift
logfile /var/log/ntp.log

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

server 127.127.1.0
fudge 127.127.1.0 stratum 10

restrict default nomodify nopeer notrap
restrict 127.0.0.1 mask 255.0.0.0
  • Le fichier journal /var/log/ntp.log sera créé à la volée au démarrage du service. Ce n’est donc pas la peine de le créer manuellement.
  • La directive fudge 127.127.1.10 stratum 10 constitue un serveur « bidon » en guise d’IP fallback, au cas où la source de temps extérieure deviendrait momentanément indisponible. En cas d’indisponibilité du serveur distant, NTP continuera à tourner en se basant sur ce fonctionnement-là.
  • NTP offre une panoplie de règles pour contrôler l’accès au service, que l’on pourra utiliser en-dehors des règles de pare-feu. Ici, les directives restrict signifient qu’on empêche les machines distantes de modifier la configuration du serveur (première ligne) et qu’on fait confiance à la machine elle-même (deuxième ligne). La directive restrict sans option derrière, mais suivie du seul nom d’hôte, équivaut à un allow all.

Gestion et utilisation

Éventuellement, effectuer l’ajustement initial de l’horloge.

$ sudo ntpdate fr.pool.ntp.org
 1 Jan 08:25:59 ntpdate[3842]: adjust time server 108.61.177.141 
 offset 0.000518 sec

La commande ntpdate est normalement considérée comme obsolète, mais elle sert toujours à effectuer des corrections importantes. Théoriquement, c’est la commande ntpd -g qui est censée remplacer ntpdate, mais son utilisation peut s’avérer problématique sur des systèmes déréglés de plus d’une heure.

Activer et démarrer le serveur NTP.

$ sudo systemctl enable ntpd
$ sudo systemctl start ntpd

Vérifier si le service fonctionne correctement.

$ systemctl status ntpd

Afficher la liste des serveurs auxquels on est connecté.

$ ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
+ds1.forward-int 79.143.250.152   2 u   60   64   37   43.733    6.365   2.187
+web01.webhd.nl  91.224.149.41    3 u   59   64   37   43.172    1.278   2.006
 villisika.miuku 85.199.214.98    2 u   57   64   37   55.360   -8.618   3.373
*server.bertold. 195.66.241.2     2 u   57   64   37   42.812    2.321   1.915
 LOCAL(0)        .LOCL.          10 l  188   64   34    0.000    0.000   0.000
  • Le petit astérisque * en début de ligne signifie que la machine est correctement synchronisée avec le serveur distant. La première synchronisation peut nécessiter quelques minutes.
  • Pour guetter la première synchronisation, on peut invoquer watch ntpq -p.

Téléchargement

Un fichier modèle ntp.conf peut être téléchargé dans mon dépôt Github, dans le répertoire centos/el7/config/ntp.

$ git clone https://github.com/kikinovak/centos
$ ls centos/el7/config/ntp/
ntp.conf

 


1 commentaire

Synchroniser un serveur CentOS 7 avec NTP - My Tiny Tools · 1 janvier 2019 à 11 h 33 min

[…] (Source: Journal du hacker) […]

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.