Cómo instalar el servidor NTP de Chrony en CentOS 8

Chrony es el servidor por defecto del Protocolo de Tiempo de Red (NTP) en el sistema operativo CentOS 8. Es un sustituto del antiguo Ntpd utilizado en la versión anterior del sistema operativo Linux. Se utiliza para sincronizar el reloj del sistema con servidores de tiempo remotos de Internet. Establecer la hora exacta es muy importante para que cualquier aplicación funcione correctamente.

Está formado por dos componentes chronyc y chronyd. chronyd es un demonio que se inicia en el momento de arrancar el sistema. chronyc es una interfaz de línea de comandos que se utiliza para controlar el rendimiento de chronyd.

En este tutorial, te mostraré cómo instalar y utilizar Chrony en un servidor CentOS 8.

Requisitos previos

  • Dos servidores con CentOS 8.
  • Una contraseña de root configurada en el servidor.

Cómo empezar

Antes de instalar Chrony, tendrás que configurar una zona horaria correcta en tu servidor. Puedes configurarla con el siguiente comando:

timedatectl set-timezone Asia/Kolkata

Ahora, verifica tu zona horaria actual con el siguiente comando:

timedatectl

Deberías obtener la siguiente salida:

               Local time: Sun 2021-05-02 20:00:44 IST
           Universal time: Sun 2021-05-02 14:30:44 UTC
                 RTC time: Sun 2021-05-02 14:30:43
                Time zone: Asia/Kolkata (IST, +0530)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no

Instalar el servidor Chrony

Por defecto, el paquete Chrony está incluido en el repositorio por defecto de CentOS 8. Puedes instalarlo con el siguiente comando:

dnf install chrony -y

Una vez instalado el Chrony, inicia el servicio Chrony y haz que se inicie al reiniciar el sistema:

systemctl start chronyd
systemctl enable chronyd

También puedes verificar el estado del Chrony con el siguiente comando:

systemctl status chronyd

Deberías ver la siguiente salida:

? chronyd.service - NTP client/server
   Loaded: loaded (/usr/lib/systemd/system/chronyd.service; enabled; vendor preset: enabled)
   Active: active (running) since Sun 2021-05-02 20:00:13 IST; 1min 7s ago
     Docs: man:chronyd(8)
           man:chrony.conf(5)
 Main PID: 616 (chronyd)
    Tasks: 1 (limit: 25014)
   Memory: 2.3M
   CGroup: /system.slice/chronyd.service
           ??616 /usr/sbin/chronyd

May 02 20:00:12 centos8 systemd[1]: Starting NTP client/server...
May 02 20:00:12 centos8 chronyd[616]: chronyd version 3.5 starting (+CMDMON +NTP +REFCLOCK +RTC +PRIVDROP +SCFILTER +SIGND +ASYNCDNS +SECHASH >
May 02 20:00:12 centos8 chronyd[616]: Frequency 18.331 +/- 0.061 ppm read from /var/lib/chrony/drift
May 02 20:00:12 centos8 chronyd[616]: Using right/UTC timezone to obtain leap second data
May 02 20:00:13 centos8 systemd[1]: Started NTP client/server.
May 02 20:00:20 centos8 chronyd[616]: Selected source 129.250.35.250
May 02 20:00:20 centos8 chronyd[616]: System clock TAI offset set to 37 seconds
May 02 20:00:20 centos8 chronyd[616]: System clock wrong by 1.153394 seconds, adjustment started
May 02 20:00:21 centos8 chronyd[616]: System clock was stepped by 1.153394 seconds

Configurar el servidor Chrony

El archivo de configuración principal de Chrony se encuentra en /etc/chrony.conf. Tendrás que editarlo y cambiar los servidores de tiempo más cercanos.

nano /etc/chrony.conf

Comenta el grupo por defecto y añade una lista de servidores NTP más cercanos a tu ubicación.

#pool 2.centos.pool.ntp.org iburst
server 1.in.pool.ntp.org
server 2.in.pool.ntp.org
server 3.in.pool.ntp.org

Guarda y cierra el archivo cuando hayas terminado y luego establece la sincronización NTP con el siguiente comando:

timedatectl set-ntp true

A continuación, reinicia el servicio Chrony para aplicar los cambios:

systemctl restart chronyd

También puedes permitir que un rango específico de IP de tu red local permita el acceso a tu servidor NTP. Puedes permitirlo añadiendo la siguiente línea al archivo /etc/chrony.conf:

# Allow NTP client access from local network.
allow 192.168.0.0/24

Ahora puedes comprobar si tu servidor NTP funciona o no con el siguiente comando:

chronyc sources

Si todo está bien, deberías obtener la siguiente salida:

210 Number of sources = 4
MS Name/IP address         Stratum Poll Reach LastRx Last sample               
===============================================================================
^? ntp7.mum-in.hosts.301-mo>     2   6     1     8    +31ms[  +31ms] +/-  248ms
^? static.15.192.216.95.cli>     2   6     1     8  +2616us[+2616us] +/-   88ms
^? 157.245.102.2                 2   6     1     9  -4088us[-4088us] +/-  139ms
^? ec2-13-126-27-131.ap-sou>     2   6     1     9  +6017us[+6017us] +/-  181ms

Configurar el cortafuegos

A continuación, tendrás que permitir el servicio NTP a través del cortafuegos. Puedes permitirlo con el siguiente comando:

firewall-cmd --permanent --add-service=ntp --permanent

A continuación, recarga el servicio del cortafuegos para aplicar los cambios:

firewall-cmd --reload

Configurar el Cliente Chrony

A continuación, tendrás que instalar el cliente Chrony en la máquina cliente y configurarlo para que utilice tu servidor Chrony.

En la máquina cliente, configura tu zona horaria correcta con el siguiente comando:

timedatectl set-timezone Asia/Kolkata

A continuación, instala el paquete Chrony con el siguiente comando:

dnf install chrony -y

Una vez completada la instalación, edita tu archivo de configuración de Chrony y señala tu servidor NTP.

nano /etc/chrony.conf

Comenta el pool por defecto y añade la siguiente línea:

server chrony-server-ip

Guarda y cierra el archivo y luego establece la sincronización NTP con el siguiente comando:

timedatectl set-ntp true

A continuación, inicia el servicio Chrony y habilítalo para que se inicie al reiniciar el sistema con el siguiente comando:

systemctl start chronyd
systemctl enable chronyd

Ahora, verifica la sincronización horaria con el siguiente comando:

chronyc sources

Deberías obtener la siguiente salida:

210 Number of sources = 1
MS Name/IP address         Stratum Poll Reach LastRx Last sample
===============================================================================
^? chrony-server-ip              0   6     0   10y     +0ns[   +0ns] +/-    0ns

Conclusión

En la guía anterior, has aprendido a configurar un servidor NTP Chrony en CentOS 8. También has aprendido a instalar el cliente Chrony y a configurarlo para sincronizar la hora con el servidor Chrony. No dudes en preguntarme si tienes alguna duda.

También te podría gustar...