Gestion des services

NTP : Gestion de l'heure par le réseau avec chronyd

Table des matières

Introduction



Dans cet article, nous allons voir comment synchroniser l'heure de notre serveur par le réseau via le protocole NTP avec chronyd.

Prérequis



Certaines distributions ont déjà un client NTP avec systemd-timesyncd.
Regardez s'il est actif :

Code BASH :
systemctl status systemd-timesyncd.service 


Je vous conseille de n'avoir qu'un service (client ou serveur) NTP sur la machine. Si systemd-timesyncd est actif, stoppez-le et désactivez-le :

Code BASH :
systemctl disable --now systemd-timesyncd.service 


Installation



Vérifier que le service chronyd est installé.
Si ce n'est pas le cas, l'installer :

RHEL / CentOS / Alma Linux / Fedora :
Code BASH :
dnf install chrony


Debian / Ubuntu :
Code BASH :
apt install chrony


Gentoo :
Code BASH :
emerge -av net-misc/chrony


Une fois installé, il faut démarrer et activer le service :

RHEL / CentOS / Alma Linux / Fedora / Debian / Ubuntu :
Code BASH :
systemctl enable --now chronyd


Gentoo :
Code BASH :
/etc/init.d/chronyd start
rc-update add chronyd


Configuration



Le fichier de config est : /etc/chrony.conf
Sous Gentoo, il s'appelle /etc/chrony/chrony.conf

Client NTP



Pour activer la synchronisation par le réseau, ajouter dans le fichier les lignes des serveurs NTP souhaités.

Avec un pool de serveurs :
Code :
pool fr.pool.ntp.org iburst


Ou avec des serveurs uniques :
Code TEXT :
server 0.fr.pool.ntp.org iburst
server 1.fr.pool.ntp.org iburst
server 2.fr.pool.ntp.org iburst
server 3.fr.pool.ntp.org iburst


On pourra par sécurité, limiter l'écoute du démon à la seule machine :
Code TEXT :
allow 127.0.0.0/8


Après modification, on relance le service :

Systemd :
Code BASH :
systemctl restart chronyd


OpenRC :
Code BASH :
/etc/init.d/chronyd restart


On pourra vérifier les informations de configuration des serveurs via

Code BASH :
chronyc sources


Code TEXT :
210 Number of sources = 4
MS Name/IP address         Stratum Poll Reach LastRx Last sample
===============================================================================
^+ villisika.miuku.net           2   6    17     6   -488us[ -283us] +/-   15ms
^- herbrand.noumicek.cz          2   6    17     6   -217us[  -12us] +/-   50ms
^* 82-64-45-50.subs.proxad.>     1   6    17     6   +542us[ +748us] +/-   11ms
^+ berlix.fraho.eu               2   6    17     5    +11us[ +217us] +/-   16ms



En mode serveur



En mode serveur, il faut éditer à nouveau éditer le fichier de config, et autoriser les réseaux privés. Exemple :

Code TEXT :
allow 127.0.0.0/8
allow 10.0.0.0/8
allow 172.16.0.0/12
allow 192.168.0.0/16
binddaddress 0.0.0.0


Et de redémarrer le démon :

Systemd :
Code BASH :
systemctl restart chronyd


OpenRC :
Code BASH :
/etc/init.d/chronyd restart


Si on utilise firewalld, ne pas oublier d'ouvrir le port 123/UDP (ou service ntp) :

Code BASH :
firewall-cmd --add-service=ntp --permanent
firewall-cmd --reload


Outil de diagnostics



On pourra installer l'outil chronyc avec l'option tracking pour avoir des informations additionnelles sur le statut NTP :

Code BASH :
chronyc tracking


Code TEXT :
Reference ID    : 5CF30605 (villisika.miuku.net)
Stratum         : 3
Ref time (UTC)  : Wed Oct 06 09:33:48 2021
System time     : 0.000092933 seconds fast of NTP time
Last offset     : -0.000082537 seconds
RMS offset      : 0.000352659 seconds
Frequency       : 15.699 ppm fast
Residual freq   : -0.005 ppm
Skew            : 1.328 ppm
Root delay      : 0.027089626 seconds
Root dispersion : 0.000561325 seconds
Update interval : 64.2 seconds
Leap status     : Normal
 


Forcer une synchronisation



Si vous devez forcer une synchronisation manuelle, comme on pouvait le faire avec la commande ntpdate (qui est dépréciée) :

Si Le service chronyd est actif et démarré, il suffit de le relancer :

Code BASH :
systemctl restart chronyd

ou
Code BASH :
/etc/init.d/chronyd restart


Si le service n'est pas démarré, on pourra utiliser la commande chronyd (qui nous rend la main après exécution de la requête) :

Code BASH :
chronyd -q 'pool fr.pool.ntp.org iburst'
Cette page a été vue 14656 fois