Configuración de un servidor NTP

chrony es el servicio predeterminado en las versiones más recientes de Linux (desde RHEL/CentOS 7.2 y posteriores, y cualquier versión reciente de Ubuntu).

chrony es una implementación de NTP (Network Time Protocol) y reemplaza a ntpd, que era el servicio por defecto de NTP. NTP sigue usándose en otras distribuciones y derivados de Unix, pero chrony tiene ciertas ventajas en entornos con conexiones de red menos estables, como portátiles y otros dispositivos móviles.

ntpd (Network Time Protocol Daemon) es el servidor (o servicio) de NTP original. ntpd ha sido la preferencia en muchos entornos pero requiere que las conexiones sean estables.

Los dos servicios se encargan de distribuir la hora o recibirla para mantener la hora del sistema sincronizada.

chrony tiene varias ventajas sobre ntpd:

  • Sincronización más rápida.
  • Mejor respuesta a los cambios en la frecuencia de reloj (muy útil para máquinas virtuales).
  • No se requiere una conexión periódica a los servidores de tiempo.

Por otro lado carece de algunas características como broadcast, multicast y autenticación de paquetes de Autokey. Cuando esto sea necesario, o para los sistemas que se van a mantener encendidos continuamente, ntpd es una mejor opción.

Una lista de comparación más completa está disponible aquí:

https://chrony.tuxfamily.org/comparison.html

Localiza un grupo de servidores, o un servidor de NTP lo mas cerca posible de tu ubicación geográfica.

https://www.pool.ntp.org/es/

Configurando chrony como un servidor NTP

chrony se instala de forma predeterminada en muchas distribuciones. Si aún no lo tienes, instálalo.

Edita el archivo de configuración.

# vi /etc/chrony.conf

Haz los siguientes cambios.

# Edita las entradas que tengas como preferencia
# pool.ntp.org es un pool genérico que intentara darte servidores cercanos
# pool.es.ntp.org es un pool solo de servidores en España
# iburst ayudará a que la primera sincronización sea más rápida

server 0.pool.ntp.org iburst
server 1.pool.ntp.org iburst
server 2.pool.ntp.org iburst
server 3.pool.ntp.org iburst

# Ayuda estabilizar la sincronización inicial entre reinicios del sistema

driftfile /var/lib/chrony/drift

# Con esta entrada chrony permitirá proveer la hora aunque las fuentes de arriba no estén disponibles.

local stratum 8

# Abre el puerto NTP para responder a peticiones de clientes
# Edítalo con la subred donde estén el servidor y los clientes

allow 192.168.1.0/24

# Activa el soporte para usar el comando settime en chronyc

manual

Inicia y activa el servicio.

# systemctl start chronyd
# systemctl enable chronyd

Comprueba la configuración del cortafuegos si es necesario en la última sección del artículo.

Configuración del cliente Chrony

server [DIRECCION IP/NOMBRE DEL SERVIDOR] iburst
driftfile /var/lib/chrony/drift
logdir /var/log/chrony
log measurements statistics tracking

Comprobando la funcionalidad de Chrony

[Comprueba que el servicio se esta ejecutando]
$ systemctl status chrony

[Muestra el rendimiento del reloj del sistema]
$ chronyc tracking

[Muestra las fuentes de tiempo]
$ chronyc sources

Más información sobre Chrony:

https://chrony.tuxfamily.org/faq.html

https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/system_administrators_guide/ch-configuring_ntp_using_the_chrony_suite

Configuración de un servidor NTP con ntpd

Instala ntpd para tu distribución si aún no lo tienes.

# yum install ntp
# dnf install ntp
# apt install ntp

Sincronización con el propio reloj del sistema del servidor

Si el sistema va a estar aislado, sin conexión a Internet o con cualquier otra fuente de tiempo disponible, puedes usar su reloj interno.

Edita /etc/ntp.conf.

# Para indicar a ntpd que use la hora del reloj interno
server 127.127.1.0 prefer 
fudge 127.127.1.0
driftfile /etc/ntp.drift
tracefile /etc/ntp.trace

Esto funcionará en una red aislada, pero no será la hora correcta. Esto puede ser necesario en algunas circunstancias, pero lo mejor es sincronizar desde otras fuentes de tiempo (sección siguiente).

Sincronización con otros servidores NTP

# Edita las entradas que tengas como preferencia
# pool.ntp.org es un pool genérico que intentará darte servidores cercanos
# pool.es.ntp.org es un pool solo de servidores en España
# iburst ayudara a que la primera sincronización sea más rápida

server 0.pool.ntp.org iburst
server 1.pool.ntp.org iburst
server 2.pool.ntp.org iburst
server 3.pool.ntp.org iburst

# Edita para indicar la dirección y rango de tu subred
# nomodify - Impide a los clientes reconfigurar el servidor
# notrap - Los clientes no pueden usarse como pares para sincronizarse entre ellos
restrict 192.168.1.0 netmask 255.255.255.0 nomodify notrap

# Indica donde guardar los logs
logfile /var/log/ntp.log

Inicia, activa y comprueba el estado de ntpd:

# systemctl start ntpd
# systemctl enable ntpd
# systemctl status ntpd

Recuerda que tendrás que abrir tu cortafueogs para permitir peticiones de NTP. Hay algunas instrucciones más abajo.

Configuración del cliente ntpd

server [DIRECCION IP/NOMBRE DEL SERVIDOR] iburst
driftfile /var/lib/ntp/drift

Comprobando que ntpd funciona desde el cliente

$ ntpq -p
$ date -R

Más información sobre ntpd:

https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/system_administrators_guide/ch-configuring_ntp_using_ntpd

Cortafuegos

Recuerda que es posible que tengas que abrir tu cortafuegos para que los clientes se conecten a tu servidor.

[Red Hat / CentOS]

# firewall-cmd --add-service=ntp --permanent
# firewall-cmd --reload

[Ubuntu]

# ufw allow ntp

[o también]

# ufw allow 123/udp

Es posible que también desees modificar la regla para limitar el acceso solo a ciertas subredes o clientes.

Puedes añadir líneas a las configuraciones de chrony y ntpd para permitir el tráfico IPv6. Tendrás que añadir también reglas al cortafuegos adicionales. En este ejemplo usamos IPv4 para hacerlo mas simple.

Traducido con autorización de Learning to learn

0 0 votos
Article Rating
Subscribe
Notify of
0 Comments
Opiniones Inline
Ver todos los comentarios
0
Me encantaría saber tu opinión, por favor, deja un comentariox
()
x