ntp-4.2.8p15

Introduction à ntp

Le paquet ntp contient un client et un serveur pour synchroniser le temps entre divers ordinateurs d'un réseau. Ce paquet est l'implémentation de référence officielle du protocole NTP.

This package is known to build and work properly using an LFS 11.3 platform.

Informations sur le paquet

  • Téléchargement (HTTP) : https://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-4.2/ntp-4.2.8p15.tar.gz

  • Téléchargement (FTP) :

  • Somme de contrôle MD5 : e1e6b23d2fc75cced41801dbcd6c2561

  • Taille du téléchargement : 6.7 Mo

  • Estimation de l'espace disque requis : 108 Mo (avec les tests)

  • Estimation du temps de construction : 0,4 SBU (avec parallélisme = 4 ; avec les tests)

Dépendances de ntp

Requises

IO-Socket-SSL-2.081

Facultatives

libcap-2.67 avec PAM, libevent-2.1.12, libedit et libopts d'AutoGen

Notes utilisateur : https://wiki.linuxfromscratch.org/blfs/wiki/ntp

Installation de ntp

Il doit y avoir un utilisateur et un groupe dédiés pour prendre le contrôle du démon ntpd après qu'il est démarré. Tapez les commandes suivantes en tant qu'utilisateur root :

groupadd -g 87 ntp &&
useradd -c "Network Time Protocol" -d /var/lib/ntp -u 87 \
        -g ntp -s /bin/false ntp

La commande update-leap doit être corrigée pour fonctionner correctement :

sed -e 's/"(\\S+)"/"?([^\\s"]+)"?/' \
    -i scripts/update-leap/update-leap.in

Maintenant corrigez un problème introduit avec glibc-2.34 :

sed -e 's/#ifndef __sun/#if !defined(__sun) \&\& !defined(__GLIBC__)/' \
    -i libntp/work_thread.c

Installez ntp en exécutant les commandes suivantes :

./configure --prefix=/usr         \
            --bindir=/usr/sbin    \
            --sysconfdir=/etc     \
            --enable-linuxcaps    \
            --with-lineeditlibs=readline \
            --docdir=/usr/share/doc/ntp-4.2.8p15 &&
make

La suite de tests de ce paquet est cassée avec GCC 10 et supérieur.

Maintenant, en tant qu'utilisateur root :

make install &&
install -v -o ntp -g ntp -d /var/lib/ntp

Explication des commandes

CFLAGS="-O2 -g -fPIC" : Cette variable d'environnement est nécessaire pour générer un code indépendant de la position ( en anglais "Position Independent Code") demandé par l'utilisation des bibliothèques du paquet.

--bindir=/usr/sbin : Ce paramètre met les programmes d'administration dans /usr/sbin.

--enable-linuxcaps : ntpd est lancé en tant qu'utilisateur ntp, donc on utilise des possibilités Linux pour le contrôle de l'horloge en non-root.

--with-lineeditlibs=readline : cette option active la prise en charge de Readline pour les programmes ntpdc et ntpq. En ne le mettant pas, libedit sera utilisé si elle est installée, sinon aucune fonctionnalité readline ne sera compilée.

Configuration de ntp

Fichiers de configuration

/etc/ntp.conf

Informations sur la configuration

Le fichier de configuration suivant définit en premier plusieurs serveurs ntp libres d'accès sur différents continents. En second, il crée aussi un fichier drift où ntpd conserve la fréquence de temps et un fichier pid pour stocker l'ID du processus ntpd. En troisième, il définit l'endroit pour le fichier de définition des secondes intercalaires /etc/ntp.leapseconds, que le script update-leap vérifie et met à jour, quand nécessaire. Ce script peut être lancé comme une tâche cron et les développeurs de ntp recommande une fréquence de trois semaines pour les mises à jour. Comme il y a peu de documentation fournie avec le paquet, visitez le site Internet de ntp sur https://www.ntp.org/ et https://www.ntppool.org/ pour plus informations.

cat > /etc/ntp.conf << "EOF"
# Asia
server 0.asia.pool.ntp.org

# Australia
server 0.oceania.pool.ntp.org

# Europe
server 0.europe.pool.ntp.org

# North America
server 0.north-america.pool.ntp.org

# South America
server 2.south-america.pool.ntp.org

driftfile /var/lib/ntp/ntp.drift
pidfile   /run/ntpd.pid

leapfile  /var/lib/ntp/ntp.leapseconds
EOF

Vous pouvez souhaiter ajouter une « Session de sécurité ». Pour les explications voir https://www.eecis.udel.edu/~mills/ntp/html/accopt.html#restrict.

cat >> /etc/ntp.conf << "EOF"
# Security session
restrict    default limited kod nomodify notrap nopeer noquery
restrict -6 default limited kod nomodify notrap nopeer noquery

restrict 127.0.0.1
restrict ::1
EOF

Sychroniser le temps

Il y a deux options. L'option une est de lancer ntpd en permanence et de l'autoriser à synchroniser le temps de façon graduée. L'autre option est de lancer ntpd périodiquement (en utilisant cron) et de mettre à jour l'heure chaque fois que ntpd est lancé.

Si vous choisissez l'option une, installez l'unité ntpd.service incluse dans le paquet blfs-systemd-units-20220720.

make install-ntpd

Si vous préférez lancer ntpd périodiquement, ajoutez la commande suivante au crontab de root :

ntpd -q

Contenu

Programmes installés: calc_tickadj, ntp-keygen, ntp-wait, ntpd, ntpdate, ntpdc, ntpq, ntptime, ntptrace, sntp, tickadj et update-leap
Bibliothèques installées: Aucune
Répertoires installés: /usr/share/ntp, /usr/share/doc/ntp-4.2.8 et /var/lib/ntp

Descriptions courtes

calc_tickadj

calcule la valeur optimale pour les tops donnés par le fichier drift de ntp

ntp-keygen

génère des fichiers de données chiffrées utilisés par les schèmes NTPv4 d'authentification et d'identification

ntp-wait

est utile au moment du démarrage, pour faire attendre la séquence de démarrage jusqu'à ce que ntpd ait réglé l'heure

ntpd

est un démon ntp qui se lance en tâche de fond et qui maintient la date et l'heure synchronisés à partir des réponses des serveurs ntp configurés. Il fonctionne aussi comme un serveur NTP

ntpdate

est un programme client qui règle la date et l'heure à partir des réponses d'un serveur NTP. Cette commande est obsolète

ntpdc

est utilisé pour interroger le démon ntp sur son état actuel et pour demander des changements de cet état

ntpq

est un outil utilisé pour gérer les opérations de ntpd et déterminer les performances

ntptime

lit et affiche les variables du noyau relatives à l'heure

ntptrace

établit une chaîne entre les serveurs ntp et la source primaire

sntp

est un client Simple Network Time Protocol (SNTP ou simple protocole de temps réseau)

tickadj

lit et, éventuellement, modifies plusieurs variables relatives à la conservation du temps dans des noyaux anciens qui n'ont pas de support pour la conservation du temps de précision

update-leap

est un script pour vérifier et, si nécessaire, mettre à jour le fichier de définition des secondes intercalaires