Si algunos de nuestros foros, manuales, ALDOS, paquetería o proyectos te han resultado de ayuda, apreciaremos mucho nos apoyes con un donativo.

Configuración y uso de NTP.

Autor: Joel Barrios Dueñas
Correo electrónico: darkshram en gmail punto com
Sitio de Red: http://www.alcancelibre.org/
Jabber ID: darkshram@jabber.org

Creative Commons Reconocimiento-NoComercial-CompartirIgual 2.1

© 1999-2012 Joel Barrios Dueñas. Usted es libre de copiar, distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. b) No puede utilizar esta obra para fines comerciales (incluyendo su publicación, a través de cualquier medio, por entidades con fines de lucro). c) Si altera o transforma esta obra o genera una obra derivada, sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. Al reutilizar o distribuir la obra, tiene que dejar bien claro los términos de la licencia de esta obra. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. Licencia completa en castellano. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector, hace mal uso de éstos.

Introducción.

Acerca de NTP.

NTP (Network Time Protocol) es un protocolo —de entre los más antiguos protocolos de Internet (1985)— utilizado para la sincronización de relojes de sistemas computacionales a través de redes, haciendo uso de intercambio de paquetes (unidades de información transportadas entre nodos a través de enlaces de datos compartidos) y latencia variable (tiempo de demora entre el momento en que algo inicia y el momento en que su efecto inicia). NTP fue originalmente diseñado —y sigue siendo mantenido— por Dave Mills, de la universidad de Delaware.

NTP utiliza el algoritmo de Marzullo (inventado por Keith Marzullo), el cual sirve para seleccionar fuentes de origen para la estimación exacta del tiempo a partir de un número determinado de fuentes de origen desordenadas, utilizando la escala UTC.

La versión 4 del protocolo puede mantener el tiempo con un margen de 10 milisegundos a través de la red mundial, alcanzado exactitud de 200 microsegundos. En redes locales, bajo condiciones idóneas, este margen se puede reducir considerablemente.

El protocolo trabaja a través del puerto 123, únicamente a través de UDP.

URL: http://www.ietf.org/rfc/rfc1305.txt

Estratos.

NTP utiliza el sistema jerárquico de estratos de reloj.

Estrato 0: son dispositivos, como relojes GPS o radio relojes, que carecen de conectividad hacia redes. Sólo están conectados a computadoras que son las encargadas de distribuir los datos.

Estrato 1: Los sistemas se sincronizan con dispositivos del estrato 0. Los sistemas de este estrato son referidos como servidores de tiempo.

Estrato 2: Los sistemas envían sus peticiones NTP hacia servidores del estrato 1, utilizando el algoritmo de Marzullo para recabar las mejores muestra de datos, descartando que parezcan proveer datos erróneos y compartiendo datos con sistemas del mismo estrato 2. Los sistemas de este estrato actúan como servidores para el estrato 3.

Estrato 3: Los sistemas utilizan funciones similares a las del estrato 2, sirviendo como servidores para el estrato 4.

Estrato 4: Los sistemas utilizan funciones similares a las del estrato 3.

Lista de servidores públicos, de estrato 1 y 2, en http://kopernix.com/?q=ntp y http://www.eecis.udel.edu/~mills/ntp/servers.html

Acerca de UTC.

UTC (Coordinated Universal Time o Tiempo Universal Coordinado) es un estándar de alta precisión de tiempo atómico. Tiene segundos uniformes definidos por TAI (Tiempo Atómico Internacional o International Atomic Time), con segundos intercalares o adicionales que se anuncian a intervalos irregulares para compensar la desaceleración de la rotación del planeta Tierra, así como otras discrepancias. Estos segundos adicionales permiten a UTC estar casi a la par del Tiempo Universal (UT o Universal Time), el cual es otro estándar pero basado sobre el ángulo de rotación de la Tierra, en lugar de el paso uniforme de los segundos.

URL: http://es.wikipedia.org/wiki/UTC

Equipamiento lógico necesario.

En CentOS, Fedora™ y Red Hat™ Enterprise Linux.

Ejecute lo siguiente para instalar o actualizar todo necesario:

yum -y install ntp ntpdate

En openSUSE™ y SUSE™ Linux Enterprise.

Ejecute lo siguiente para instalar o actualizar todo necesario:

yast -i ntp

Modificaciones necesarias en el muro cortafuegos.

Es necesario abrir el acceso hacia el puerto 123 sólo por UDP (NTP).

En CentOS, Fedora™ y Red Hat™ Enterprise Linux.

System-config-firewall.

Ejecute lo siguiente si utiliza el muro cortafuegos predeterminado del sistema:

system-config-firewall

Y habilite el acceso al puerto 123 por UDP y aplique los cambios.

Habilitando el puerto 123 UDP en system-config-firewall
Herramienta system-config-firewall habilitando el puerto 123 por UDP.

Servicio iptables.

Ejecute lo siguiente:

iptables -A INPUT -m state --state NEW -m udp -p udp --dport 123 -j ACCEPT

Ejecute lo siguiente para guardar los cambios:

service iptables save

O bien edite el archivo /etc/sysconfig/iptables:

vim /etc/sysconfig/iptables

Y añada el siguiente contenido:

-A INPUT -m state --state NEW -m udp -p udp --dport 123 -j ACCEPT

Ejecute lo siguiente para aplicar los cambios:

service iptables restart

Shorewall.

Edite el archivo /etc/shorewall/rules:

vim /etc/shorewall/rules

Las reglas correspondería a algo similar a lo siguiente, asumiendo que sólo se va a permitir a la red de área local acceder al servidor NTP para permitir a éstos sincronizar la hora del sistema:

#ACTION	SOURCE	DEST	PROTO 	DEST		SOURCE
#				PORT		PORT(S)1
ACCEPT	loc	fw	udp	123

Si se va a permitir a la red de área local acceder hacia servidores de tiempo localizados en Internet, en lugar de utilizar un servidor en la misma red de área local, es necesario utilizar las siguientes reglas:

#ACTION	SOURCE	DEST	PROTO 	DEST		SOURCE
#				PORT		PORT(S)1
ACCEPT	loc	net	udp	123

Ejecute lo siguiente para aplicar los cambios:

service shorewall restart

En openSUSE™ y SUSE™ Linux Enterprise.

Ejecute yast con firewall como argumento:

yast firewall

Y habilite xntp Server o Servidor xntp, según sea el caso o bien abra el puerto 123 por UDP y aplique los cambios.

Habilitando xntp Server en YaST modo texto.
Módulo de cortafuegos de YaST, en modo texto, habilitando xntp Server.

O bien haga clic en YaSTSeguridad y usuariosServicios autorizados y active Servidor xntp y aplique los cambios.

Habilitando Servidor xntp en YaST en modo gráfico.
Módulo de cortafuegos de YaST, en modo gráfico, habilitando servidor xntp.

Activar, iniciar, detener y reiniciar el servicio.

En CentOS, Fedora™ y Red Hat™ Enterprise Linux.

Ejecute lo siguiente para activar el servicio en todos los niveles de ejecución:

chkconfig ntpd on

Ejecute lo siguiente para iniciar el servicio por primera vez:

service ntpd start

Ejecute lo siguiente para reiniciar el servicio y aplicar cambios a la configuración:

service ntpd restart

Ejecute lo siguiente para detener el servicio:

service ntpd stop

En openSUSE™ y SUSE™ Linux Enterprise.

Ejecute lo siguiente para activar el servicio en todos los niveles de ejecución:

insserv ntp

Ejecute lo siguiente para iniciar el servicio por primera vez:

rcntp start

Ejecute lo siguiente para reiniciar el servicio y aplicar cambios a la configuración:

rcntp restart

Ejecute lo siguiente para detener el servicio:

rcntp stop

Procedimientos.

Herramienta ntpdate

Una forma muy sencilla de sincronizar el reloj del sistema con cualquier servidor de tiempo es a través de ntpdate. Se trata de una herramienta similar a rdate y se utiliza para establecer la fecha y hora del sistema utilizando NTP. El siguiente ejemplo realiza una consulta directa NTP, ejecutando ntpdate con la opción -u, para definir se utilice un puerto sin privilegios, hacia el servidor 0.pool.ntp.org.

ntpdate -u 0.pool.ntp.org

La opción -u se utiliza cuando hay un cortafuegos que impide la salida desde el puerto 123/UDP o bien si el servicio ntp está funcionando y utilizando el puerto 123/UDP.

El manual completo de ntpdate puede consultarse ejecutando lo siguiente:

man 8 ntpdate

Archivo de configuración /etc/ntp.conf.

El manual completo para el formato del archivo /etc/ntp.conf puede consultarse ejecutando lo siguiente:

man 5 ntp.conf

En CentOS, Fedora™ y Red Hat™ Enterprise Linux.

Los sistemas operativos como CentOS, Fedora™ y Red Hat™ Enterprise Linux, se incluye un archivo de configuración /etc/ntp.conf, con una configuración para uso general que permite trabajar como cliente NTP. Se recomienda respaldar éste para futuras consultas y utilizar un nuevo archivo en su lugar:

mv /etc/ntp.conf /etc/ntp.conf.original

Genere el nuevo archivo /etc/ntp.conf que permitirá funcionar como servidor NTP en la red de área local:

vim /etc/ntp.conf

Añada el siguiente contenido y modifique lo que considere pertinente, como serían los valores resaltados:

# Se establece la política predeterminada para cualquier
# servidor de tiempo utilizado: se permite la sincronización
# de tiempo con las fuentes, pero sin permitir a la fuente 
# consultar (noquery), ni modificar el servicio en el 
# sistema (nomodify) y declinando proveer mensajes de 
# registro (notrap).
restrict default nomodify notrap noquery
restrict -6 default nomodify notrap noquery

# Permitir todo el acceso a la interfaz de retorno del
# sistema.
restrict 127.0.0.1
restrict -6 ::1

# Se le permite a las redes local sincronizar con el servidor
# pero sin permitirles modificar la configuración del
# sistema y sin usar a éstos como iguales para sincronizar.
# Cambiar por las que correspondan a sus propias redes locales.
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
restrict 192.168.70.0 mask 255.255.255.128 nomodify notrap
restrict 172.16.1.0 mask 255.255.255.240 nomodify notrap
restrict 10.0.1.0 mask 255.255.255.248 nomodify notrap

# Reloj local indisciplinado.
# Este es un controlador emulado que se utiliza sólo como
# respaldo cuando ninguna de las fuentes reales están
# disponibles.
fudge   127.127.1.0 stratum 10
server  127.127.1.0

# Archivo de variaciones.
driftfile /var/lib/ntp/drift
broadcastdelay  0.008

# Archivo de claves si acaso fuesen necesarias para realizar
# consultas
keys            /etc/ntp/keys

# Lista de servidores de tiempo de estrato 1 o 2.
# Se recomienda tener al menos 3 servidores listados.
# Mas servidores en:
#		http://kopernix.com/?q=ntp
#		http://www.eecis.udel.edu/~mills/ntp/servers.html
server 0.pool.ntp.org iburst
server 1.pool.ntp.org iburst
server 2.pool.ntp.org iburst
server 3.pool.ntp.org iburst

# Permisos que se asignarán para cada servidor de tiempo. 
# En los ejemplos, se impide a las fuente consultar o modificar
# el servicio en el sistema, así como también enviar mensaje de 
# registro.
restrict 0.pool.ntp.org mask 255.255.255.255 nomodify notrap noquery
restrict 1.pool.ntp.org mask 255.255.255.255 nomodify notrap noquery
restrict 2.pool.ntp.org mask 255.255.255.255 nomodify notrap noquery
restrict 3.pool.ntp.org mask 255.255.255.255 nomodify notrap noquery

# Se activa la difusión hacia los clientes
broadcastclient

Para aplicar los cambios, ejecute lo siguiente:

service ntpd restart

Para sincronizar la hora de inmediato en este servidor recién configurado, ejecute:

ntpdate -u 0.pool.ntp.org

En openSUSE™ y SUSE™ Linux Enterprise.

Evite modificar directamente el archivo /etc/ntpd.conf, pues el método preferido de configuración es a través del módulo correspondiente de YaST. En su lugar utilice el módulo Cliente NTP de YaST, ejecutando lo siguiente:

yast ntp-client

Conserve el reloj local indisciplinado, defina los servidores NTP a utilizar y aplique los cambios.

Módulo de Cliente NTP de YaST, en modo gráfico, configurando como servidor NTP.
Módulo de Cliente NTP de YaST, en modo gráfico, configurando como servidor NTP.

Módulo de Cliente NTP de YaST, en modo texto, configurando como servidor NTP.
Módulo de Cliente NTP de YaST, en modo texto, configurando como servidor NTP.

Para sincronizar la hora de inmediato en este servidor recién configurado, ejecute:

ntpdate -u 0.pool.ntp.org

Configuración de clientes.

Asumiendo que los clientes GNU/Linux ya tiene instalados los paquetes de NTP y que el servidor tiene una dirección IP 172.16.1.1, verifique primero que hay conectividad hacia el nuevo servidor que acaba de configurar ejecutando como root lo siguiente:

ntpdate -u 172.16.1.1

Lo anterior debe devolver una salida similar a la siguiente:

18 Sep 13:30:15 ntpdate[4913]: adjust time server 172.16.1.1 offset -0.000812 sec

Si lo anterior falla, verifique la configuración en el servidor y su muro cortafuegos.

Asignación automática a través de servidor DHCP.

La forma más simple y práctica de replicar automáticamente la asignación de servidores NTP en la red de área local, es a través de un servidor DHCP.

Edite el archivo /etc/dhcp/dhcpd.conf o /etc/dhcpd.conf, de acuerdo a la versión de sistema operativo utilizado:

vim /etc/dhcp/dhcpd.conf

Utilice la opción ntp-servers para definir una lista separada por comas de todos los servidores NTP que se quiera utilizar en la red de área local:

ddns-update-style interim;
ignore client-updates;
authoritative;
default-lease-time 900;
max-lease-time 7200;
option ip-forwarding off;
option domain-name "red-local.net";
option ntp-servers 172.16.1.1;

shared-network redlocal {
	subnet 172.16.1.0 netmask 255.255.255.192 {
		option routers 172.16.1.1;
		option subnet-mask 255.255.255.192;
		option broadcast-address 172.16.1.63;
		option domain-name-servers 172.16.1.1;
		option netbios-name-servers 172.16.1.1;
		range 172.16.1.2 172.16.1.58;
	}
}

Reinicie el servicio dhcpd a fin de que surtan efecto los cambios.

service dhcpd restart

Para más detalles acerca de la configuración de servidor DHCP, por favor consulte el documento titulado «Configuración de servidor DHCP

Configuración manual en CentOS, Fedora™ y Red Hat™ Enterprise Linux.

Edite el archivo /etc/ntpd.conf:

vim /etc/ntp.conf

Añada o modifique el siguiente contenido:

driftfile /var/lib/ntp/drift
restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery
restrict 127.0.0.1 
restrict -6 ::1
server 172.16.1.1 iburst
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys

Y reinicie el servicio ntp a fin de que surtan efecto los cambios:

service ntpd restart

Configuración manual en openSUSE™ y SUSE™ Linux Enterprise.

Evite modificar archivo /etc/ntpd.conf, pues el método preferido de configuración es a través de YaST.

vim /etc/ntp.conf

Utilice el módulo Cliente NTP de YaST, ejecutando lo siguiente:

yast ntp-client

Elimine el reloj local indisciplinado, defina el servidor NTP a utilizar y aplique los cambios.

Módulo de Cliente NTP de YaST, en modo gráfico
Módulo de Cliente NTP de YaST, en modo gráfico.

Módulo de Cliente NTP de YaST, en modo texto.
Módulo de Cliente NTP de YaST, en modo texto.

Si algunos de nuestros foros, manuales, ALDOS, paquetería o proyectos te han resultado de ayuda, apreciaremos mucho nos apoyes con un donativo.

Última Edición: 29/05/2014, 10:53|Hits: 201,051 Ver la versión para imprimir