6.3 La Dimensión del Tiempo (NTP)
¡Prepárate!
- Entenderás la letalidad de un servidor “desincronizado”. - Distinguirás
entre la hora de la BIOS (
hwclock) y la hora del S.O. - Sabrás utilizartimedatectlpara fijar tu continente (Timezone). - Configurarás el protocolo NTP instalando y manejandochrony.
1. El Peligro del Tiempo
Sección titulada “1. El Peligro del Tiempo"Para un ordenador personal, tener el reloj atrasado 5 minutos solo significa que llegarás tarde a una reunión. Para un Servidor de base de datos, 5 minutos de atraso significan la destrucción del negocio:
- Criptografía Rota: Si un servidor tuyo intenta conectarse a la pasarela de pagos del banco, y el banco detecta que el reloj de tu servidor dice que son las 15:00 mientras que en el banco son las 15:05, el banco catalogará la conexión como un “Ataque de Replay” y cortará tus transacciones financieras en seco.
- Logs Inservibles: Si sufres un hackeo, y un servidor registra el ataque a las 11:00 y el otro servidor lo registra a las 11:02 porque no estaban sincronizados entre sí, es imposible reconstruir la autopsia de por dónde entró el hacker.
2. Los Dos Relojes
Sección titulada “2. Los Dos Relojes"Todo ordenador tiene en realidad dos relojes diferenciados que pelean entre sí:
- Reloj de Hardware (Real Time Clock - RTC): El chip físico alimentado por la pila de botón de la placa base.
- Reloj del Sistema (Software): El reloj imaginario que Linux empieza a contar en la memoria RAM nada más encenderse leyendo inicialmente la BIOS.
Podemos obligarlos a hablarse:
# Ver la hora real de la diminuta BIOS de la placa basesudo hwclock --show
# Obligar a la BIOS a ajustarse forozosamente a la hora que tenga el Linux ahora mismosudo hwclock --systohc3. Configurar la Franja Horaria (Timezone)
Sección titulada “3. Configurar la Franja Horaria (Timezone)"Por defecto, los servidores modernos corporativos siempre se configuran en UTC (Universal Time Coordinated), sin retrasos ni adelantos ni cambios de verano, para que todos los servidores del mundo hablen el mismo idioma en los Logs.
Aun así, si necesitas forzar la hora local de Madrid o México, la herramienta obligatoria de Systemd es timedatectl:
# Ver el resumen y estado de la hora actualtimedatectl status
# Buscar cómo se escribe el nombre oficial de Madridtimedatectl list-timezones | grep Madrid
# Asignar la zona horaria perpetuamente (Reemplaza el antiguo /etc/localtime)sudo timedatectl set-timezone Europe/Madrid4. NTP: El Latido Global (chrony)
Sección titulada “4. NTP: El Latido Global (chrony)"En lugar de ajustar la hora a mano como en un reloj de pulsera, los servidores utilizan el mágico Network Time Protocol (NTP). NTP viaja por internet, se conecta a relojes atómicos controlados por universidades y gobiernos, y calcula el retraso que genera el cable submarino de internet para ajustar la hora de tu máquina al absoluto milisegundo perfecto de manera constante y paramétrica cada pocos minutos.
En el viejo estándar se usaba un paquete llamado ntp. En el mundo LFCS moderno corporativo de hoy se exige usar su versión rápida y superior: chrony.
# Instalamos el motor de reloj atómicosudo apt install chrony
# Iniciar y asegurar que corre cada vez que el servidor se enciendasudo systemctl enable --now chronydSi quieres ver cómo de bien se está comunicando tu servidor con el mundo exterior:
# Monitorea los servidores atómicos mundiales a los que estás enlazadochronyc sources -v_(Si ves líneas con símbolos de ^_, significa que estás mágicamente enganchado y tu reloj JAMÁS se atrasará ni un segundo).*
Comprueba tus conocimientos
Sección titulada “Comprueba tus conocimientos"-
Tras encender cinco nuevos servidores clonados de una plantilla antigua que ha estado apagada 2 años, notas que la base de datos de los 5 equipos arroja el timestamp del año 2022 y las conexiones con el Master fallan. Necesitas reventar y forzar instantáneamente la hora con un estándar sin depender de interfaces gráficas. Identifica el comando fundamental para decirle a la matriz de Systemd que estampe la hora local a Madrid.
-
Acabas de alquilar en Hetzner (Alemania) 3 servidores desnudos para montar un cluster bancario el cual va a enviar miles de transacciones cruzadas por segundo. Tu jefe te recalca la extrema e imperativa regla de oro Sysadmin sobre cómo deben estar configurados todos los husos horarios del ecosistema para no corromper la trazabilidad en bases de datos con los cambios de verano/invierno de cada país. ¿Qué Timezone se exige usar en clústeres?
-
Tiras el comando
chronyc sources -vy adviertes que te estás comunicando por defecto con el gran pool global europeopool.ntp.orgpara ajustar tus milisegundos. Sin embargo, tu empresa tiene alta seguridad militar en intranet aislada y te acaban de abrir un puerto hacia su propio servidor “Satelital GPS” situado internamente en la IP10.0.0.9. ¿Para que Chrony deje de llamar al exterior y use tu IP interna como Dios del tiempo, qué habría que manipular teóricamente?