Chrony est un utilitaire de NTP qui peut être utilisée pour synchroniser l’heure sur un système Linux. Dans cet article nous allons voir comment installer et configurer Chrony en tant que client et serveur NTP sur un système CentOS (7 et 8) / Redhat (7 et 8).
Pour lire cet article an anglais cliquer ici.
Pourquoi ll est important de synchroniser l’heure au niveau des OS ?
la synchronisation de l’heure est importante pour assurer la fiabilité des systèmes, faciliter la résolution des problèmes et améliorer les performances des applications.
Voici quelques raisons pour lesquelle la sychrinisation de l’heure est importante :
– Synchronisation des journaux d’événements : Les journaux d’événements des différents systèmes d’exploitation, applications et dispositifs doivent être synchronisés pour pouvoir les analyser correctement et comprendre les relations causales entre les événements.
– Fiabilité des authentifications : Les systèmes d’authentification basés sur des horaires, tels que les certificats SSL, nécessitent une synchronisation précise de l’heure pour fonctionner de manière fiable.
– Fiabilité des transactions : Les systèmes de gestion de bases de données distribuées et les systèmes de gestion de transactions reposent sur des horloges synchronisées pour garantir la cohérence des données et éviter les conflits de transactions.
– Diagnostics : Il est important de synchroniser l’heure pour pouvoir diagnostiquer les problèmes de performance et les erreurs de manière efficace, en comparant les horaires des journaux d’événements et les traces de performances.
Installation de chrony :
Pour installer Chrony sur un système CentOS/ RedHat, vous pouvez utiliser le gestionnaire de paquets yum (ou dnf). Pour cela, lancez la commande suivante :
[root@Linux ~]# yum install chrony . . . . Running transaction Installing : chrony-3.4-1.el7.x86_64 1/1 Verifying : chrony-3.4-1.el7.x86_64 1/1 Installed: chrony.x86_64 0:3.4-1.el7 Complete!
Configurer chrony en tant que client NTP
Une fois l’installation terminée, nous allons configurer chrony en tant que client ntp. Le fichier de configuration de chrony se trouve dans /etc/chrony.conf :
[root@Linux ~]# cat /etc/chrony.conf # Use public servers from the pool.ntp.org project. # Please consider joining the pool (http://www.pool.ntp.org/join.html). server 0.centos.pool.ntp.org iburst server 1.centos.pool.ntp.org iburst server 2.centos.pool.ntp.org iburst server 3.centos.pool.ntp.org iburst # Record the rate at which the system clock gains/losses time. driftfile /var/lib/chrony/drift # Allow the system clock to be stepped in the first three updates # if its offset is larger than 1 second. makestep 1.0 3 # Enable kernel synchronization of the real-time clock (RTC). rtcsync # Enable hardware timestamping on all interfaces that support it. #hwtimestamp * # Increase the minimum number of selectable sources required to adjust # the system clock. #minsources 2 # Allow NTP client access from local network. #allow 192.168.0.0/16 # Serve time even if not synchronized to a time source. #local stratum 10 # Specify file containing keys for NTP authentication. #keyfile /etc/chrony.keys # Specify directory for log files. logdir /var/log/chrony # Select which information is logged. #log measurements statistics tracking
Comme vous pouvez le constater, chrony utilise un pool NTP.org comme source de temps. Pour un utilisateur simple, il s’agit d’une configuration parfaitement acceptable car ce sont des sources de temps fiables. Cependant, dans une environnement d’entreprise, une source de temps NTP interne est requise.
Pour configurer chronyd afin qu’il utilise une source NTP interne, commentez ou supprimez l’option « server » et ajoutez votre propre serveur ntp :
#server 0.centos.pool.ntp.org iburst #server 1.centos.pool.ntp.org iburst #server 2.centos.pool.ntp.org iburst #server 3.centos.pool.ntp.org iburst server 192.168.2.12 iburst
Enregistrez les modifications et redémarrez le service chronyd et ensuite, vérifiez qu’il est bien opérationnel : :
[root@Linux ~]# systemctl restart chronyd [root@Linux ~]# systemctl status chronyd ● chronyd.service - NTP client/server Loaded: loaded (/usr/lib/systemd/system/chronyd.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2023-01-11 18:26:29 +01; 58min left Docs: man:chronyd(8) man:chrony.conf(5) Process: 3870 ExecStartPost=/usr/libexec/chrony-helper update-daemon (code=exited, status=0/SUCCESS) Process: 3866 ExecStart=/usr/sbin/chronyd $OPTIONS (code=exited, status=0/SUCCESS) Main PID: 3868 (chronyd) Tasks: 1 Memory: 372.0K CGroup: /system.slice/chronyd.service └─3868 /usr/sbin/chronyd
Vérifier que l’horloge système est correctement synchronisée
Enfin, pour confirmer que l’horloge système est correctement synchronisée avec le serveur de temps, utilisez la commande ci-dessous :
[root@Linux ~]# timedatectl Local time: Wed 2023-01-11 17:38:19 +01 Universal time: Wed 2023-01-11 16:38:19 UTC RTC time: Wed 2023-01-11 16:38:19 Time zone: Africa/Casablanca (+01, +0100) NTP enabled: yes NTP synchronized: yes RTC in local TZ: no Last DST change: DST began at Sun 2022-05-08 01:59:59 +00 Sun 2022-05-08 03:00:00 +01 Next DST change: DST ends (the clock jumps one hour backwards) at Sun 2023-03-19 02:59:59 +01 Sun 2023-03-19 02:00:00 +00
Pour vérifier les sources NTP, utilisez la commande ci-dessous :
[root@Linux ~]# chronyc sources 210 Number of sources = 4 MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== ^* 192.168.2.12 3 6 377 52 +35us[+23us] +/- 29ms
Configurer Chrony en tant que serveur ntp
Vous pouvez également utiliser chrony pour configurer ntp en tant que serveur.
La première étape consiste à configurer la source de temps comme je comme a vu précedement :
server 192.168.2.12 iburst
Par défaut, chrony fonctionne uniquement comme un client NTP et aucun client n’est autorisé à y accéder, donc pour que chrony agisse comme un serveur ntp, nous devons activer la directive allow qui spécifie un sous-réseau particulier à partir duquel les clients NTP peuvent accéder au serveur NTP :
allow 192.168.2.0/24
Maintenant, tous les clients faisant partie de ce sous-réseau sont autorisés à se synchroniser avec le serveur NTP. après cela, redémarrez le service chrony :
[root@Linux ~]# systemctl restart chronyd
Configurer le firewalld :
Après avoir configuré la source de temps, ajouté la directive allow et redémarré le service chronyd, il nous vous reste qu’à configurer le firewalld pour autoriser le service NTP :
[root@Linux ~]# firewall-cmd --add-service=ntp --permanent success [root@Linux ~]# firewall-cmd --reload success
Migrer Rocky Linux 8 vers Rocky Linux 9
Empêcher les utilisateurs sudoers d’exécuter des cmds sudo
pkill : Comment arrêter les process avec leurs nom
3 commands to check a port is open on Linux
Fail2Ban : How to protect Linux services