Configurar un servidor Linux para que sincronice su hora utilizando los Controladores de Dominio (DCs) de un dominio Windows como fuente de tiempo NTP.
Requisitos Previos
- Acceso root o sudo en el servidor Linux.
- Conectividad de red con al menos uno de los Domain Controllers.
- Los DCs deben tener habilitado el servicio de tiempo (W32Time).
- Verificar que el firewall permita el tráfico NTP (UDP/123).
Paso 1: Identificar los Domain Controllers
Puedes obtener la lista de DCs desde una máquina con herramientas AD o mediante resolución DNS:
nslookup -type=SRV _ntp._udp.Dominio.local
También puedes listar directamente los DCs:
dig +short _ldap._tcp.dc._msdcs.Dominio.local SRV
Apunta sus FQDN o IPs.
Paso 2: Instalar y configurar NTP o Chrony
Dependiendo de tu distribución, puedes usar chrony
(más moderno) o ntpd
. Se recomienda Chrony por su precisión y flexibilidad.
2.1 Para sistemas con Chrony (CentOS 7/8, RHEL, Debian 10+, Ubuntu 18.04+)
Instalar Chrony
sudo apt install chrony # Debian/Ubuntu
sudo yum install chrony # CentOS/RHEL
Editar configuración /etc/chrony/chrony.conf
Comenta los servidores por defecto y añade los DCs:
# pool 0.debian.pool.ntp.org iburst
# pool 1.debian.pool.ntp.org iburst
server dc1.dominio.local iburst
server dc2.dominio.local iburst
Reinicia el servicio:
sudo systemctl enable chronyd
sudo systemctl restart chronyd
Verificar sincronización
chronyc sources -v
chronyc tracking
2.2 Para sistemas con NTP clásico (ntpd
)
Instalar NTP
sudo apt install ntp # Debian/Ubuntu
sudo yum install ntp # CentOS/RHEL
Configurar /etc/ntp.conf
Edita el archivo y añade los Domain Controllers:
server dc1.dominio.local iburst
server dc2.dominio.local iburst
restrict default kod nomodify notrap nopeer noquery
restrict 127.0.0.1
restrict ::1
Reinicia el servicio:
sudo systemctl enable ntp
sudo systemctl restart ntp
Verificar sincronización
ntpq -p
Paso 3: Verificar conectividad NTP con los DCs
Antes de forzar sincronización, asegúrate de que puedes contactar el puerto 123 UDP:
sudo nmap -sU -p 123 dc1.dominio.local
Paso 4: Forzar sincronización manual (opcional)
Con Chrony:
sudo chronyc -a makestep
Con NTPD:
sudo ntpd -gq
Paso 5: Verificar sincronización de hora del sistema
timedatectl status
Asegúrate de que el sistema esté sincronizado y con la zona horaria correcta.
Consideraciones de seguridad
- Es recomendable usar FQDNs de los DCs, especialmente si hay cambios de IP.
- Evita usar servidores públicos si dependes de sincronía Kerberos (5 minutos de desviación puede causar fallos de autenticación).
- Asegúrate de que los DCs tengan su hora sincronizada correctamente (normalmente desde el PDCe y luego desde fuentes externas fiables).