Guía para configurar Chrony como servidor y cliente NTP en AlmaLinux 9
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 implementa el NTP o Protocolo de Tiempo de Red y es 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 la siguiente guía, te mostraré cómo instalar Chrony en un servidor AlmaLinux 9. Instalaremos Chrony como servidor NTP y como cliente NTP. Además, también aprenderás a utilizar la línea de comandos chronyc para gestionar y monitorizar Chrony.
Requisitos previos
Para empezar, asegúrate de que tienes lo siguiente:
- Un servidor AlmaLinux 9 – Esta demo utiliza un servidor con el nombre de host alma9 y la dirección IP 192.168.10.15.
- La máquina cliente Linux también utiliza una máquina AlmaLinux con nombre de host nodo1 y dirección IP 192 .168.10.20.
- Un usuario no root con privilegios de administrador root.
Configurar la zona horaria del sistema
Para configurar una zona horaria en Linux, puedes utilizar la utilidad timedatectl. La siguiente sección te mostrará cómo configurar y verificar la zona horaria del sistema antes de instalar el servidor NTP de Chrony.
Primero, comprueba la lista de zonas horarias disponibles utilizando el siguiente comando y decide qué zona horaria quieres utilizar.
sudo timedatectl list-timezones
Ahora ejecuta el siguiente comando para cambiar la zona horaria por defecto de tu servidor. El siguiente comando configurará la zona horaria por defecto a Europa/Amsterdam.
sudo timedatectl set-timezone Europe/Amsterdam
A continuación, comprueba la zona horaria actual utilizando el siguiente comando.
sudo timedatectl
Dentro de la sección Zona horaria, puedes ver tu zona horaria actual.
También puedes comprobar la zona horaria por defecto del sistema consultando el archivo /etc/localtime. Asegúrate de que el archivo es un enlace simbólico de la zona horaria adecuada.
ls -lah /etc/localtime
Instalación de Chrony
Chrony es una implementación del protocolo NTP que puede utilizarse como servidor NTP y cliente NTP. La siguiente sección te mostrará cómo instalar Chrony y gestionar el servicio Chrony mediante la utilidad systemctl.
Para empezar, ejecuta el siguiente comando dnf para encontrar el paquete chrony en el repositorio de AlmaLinux. Deberías ver que el repositorio baseos por defecto proporciona chrony y está listo para instalar.
sudo dnf search chrony
Instala chrony mediante el siguiente comando dnf. Cuando se te pida, introduce y para confirmar y pulsa ENTER.
sudo dnf install chrony
Una vez instalado Chrony, ejecuta el siguiente comando para iniciar y habilitar el servicio chronyd. El chronyd es un servicio systemd para Chrony, con estos comandos, chronyd se ejecutará e iniciará automáticamente al arrancar el sistema.
sudo systemctl start chronyd sudo systemctl enable chronyd
Verifica el servicio chronyd utilizando el siguiente comando para asegurarte de que el servicio se está ejecutando.
sudo systemctl status chronyd
La siguiente salida confirma que chronyd se está ejecutando, ya que aparece el mensaje de salida activo (en ejecución).
Configurar Firewalld
Una vez instalado Chrony, debes abrir el puerto NTP en el servidor NTP. Ahora, añadirás el servicio NTP al firewalld mediante la línea de comandos firewall-cmd.
Si estás ejecutando un servidor NTP público, ejecuta el comando firewall-cmd que aparece a continuación para permitir que cualquiera acceda a tu instalación del servidor NTP.
sudo firewall-cmd --add-service=ntp --permanent sudo firewall-cmd --reload
Pero, si estás ejecutando un servidor NTP para tus redes locales, ejecuta el comando firewall-cmd que aparece a continuación para especificar la subred de red mediante la regla rich de firewalld.
sudo firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='192.168.5.0/24' service='ntp' accept" sudo firewall-cmd --reload
Si todo está completo, verifica la lista de reglas firewalld mediante el siguiente comando.
sudo firewall-cmd --list-all
Deberías obtener el servicio ntp añadido a la lista de servicios firewalld.
Configurar Chrony como servidor NTP
Un servidor NTP es el destino donde tus clientes pueden sincronizar la hora del sistema. Para configurar Chrony como servidor NTP, tienes que cambiar dos configuraciones principales:
- Añadir pool NTP como fuente: visita https://www.ntppool.org/en/ para obtener los servidores NTP disponibles que se pueden utilizar como fuente.
- Permitir red interna: añade las subredes de tu red interna a las que se permitirá acceder y utilizar tu servidor NTP. De esta forma podrás crear un servidor NTP privado/local para tu entorno.
Abre la configuración por defecto de chrony /etc/chrony. conf utilizando el siguiente comando del editor nano.
sudo nano /etc/chrony.conf
Visita https://www.ntppool.org/en/ y elige los servidores NTP públicos disponibles que se utilizarán como fuentes. En la mayoría de los casos, depende de la ubicación de tus servidores, elige servidores NTP cercanos como fuente.
A continuación, añade al servidor el parámetro
# list servers server 0.nl.pool.ntp.org iburst server 1.nl.pool.ntp.org iburst server 2.nl.pool.ntp.org iburst server 3.nl.pool.ntp.org iburst
Añade el parámetro permitir y especifica tu subred de red. Cualquier subred de red dentro del parámetro allow podrá acceder a tu instalación del servidor NTP.
# allowed clients allow 192.168.10.0/24
Además, es posible que también tengas que ajustar las siguientes opciones:
# 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
Cuando hayas terminado, guarda y cierra el editor.
Ahora ejecuta el siguiente comando systemctl para reiniciar el servicio chronyd y aplicar los cambios.
sudo systemctl restart chronyd
Una vez reiniciado chronyd, ejecuta el comando chronyc que aparece a continuación para verificar las fuentes actuales del servidor NTP. El chronyc es una utilidad de línea de comandos proporcionada por Chrony para gestionar tanto el servidor NTP como el cliente.
chronyc sources
Si todo va bien, deberías ver la lista de fuentes del servidor NTP más cercano.
Además, también puedes obtener versiones detalladas del informe añadiendo la opción -v, que significa salida verbosa.
chronyc sources -v
Configurar Chrony como cliente NTP
En la parte superior, has aprendido cómo crear un servidor NTP con Chrony. Ahora aprenderás a configurar Chrony como cliente NTP. El paquete Chrony está instalado en la máquina cliente con nombre de host nodo1 y dirección IP 192.168.10.20 en el siguiente ejemplo.
Para configurar Chrony como cliente NTP, debes añadir tu servidor NTP al parámetro servidor dentro del archivo de configuración de Chrony /etc/chrony.conf.
En primer lugar, ejecuta el siguiente comando para asegurarte de que el servicio chronyd se está ejecutando en tu máquina cliente.
sudo systemctl status chronyd
Si se está ejecutando, debería aparecer la siguiente salida:
Ahora abre el archivo de configuración de chrony /etc/chrony.conf utilizando el editor nano.
sudo nano /etc/chrony.conf
Añade tu servidor NTP al parámetro servidor. Puedes utilizar si dirección IP o fqdn de tu servidor NTP.
Un parámetro adicional iburst permite al servicio Chronyd realizar la primera actualización del reloj poco después del inicio, y el parámetro prefer dará prioridad a la fuente del servidor NTP entre otros servidores sin la opción prefer.
server 192.168.10.15 iburst prefer
Ahora ejecuta el siguiente comando systemctl para reiniciar el servicio chronyd y aplicar los cambios. A continuación, verifica el chronyd para asegurarte de que el servicio se está ejecutando.
sudo systemctl restart chronyd sudo systemctl status chronyd
Por último, introduce el siguiente comando para verificar las fuentes del servidor NTP en tu máquina cliente.
chronyc sources chronyc sources -v
Si tienes éxito, deberías ver que tu servidor NTP se utiliza como fuente del servidor NTP en la máquina cliente.
Uso básico del comando Chronyc
Chronyc es una interfaz de línea de comandos para gestionar Chrony, ya sea como servidor NTP o como cliente NTP. En esta última sección aprenderás algunos comandos chronyc básicos para gestionar tu instalación NTP.
El parámetro de seguimiento te mostrará el rendimiento del reloj del sistema.
chronyc tracking
En la sección ID de referencia, deberías ver la fuente del servidor NTP que está sincronizado actualmente.
Con el parámetro ntpdata, puedes medir y comprobar la fuente NTP.
chronyc ntpdata
En Dirección remota, puedes ver la dirección IP de la fuente del servidor NTP. En la sección Puerto remoto, debes obtener el puerto por defecto del servidor NTP que se utiliza actualmente. Por último, en la sección Dirección local, deberías ver la dirección IP de la máquina cliente como ID de referencia correspondiente.
A continuación, utiliza el parámetro actividad para mostrar el número de servidores NTP del par.
chronyc activity
Puedes ver la salida online si el servidor NTP es alcanzable y sólo, y el estado offline si el servidor peer está desconectado.
Por último, también puedes permitir/denegar subredes de red en Chrony a través de la línea de comandos chronyc.
Utiliza el parámetro permitir para permitir que las subredes accedan al servidor NTP de Chrony y lo utilicen.
chronyc allow IP/subnet
Para denegar a subredes el acceso a tu servidor NTP Chrony, utiliza el parámetro denegar de esta forma:
chronyc deny IP/subnet
Conclusión
¡Buen trabajo! Ya has instalado con éxito Chrony en el servidor AlmaLinux 9. También has aprendido a configurar un servidor NTP con Chrony, y a configurar un cliente NTP utilizando Chrony. Además, también has configurado la zona horaria del sistema mediante timedatectl y has aprendido algunas nociones básicas de la línea de comandos chronyc para gestionar la instalación de Chrony.