NTP : Gestion de l'heure par le réseau avec chronyd
Table des matières
Dans cet article, nous allons voir comment synchroniser l'heure de notre serveur par le réseau via le protocole NTP avec chronyd.
Certaines distributions ont déjà un client NTP avec systemd-timesyncd.
Regardez s'il est actif :
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 :
Vérifier que le service chronyd est installé.
Si ce n'est pas le cas, l'installer :
RHEL / CentOS / Alma Linux / Fedora :
Debian / Ubuntu :
Gentoo :
Une fois installé, il faut démarrer et activer le service :
RHEL / CentOS / Alma Linux / Fedora / Debian / Ubuntu :
Gentoo :
Le fichier de config est : /etc/chrony.conf
Sous Gentoo, il s'appelle /etc/chrony/chrony.conf
Pour activer la synchronisation par le réseau, ajouter dans le fichier les lignes des serveurs NTP souhaités.
Avec un pool de serveurs :
Ou avec des serveurs uniques :
On pourra par sécurité, limiter l'écoute du démon à la seule machine :
Après modification, on relance le service :
Systemd :
OpenRC :
On pourra vérifier les informations de configuration des serveurs via
En mode serveur, il faut éditer à nouveau éditer le fichier de config, et autoriser les réseaux privés. Exemple :
Et de redémarrer le démon :
Systemd :
OpenRC :
Si on utilise firewalld, ne pas oublier d'ouvrir le port 123/UDP (ou service ntp) :
On pourra installer l'outil chronyc avec l'option tracking pour avoir des informations additionnelles sur le statut NTP :
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 :
ou
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) :
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'