Cómo configurar Chrony como servidor y cliente NTP en Rocky Linux

NTP o Protocolo de Tiempo de Red es un protocolo de red para la sincronización de la hora y el reloj en la red informática.

Chrony es una implementación del NTP o Protocolo de Tiempo en Red y una alternativa a otras aplicaciones como up. Chrony puede ejecutarse en sistemas operativos tipo Unix, y está publicado bajo la licencia GNU GPL v2. Chrony se utiliza como software servidor NTP por defecto en algunas distribuciones de Linux y también está disponible para múltiples distribuciones de Linux.

En esta guía aprenderás a instalar y utilizar Chrony en el servidor Rocky Linux. Aprenderás a utilizar Chrony de dos formas distintas:

  • Usando Chrony como servidor NTP – esto suele ocurrir si quieres construir un servidor NTP para tu entorno local. Así, en lugar de conectarse al servidor NTP público de Internet, los clientes se conectarán a la máquina local que ejecuta Chrony como Servidor NTP.
  • Usar Chrony como Cliente N TP: es cuando necesitas sincronizar la hora de tu máquina o cliente con un servidor NTP.

Requisitos previos

Esta guía asume que tienes dos servidores Rocky Linux diferentes que se utilizarán como Servidor NTP y Cliente NTP. Puedes utilizar Rocky Linux v8 o la última versión 9. Además, necesitarás un usuario no root con privilegios sudo root en ambas máquinas.

A continuación se detallan los servidores que utilizaremos:

Hostname        IP Address       Used as
-------------------------------------------
rocky8          192.168.5.100    NTP Server
client1         192.168.5.120    NTP Client

Ahora vamos a iniciar la instalación y configuración de Chrony.

Instalación del paquete Chrony

Chrony es una de las implementaciones de NTP (Network Time Protocol) para sistemas operativos tipo Unix.

Por defecto, el paquete Chrony está disponible en el repositorio baseos Rocky Linux.

Puedes comprobar el paquete Chriony utilizando el siguiente comando dnf. Deberías ver la información detallada sobre el paquete Chrony.

sudo dnf info chrony

En la siguiente captura de pantalla, puedes ver que la versión actual de Chrony v4.1 está disponible en el repositorio baseos Rocky Linux.

chrony info

Ahora, para instalar Chriony, ejecuta el siguiente comando dnf. Cuando se te pida que confirmes la instalación, introduce y y pulsa ENTER para continuar.

sudo dnf install chrony

Una vez instalado Chrony, inicia y habilita el servicio Chronyd mediante el comando systemctl que aparece a continuación.

sudo systemctl enable chronyd
sudo systemctl start chronyd

Después, verifica el servicio Chronyd utilizando el siguiente comando.

sudo systemctl status chronyd

Deberías ver que el servicio Chrionyd está habilitado y se ejecutará automáticamente al arrancar el sistema. Y ahora, el estado del servicio Chronyd es en ejecución.

estado de cronyd

Configurar Chrony como servidor NTP

En este paso, aprenderás a configurar Chrony como Servidor NTP en el servidor ROcky Linux. En este ejemplo, utilizaremos el servidor Rocky Linux con el nombre de host «rocky8» y la dirección IP «192.168.5.100».

Para configurar Chrony, debes editar el archivo de configuración por defecto de Chrony‘/etc/chrony.conf‘.

Abre el archivo‘/opt/.chrony.conf’ utilizando el siguiente comando del editor nano.

sudo nano /etc/chrony.conf

En la directiva del servidor, puedes especificar la fuente del servidor NTP que quieres utilizar. Puedes encontrar el grupo de servidores NTP más cercano a tu ubicación en https://www.ntppool.org/en/.

En este ejemplo, utilizaremos el pool de servidores NTP que se indica a continuación. Además, utilizaremos la opción adicional ‘iburst‘ que permite al servicio Chronyd realizar la primera actualización del reloj poco después del inicio.

# list servers
server 0.se.pool.ntp.org iburst
server 1.se.pool.ntp.org iburst
server 2.se.pool.ntp.org iburst
server 3.se.pool.ntp.org iburst

Descomenta la directiva‘allow‘ y añade la subred de la dirección IP que tiene permiso para acceder al servidor NTP. En este ejemplo, todos los clientes de la red‘192.168.5.0/24‘ podrán acceder al servidor NTP.

# allowed clients
allow 192.168.5.0/24

Guarda el archivo y sal del editor cuando hayas terminado.

Opciones/directivas adicionales que también puedes querer cambiar:

# 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 hardware timestamping on all interfaces that support it.
#hwtimestamp *

# Specify the file containing keys for NTP authentication.
keyfile /etc/chrony.keys

# Get TAI-UTC offset and leap seconds from the system tz database.
leapsectz right/UTC

A continuación, ejecuta el siguiente comando para reiniciar el servicio Chronyd y aplicar los nuevos cambios. Y el servicio Chronyd ya funciona como servidor NTP.

sudo systemctl restart chronyd

Ahora, vamos a ejecutar el siguiente comando chronyc para verificar las fuentes del grupo de servidores NTP que se utiliza actualmente. Deberías ver la lista de fuentes de servidores NTP actuales que utiliza tu servidor.

chronyc sources

comprobar fuentes ntp

También puedes obtener información detallada mediante la opción‘-v’ como verbose.

chronyc sources -v

A continuación se muestra el estado detallado de la fuente del servidor NTP que se utiliza en el servidor.

comprueba las fuentes

Por último, tendrás que añadir el puerto del servicio NTP al cortafuegos. Esto permitirá a las máquinas cliente conectarse a tu Servidor NTP.

Ejecuta el siguiente comando firewall-cmd para añadir el servicio NTP al firewalld. A continuación, recarga el firewalld. Esto permitirá que cualquier máquina se conecte al Servidor NTP.

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

configurar cortafuegos

También puedes especificar las subredes de red a las que se permite acceder al Servidor NTP mediante las reglas ricas del firewalld. Añade la regla enriquecida firewalld que permite a la subred‘192.168.5.0/24‘ acceder al Servidor NTP mediante el comando firewall-cmd que aparece a continuación. A continuación, recarga el firewalld para aplicar las nuevas reglas.

sudo firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='192.168.5.0/24' service='ntp' accept"
sudo firewall-cmd --reload

Ahora puedes comprobar las reglas del firewalld utilizando el siguiente comando firewall-cmd. Deberías ver los servicios habilitados y los puertos abiertos en tu firewalld.

sudo firewall-cmd --list-all

Llegados a este punto, ya has instalado y configurado el Chrony como servidor NTP en el servidor Linux Rocky. A continuación puedes configurar Chrony como cliente NTP.

Configurar Chrony como cliente NTP

Ahora aprenderás a configurar Chrony como cliente NTP en el sistema Rocky Linux. En este ejemplo, configurarás el cliente NTP Chrony en la máquina Rocky Linux con el nombre de host«cliente1«.

Antes de empezar, asegúrate de que el paquete Chrony está instalado en la máquina del cliente. Puedes instalarlo mediante el comando dnf.

sudo dnf install chrony -y

Una vez instalado Chriony, abre el archivo de configuración ‘/etc/chrony.conf‘ utilizando el siguiente comando del editor nano.

sudo nano /etc/chrony.conf

En la directiva del servidor, cambia la fuente del servidor NTP por tu servidor NTP. En este ejemplo, el servidor NTP está ejecutando el servidor con la dirección IP‘192.168.5.100‘.

Además, puedes ver opciones adicionales en la directiva de servidor».

  • La opción iburst permite que el servicio Chronyd realice la primera actualización del reloj poco después del inicio.
  • La opción preferir dará prioridad a la fuente del Servidor NTP entre otros servidores sin opción preferir.
server 192.168.5.100 iburst prefer

Guarda el archivo y sal del editor cuando hayas terminado.

Ahora, ejecuta el siguiente comando para reiniciar el servicio Chrony y aplicar las nuevas configuraciones.

sudo systemctl restart chronyd

Por último, ejecuta el siguiente comando chronyc para verificar el estado actual de NTP en la máquina ‘cliente1‘.

chronyc tracking

Deberías ver que la máquina ‘cliente1‘ está conectada y sincroniza la hora con el servidor NTP‘ntp.hwdomain.io‘, que es la dirección IP del servidor ‘192.168.5.100‘.

fuentes de seguimiento

También puedes verificar los datos NTP detallados mediante el comando chronyc que aparece a continuación.

chronyc ntpdata

Ahora puedes ver en la sección ‘Dirección remota’ la dirección IP del Servidor NTP, y en la sección ‘Dirección local’ la dirección IP de la máquina actual.

ntpdata

A continuación, también puedes verificar las fuentes del Servidor NTP en la máquina‘cliente1‘ mediante el comando chronyc que aparece a continuación. Y deberías ver que la máquina cliente utiliza ahora el Servidor NTP‘ntp.hwdomain.io‘ con la dirección IP 192.168.5.100 como fuente del Servidor NTP predeterminada y preferida.

chronyc sources
chronyc sources -v

comprueba las fuentes

¡Enhorabuena! Ya has instalado correctamente el software de implementación NTP Chrony en el servidor Linux Rocky.

También te podría gustar...