Acerca del protocolo NTP

NTP (Network Time Protocol) es un protocolo utilizado para la sincronización de relojes de sistemas computacionales a través de redes. El servicio trabaja a través del puerto 123, únicamente por UDP.

NTP utiliza un sistema jerárquico de relojes, llamados estratos

Estratos

Estrato 0: son dispositivos como relojes, GPS

Estrato 1: Se sincronizan con los dispositivos estratos 0

Estrato 2: Se sincronizan con los estratos 1

Estrato 3:

Estrato 4:

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

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 de la 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

Sincronizar Hora

Verificar la zona horaria

Primero, sacamos una copia del fichero actual, por si hubiera que volver atrás:

mv /etc/localtime /etc/localtime.old

Crear un enlace simbólico a la zona que queremos que tenga nuestro servidor:

ln -sf /usr/share/zoneinfo/Atlantic/Canary /etc/localtime

Verificamos el archivo /etc/sysconfig/clock

ZONE="Atlantic/Canary"
UTC=true
ARC=false

Ajustar la hora con nuestro servidor...

ntpdate -u es.pool.ntp.org

En caso de no tener instalado el paquete ntpdate

yum install ntp

Atención con ntpdate ponemos la hora del sistema no la del reloj interno de la máquina. Para sincronizar la hora del reloj interno con la hora del sistema ejecutar hwclock --systohc

Hay dos formas de hacer que se sincronice continuamente

I.- Mediante una tarea programada

# crontab -e

En el edito ponemos la siguiente instrucción

*/1 * * * * root /usr/sbin/ntpdate -u 2.pool.ntp.org

y por último reiniciamos el servicio

/etc/init.d/crond restart

II.- con el demonio ntpd

Crear el directorio para el ajuste horario en caso de no estar creado

mkdir /var/lib/ntp/drift -pchown -R ntp.ntp /var/lib/ntp

Actualizar el fichero de configuración para NTP, esto está en /etc/ntp.conf

## Fichero original de http://tecnoquia.blogspot.com/search?q=ntp
## Indica que solo el localhost puede usar el servicio.
## Es la forma de indicar que no se quieren escuchar peticiones
## UDP, lo que nos convertiria en servidores tambien
restrict default nomodify notrap noquery
restrict 127.0.0.1
#### Quien sera nuestra referencia horaria
server ipodnsservidordominio # El Servidor NTP Corporativo
server pool.ntp.org
server 127.127.1.0 # Nuestro reloj interno
## Nuestro reloj interno lo metemos en un stratum alto
## por si es que no estuviera disponible el Coporativo
fudge 127.127.1.0 stratum 10
## Aqui se indica donde se escribe esa correccion.
## Normalmente se escribe un valor cada hora.
## OJO CON LOS PERMISOS DEL FICHERO.
driftfile /var/lib/ntp/drift
## Sin autenticacion
authenticate no

Otro fichero de configuración similar es el siguiente

# 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
# Permitir todo el acceso a la interfaz de retorno del sistema.
restrict 127.0.0.1
# Se le permite a la red local sincronizar con el servidor
# pero sin permitirles modificar la configuración del
# sistema, y sin usar a éstos como iguales para sincronizar.
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
# Sincronizar con el reloj local indisciplinad 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
# Fichero de variaciones.
driftfile /var/lib/ntp/drift
broadcastdelay 0.008
# Fichero 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
server 1.pool.ntp.org
server 2.pool.ntp.org
# Permisos que se asignarán para cada servidor de tiempo.
# En los ejemplos, no se permite a las fuente consultar, ni
# modificar el servicio en el sistema ni 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
# Se Activa la difusión hacia los clientes
broadcastclient

Actualizar el fichero /etc/ntp/step-tickers, ejecutando:

echo 'ntp.carm.es' > /etc/ntp/step-tickers8.

Iniciar el servicio y configurar para que arranque con el sistema:

/etc/init.d/ntpd start

chkconfig --level 35 ntpd on

Hay que habilitar en el cortafuegos de la máquina el puerto udp 123 tanto entrante como saliente

Referencias

http://tecnoquia.blogspot.com/search?q=ntp

http://www.eslinux.com/articulos/8578/como-mantener-hora-exacta-tu-ordenador-mediante-ntp