Tabla de Contenidos
108.1 Maintain system time
Pertenece a Topic 108: Essential System Services
- Weight: 3
- Description: Candidates should be able to properly maintain the system time and synchronize the clock via NTP.
- Key Knowledge Areas:
- Set the system date and time.
- Set the hardware clock to the correct time in UTC.
- Configure the correct timezone.
- Basic NTP configuration using ntpd and chrony.
- Knowledge of using the pool.ntp.org service.
- Awareness of the ntpq command.
- The following is a partial list of the used files, terms and utilities:
/usr/share/zoneinfo//etc/timezone/etc/localtime/etc/ntp.conf/etc/chrony.confdatehwclocktimedatectlntpdntpdatechronycpool.ntp.org
NTP server
NTP (Network Time Protocol)
En servidores en producción el ajuste de la hora debe ser muy preciso debido a que hay tareas que puedan estar programadas o para la sincronización entre servicios.
Lo ideal es que todo un entorno tenga siempre el mismo uso y misma hora. Para centralizar esto, se hace uso del NTP, un servidor de horas externo que configuramos en nuestras máquinas.
Vamos a instalar un servicio de NTP en nuestra máquina para poder conectarnos y sincronizar con un servidor NTP externo.
En Debian:
apt-get install ntp
ntp actua a la vez como cliente y como servidor.
Una vez instalado, podemos verificar que está funcionando con systemct status ntp.service.
Si usamos el comando ntpq -p podemos ver un listado de servidores a los que se está conectando para recibir la fecha y hora.
El proyecto NTP Pool (ntppool.org) es una gran granja de servidores de hora públicos alrededor del mundo que ofrecen sincronización de hora fiable para ser utilizados por todo el mundo
Podemos coger un servidor público, de los que forma parte del proyecto, y usarlo para sincronizar nuestra hora con esos servidores:
server ntp.ubuntu.com server 0.pool.ntp.org server 1.pool.ntp.org server 2.pool.ntp.org
La configuración principal del servicio está en /etc/ntp.conf
server: servidores a los que se conectarestrict: son las reglas para aceptar conexiones (para actuar como servidor)default ignore: bloquea todo por defectonoquery: bloquea las peticiones- Siempre hay que usar IPs no hostnames:
restrict 192.168.1.0 netmask 255.255.0.0
broadcast: envía paquetes ntp por broadcast a la red (para actuar como servidor)broadcastclient: recibe la info de sincronización por broadcast
Para configurar que nuestro Linux funcione como un servidor NTP ponemos uno de los servidores públicos como servidor de referencia y reiniciamos el servicio. Las máquinas clientes tendrán que configurar nuestra ip como su servidor de referencia.
Para comprobar la conexión a los servidores configurados usamos el comando ntpq -p
# ntpq -p remote refid st t when poll reach delay offset jitter ============================================================================ xmen.exsv.net 212.83.133.52 3 u 12 64 1 4.860 -117548 0.000 srv1.linsrv.net 145.238.203.10 3 u 11 64 1 0.476 -117548 0.000
En algunos casos puede ser más sencillo usar la utilidad ntpdate para referir directamente a un servidor NTP. Ejemplo:
ntpdate ntp.ubuntu.com
Si tenemos corriendo ya un servidor ntp en nuestra máquina, ntpdate no podrá funcionar, ya que el puerto ntp estará ocupado por el servidor que ya está corriendo.
Chrony
Chrony es una nueva implementación del servicio NTP que parece ser más eficiente que el servicio clásico.
En Debian lo podemos instalar con:
apt-get install chrony
Al usar el mismo puerto, no pueden estar funcionando ntp y chrony a la vez.
El archivo de configuración principal es /etc/chrony.conf (/etc/chrony/chrony.conf en Debian).
Las directivas principales son:
server: servidores usados para sincronizarpool: pools de servidores usados para sincronizarallow: direcciones permitidas para servir sincronizacióndeny: direcciones bloqueadas para servir sincronización
Chrony consta de dos elementos:
- El servidor:
chronyd - La aplicación (cliente):
chronyc
Para hacer consultas de los datos de hora:
chronyc tracking
Poner salida del anterior comando
Consultar los servidores NTP los que estamos conectados
chronyc sources
Poner salida del anterior comando
Con -v nos da una descripción de todos los datos de la vista.
Poner salida del anterior comando
A la hora de establecer servidores NTP, la opción iburst está recomendada ya que envía una serie (burst) de paquetes solo si no se puede obtener una conexión con el primer intento. Por otro lado, la opción burst siempre está presente, incluso en el primer intento, pero nunca debe utilizarse sin permiso explícito, dado que pueden incluirnos en una lista negra (blacklist).
hwclock
Muestra o cambia la hora del reloj de la placa base
hwclock --hctosys: cambia la hora del sistema por la que tenga el reloj hardwarehwclock --systohc: cambia la hora del hardware (BIOS) por la que tenga el sistema operativohwclock --set --date=“20:20”: cambia la hora
Si ejecutamos el comando sin opciones mostrará la fecha y hora del reloj de la placa base.
# hwclock 2022-04-19 11:33:13.123456+0200
ntpdate
Es posible forzar una sincronización manual con el comando ntpdate. Este comando utiliza como parámetro un nombre de servidor ntp:
ntpdate es.pool.ntp.org
En sistemas Debian se instala mediante el paquete ntpdate
