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.
Note
Les versions de développement de BLFS peuvent ne pas arriver à
contruire ou à exécuter certains paquets correctement si LFS ou
des dépendances ont été mises à jour depuis la dernière version
stable des livres.
Informations sur le paquet
-
Téléchargement (HTTP) :
https://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-4.2/ntp-4.2.8p18.tar.gz
-
Téléchargement (FTP) :
-
Somme de contrôle MD5 du téléchargement :
516bdabd94ab7c824e9771390761a46c
-
Taille du téléchargement : 6,8 Mo
-
Estimation de l'espace disque requis : 99 Mo (avec
les tests)
-
Estimation du temps de construction : 0,8 SBU (avec
les tests, tous deux avec parallélisme = 4)
Dépendances de ntp
Requises
IO-Socket-SSL-2.095
Facultatives
libcap-2.76 avec PAM, libevent-2.1.12,
libedit et libopts d'AutoGen
Notes des auteurs : 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
Corrigez un problème de type en exécutant
sed -e "s;pthread_detach(NULL);pthread_detach(0);" \
-i configure \
sntp/configure
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.8p18 &&
make
Pour tester les résultats, exécutez : make check.
Maintenant, en tant qu'utilisateur root
:
make install &&
install -v -o ntp -g ntp -d /var/lib/ntp
Explication des commandes
--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. 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
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 le script de démarrage /etc/rc.d/init.d/ntp
inclus dans le
paquet blfs-bootscripts-20250225.
make install-ntpd
Si vous préférez lancer ntpd périodiquement, ajoutez la
commande suivante au crontab
de
root
:
ntpd -q
Exécutez la commande suivante si vous aimeriez régler l'heure
matérielle à l'heure actuelle du système lorsqu'il s'éteint et
redémarre :
ln -v -sf ../init.d/setclock /etc/rc.d/rc0.d/K46setclock &&
ln -v -sf ../init.d/setclock /etc/rc.d/rc6.d/K46setclock
L'autre façon est déjà réglée par LFS.