Autor: Joel Barrios Dueñas
Correo electrónico: darkshram en gmail punto com
Sitio de Red: https://www.alcancelibre.org
Licencia Creative Commons
© 1999-2026 Joel Barrios Dueñas. Este manual se distribuye bajo la licencia Creative Commons Reconocimiento-NoComercial-CompartirIgual 4.0 Internacional (CC BY-NC-SA 4.0). Usted es libre de compartir y adaptar el material bajo los siguientes términos: debe dar crédito al autor, no puede utilizarlo para fines comerciales y debe compartir las obras derivadas bajo la misma licencia. La licencia completa está disponible en https://creativecommons.org/licenses/by-nc-sa/4.0/legalcode.es.
La sincronización precisa de la fecha y hora es un elemento fundamental para el correcto funcionamiento de servicios modernos, registros de sistema (logs), seguridad y comunicación entre servidores. En distribuciones como Red Hat Enterprise Linux 8/9/10, AlmaLinux, Rocky Linux y sus derivados, esta tarea se gestiona de manera integrada a través de systemd y herramientas específicas del protocolo NTP.
NTP (Protocolo de Tiempo de Red) es uno de los protocolos más antiguos de Internet, diseñado en 1985 por Dave Mills de la Universidad de Delaware. Su propósito es sincronizar los relojes de los sistemas informáticos a través de redes con latencia variable, utilizando un algoritmo diseñado para seleccionar las mejores fuentes de tiempo entre múltiples servidores.
La versión actual del protocolo —NTPv4— es capaz de mantener una precisión de hasta 10 milisegundos en redes de área extensa (WAN) y puede alcanzar una exactitud de 200 microsegundos en condiciones óptimas dentro de una red local (LAN). El protocolo opera exclusivamente sobre el puerto 123/UDP.
Durante años, la implementación de referencia y más utilizada fue ntpd, mantenida por la Universidad de Delaware. Sin embargo, las distribuciones Linux modernas migraron hacia otras soluciones por razones técnicas y de seguridad.
chrony: Se convirtió en la opción predeterminada para RHEL/CentOS 7 y versiones posteriores debido a su superior desempeño en sistemas que sin conexión permanentemente a la red, su capacidad para sincronizar el reloj más rápido y su mejor integración con entornos virtuales.ntpsec: Este proyecto surgió como un bifurcación (fork) de ntpd con un enfoque principal en la seguridad y la refactorización del código legado. En RHEL 9+ y derivados, ntpsec está disponible como un reemplazo casi transparente y recomendado para quienes prefieren la base de código tradicional de NTP pero con auditorías de seguridad activas y un desarrollo más moderno. ntpsec es gestionado por una comunidad que prioriza la corrección de vulnerabilidades y la eliminación de código obsoleto.NTP organiza las fuentes de tiempo en una jerarquía llamada estratos, que garantiza la escalabilidad y confiabilidad del servicio:
UTC es el estándar de tiempo civil que sustenta la sincronización global. Se basa en el Tiempo Atómico Internacional (TAI), que proporciona una escala de tiempo extremadamente estable y precisa. Para mantenerlo alineado con la rotación irregular de la Tierra, ocasionalmente se insertan segundos intercalares. Los sistemas informáticos configurados correctamente utilizan UTC como base y aplican compensaciones de zona horaria para mostrar la hora local.
En las distribuciones objetivo (RHEL 8+, AlmaLinux, Rocky Linux), el servicio predeterminado para sincronización de tiempo es chronyd, el cual se instala de manera predeterminada en muchas configuraciones. Si acaso estuviese ausente, puede instalarlo con dnf.
dnf -y install chrony
Como alternativa, especialmente relevante para RHEL 9+ y derivados, puede optar por instalar ntpsec, el reemplazo moderno y enfocado en seguridad del tradicional ntpd.
dnf -y install ntpsec
Para que otros equipos en la red puedan sincronizar su hora con este servidor, es necesario permitir el tráfico del servicio NTP. El servicio predefinido en FirewallD abre el puerto 123/UDP.
firewall-cmd --add-service=ntp --permanent
firewall-cmd --reload
Si sólo necesita que el servidor sincronice su hora con fuentes externas pero sin actuar como servidor para otros, esta regla es innecesaria.
Tras la instalación, habilite el servicio para que inicie automáticamente con el sistema e inicie éste de inmediato. El procedimiento es idéntico tanto para chrony como para ntpsec.
# Para Chrony
systemctl enable --now chronyd
# Para NTPsec
systemctl enable --now ntpd
La gestión de la zona horaria se realiza de manera sencilla con la herramienta timedatectl, parte de SystemD.
Para listar todas las zonas horarias disponibles en el sistema, ejecute:
timedatectl list-timezones
Para filtrar y ver únicamente las zonas horarias correspondientes a México:
timedatectl list-timezones | grep -i mexico
La salida será similar a la siguiente:
America/Mexico_City
Mexico/BajaNorte
Mexico/BajaSur
Mexico/General
Una vez identificada la zona horaria correcta, configure ésta en el sistema:
timedatectl set-timezone America/Mexico_City
El siguiente paso crucial es habilitar la sincronización automática del reloj del sistema a través de NTP. Este mandato configura al servicio (chronyd o ntpd) para que gestione el reloj de hardware (RTC, Real-time clock).
timedatectl set-ntp true
Para verificar el estado completo de la configuración de fecha, hora y servicios, ejecute:
timedatectl status
La salida, con datos actualizados, debe ser similar a esta:
Local time: Tue 2025-12-23 11:45:00 CST
Universal time: Tue 2025-12-23 17:45:00 UTC
RTC time: Tue 2025-12-23 17:45:00
Time zone: America/Mexico_City (CST, -0600)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
Los campos clave son System clock synchronized: yes, que confirma la sincronización exitosa, y NTP service: active, que indica que el servicio (chronyd o ntpd) está en ejecución y gestionando el reloj.
En equipos con arranque dual entre Linux y Microsoft Windows, existe una diferencia fundamental en cómo cada sistema operativo interpreta la hora almacenada en el reloj de hardware (RTC).
Esta discrepancia ocasiona que —al cambiar de sistema operativo— la hora aparezca con un desfase de varias horas. Para resolverlo en el lado de Linux, puede configurar el sistema para que el RTC también utilice la hora local.
⚠️ Nota sobre versiones modernas de Windows: Windows 10 (a partir de la versión 1803) y Windows 11 incluyen soporte para configurar el reloj del sistema en Tiempo Universal Coordinado (UTC) mediante una opción en el registro, mejorando la compatibilidad en entornos de arranque dual con Linux. Sin embargo, esta configuración no está activada por defecto en instalaciones estándar.
Advertencia: Esta configuración puede causar problemas con los cambios de horario de verano. Utilícela sólo si es estrictamente necesario.
timedatectl set-local-rtc 1
Para revertir al comportamiento estándar y más recomendable (RTC en UTC), ejecute:
timedatectl set-local-rtc 0
Tras cualquier cambio, verifique el estado con timedatectl status. El campo RTC in local TZ mostrará yes o no según la configuración.
Para una sincronización robusta, es aconsejable configurar múltiples servidores de estrato 1 o 2. Los archivos de configuración principales son:
/etc/chrony.conf/etc/ntp.confPor ejemplo, para añadir servidores públicos confiables en /etc/chrony.conf, busque y modifique líneas que comiencen con pool o server:
# Ejemplo de configuración en /etc/chrony.conf
server 0.pool.ntp.org iburst
server 1.pool.ntp.org iburst
server 2.pool.ntp.org iburst
server 3.pool.ntp.org iburst
Tras modificar la configuración de cualquiera de los servicios, aplique los cambios ejecutando lo siguiente:
# Para Chrony
systemctl reload chronyd
# Para NTPsec
systemctl reload ntpd
Puede supervisar el estado de sincronización con mandatos específicos:
# Ver estado de sincronización de Chrony
chronyc tracking
# Ver las fuentes de tiempo configuradas en NTPsec
ntpq -p
La correcta configuración de la fecha y hora del sistema es un pilar fundamental para la operación confiable de servicios, la seguridad de las comunicaciones y la integridad de los registros del sistema. A lo largo de este manual hemos explorado:
ntp de Delaware hacia las implementaciones modernas chrony y ntpsec.systemd (timedatectl).La elección entre chrony y ntpsec depende de los requerimientos específicos del entorno: chrony ofrece un desempeño superior en sistemas que no están permanentemente conectados a la red, mientras que ntpsec proporciona una base de código tradicional pero con un enfoque renovado en la seguridad. Ambas son opciones válidas y soportadas en las distribuciones modernas de la familia Red Hat.
Recuerde que, en un entorno de producción, es aconsejable configurar múltiples servidores de tiempo de estrato bajo y, si es posible, considerar el uso de fuentes de tiempo locales (como receptores GPS o relojes atómicos) para aplicaciones que exigen la máxima precisión.
Este conocimiento, combinado con otras prácticas de administración de sistemas ―como la configuración de un muro cortafuegos con FirewallD― contribuye a construir una infraestructura de TI robusta, segura y alineada con los estándares profesionales.
Lectura recomendada: Para profundizar en la administración de servicios de red en Linux, puede consultar el manual de Configuración de Squid como servidor intermediario con filtrado.