Servidor de tiempo NTP


Servidor de tiempo NTP en linux Debian
Por: Andry Johan Arroyave

El objetivo de este servicio es la sincronización de tiempo de la mayor parte de los equipos conectados dentro de la red.

La implantación de un servicio de sincronización ofrece obvias ventajas dentro de las siguientes áreas:

  • Correo electrónico y listas de distribución: Fiabilidad en las fechas de recepción de mensajes.
  • Proxy-caché: Es fundamental que en el intercambio de documentos entre servidores los diversos tiempos asociados al documento (última modificación, tiempo en la caché, etc…) sean precisos para que los documentos puedan considerarse consistentes de acuerdo con la política de refresco y expiración de documentos de la caché.
  • Seguridad en red: La detección de problemas de seguridad frecuentemente exige poder comparar logs de acceso de máquinas diferentes, para lo que es imprescindible la coincidencia horaria de las mismas.
  • En general, para un estudio detallado de cualquier servicio distribuido es muy útil el disponer de datos horarios precisos entre los equipos implicados, bien sea para la detección de problemas de hardware y/o software, así como para el estudio estadístico de los mismos.

QUE ES NTP

NTP es un protocolo usado para sincronizar los relojes de host conectados entre sí mediante redes IP. Los mensajes NTP son llevados entre los hosts mediante los protocolos UDP/IP. Utilizando el puerto 123. Se basa en una arquitectura de servidores de tiempo y clientes en niveles llamados stratum.

Si las necesidades de ciertos procesos requiriesen un control más preciso del tiempo, se considerará la instalación de un stratum 1 conectado a un equipo GPS que permitirá cambiar la estructura de servidores a los stratum 2 y 3.

Este protocolo suministra mecanismos para sincronizar máquinas con una precisión del orden de nanosegundos sin ambigüedad en la fecha,  Su funcionamiento se basa en la comparación periódica del tiempo del cliente con respecto al tiempo del servidor. Para lograr esto, se envían mensajes NTP a intervalos regulares. Ciertos campos de este mensaje NTP son modificados por el servidor de tiempo y por la máquina local (cliente) con marcas de tiempo correspondientes al momento de salida del mensaje, momento de llegada al servidor y momento de salida del servidor, que junto con el momento de llegada al cliente permite ajustar el tiempo del host cliente.

Como instalar y configurar un servidor NTP en debían Linux

Lo primero que vamos hacer es instalar el programa que nos sirve para bridar el servicio de tiempo, este programa se llama NTP y lo instalaremos por medio del siguiente comando:

apt-get install ntp

Antes de empezar a editar el archivo de configuración del NTP, debemos sincronizar la hora con el servidor externo que utilizaremos para sincronizar la hora, este paso se hace para garantizar que nuestro servidor tenga la hora exacta. Esta sincronización inicial la vamos hacer con el siguiente comando:

ntpdate cronos.cenam.mx

Nota: en ocasiones el bash no nos deja ejecutar este comando, para esto debemos instalarlo asi:

apt-get install ntpdate

Cronos.cenam.mx es el nombre de uno de los servidores externos de tiempo con el cual estaremos sincronizados, (se configuran varios servidores externos por si alguno  falla) como también podemos ver en el comando hay una letra que  es la  “-u” esta se utiliza cuando se tiene inconvenientes con el firewall.

También podemos observar cual es el comportamiento de la ejecución del comando, en la cual se puede ver que corrige la fecha y la hora, también la dirección del servidor y el tiempo que tarda en actualizar

Ahora lo que vamos hacer es editar el archivo de configuración de nuestro servidor NTP. Este archivo lo vamos a editar con el siguiente comando:

gedit /etc/ntp.conf

A continuación nos aparecerá una ventana con unos parámetros que están configurados por defecto. Nosotros vamos a mostrar por pantallazos el archivo de configuración y subrayaremos lo que vamos a modificar.

Primer pantallazo
En el primer pantallazo encontramos una linea subrayada de color rojo en esta línea estamos indicando que nuestro servidor NTP se sincronizara con el servidor externo cronos.cenam.mx

Segundo pantallazo

En la parte de arriba encontramos subrayado con color verde otros servidores que trae configurado en archivo por default y en este ejemplo lo dejaremos también configurado con estos servidores de tiempo.

Y en la parte de abajo con color amarillo encontramos una línea que permite que todos los host de mi red puedan sincronizarse con el servidor NTP que va hacer el equipo al cual le estamos configurando este archivo.

Tercer pantallazo

La línea marcada de color verde le indica a los host de la red que cuando vayan a tener acceso al servidor de tiempo lo hagan con una autentificación y la línea con color rojo se coloca la dirección de broadcast de nuestra red.

Ahora el paso a seguir es iniciar el daemon del servidor NTP, este lo haremos con el siguiente comando:

/etc/init.d/ntp restart

Con la ejecución de este ultimo comando terminamos de configurar nuestro servidor de tiempo NTP ahora lo que procedemos hacer es a configurar nuestro cliente NTP.

Como instalar y configurar un cliente NTP

Ahora vamos a instalar y configurar un cliente NTP para nuestro servidor. La distribución que utilizaremos para configurar el cliente es Ubuntu.

Lo primero que vamos a hacer es probar si nuestro servidor quedo bien configurado y vamos a sincronizar la hora con el servidor interno que acabamos de configurar. Esta sincronización inicial la vamos hacer con el siguiente comando:

ntpdate –u 194.168.1.4

194.168.1.4 es la dirección IP del servidor NTP que acabamos de configurar y que desde ahora es el que nos sincronizara la hora mientras que el se sincroniza con uno externo.

Como podemos observar la hora y la fecha se sincronizan con la que tiene el servidor NTP.

Luego procedemos a instalar el NTP con el comando:

apt-get install ntp

Como podemos ver es el mismo software que utilizamos para configurar en servidor NTP, es que este software nos sirve tanto para configurarlo como servidor o cliente.

Ahora lo que vamos hacer es editar el archivo de configuración de nuestro cliente NTP. Este archivo lo vamos a editar con el siguiente comando:

gedit /etc/ntp.conf

A continuación nos aparecerá una ventana con unos parámetros que están configurados por defecto. Nosotros vamos a mostrar lo único que hay que configura en el archivo de configuración del NTP
Podemos ver en la imagen subrayado con rojo hay una linea donde se especifica el servidor NTP con el cual este cliente quiere sincronizar la hora y la fecha.

Ahora solo queda reiniciar nuestro daemon y esto lo hacemos con el siguiente comando:

/etc/init.d/ntp start

Ahora ya esta nuestro cliente sincronizado con nuestro servidor local. Una forma de de saber que este enlace esta bien hecho es mediante la ejecución del comando:

ntpdate 194.168.1.4

Como podemos ver en la imagen hay un error y dice que este enlace ya se está usando, lo que significa que nuestra conexión con el servidor NTP esta bien hecha y que cuando intentamos utilizar esta conexión de nuevo, nos arroja el mensaje que vemos en la imagen.

Pero si en cambio ejecutamos el comando con –u ahí si nos sincroniza por que como explique anteriormente este comando tiene privilegios frente al firewall.

++++++++++++++++++++++++++++++++++++++++++++++++++++++

Servidor de tiempo NTP en Windows 2003 server
Por: Andry Johan Arroyave

Como instalar y configurar un servidor NTP en Windows server 2003

Windows incluye W32Time, la herramienta del Servicio de hora de sistemas Windows. Ósea que no tenemos que instalar nada, solo tenemos que cambiar la configuración del registro w32time. Ahora nos estaremos preguntando dónde estará alojado este archivo para editarlo.

A continuación lo que vamos hacer es dar clic en: Inicio>Ejecutar>escribiremos regedit y damos clic en aceptar

Ahora nos aparecerá una ventana en la cual en el lado izquierdo vamos a buscar el siguiente directorio ewn la siguiente ruta: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time

Vamos a encontrar otras subcarpetas donde encontraremos unos archivos específicos a configurar. Como podemos ver en la imagen ya estamos parados en la carpeta w32time y también podemos ver las subcarpetas de esta.

A continuación vamos a ir a la siguiente ruta: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\

Parados en la carpeta paramaters, buscamos al lado derecho un archivo que se llama: Type, se encuentra en el lado derecho damos clic derecho>modificar y  hacemos  clic en Modificar.

Después del paso anterior nos saldra esta ventana donde en el recuadro información del valor pondremos NTP y aceptamos:

El paso a seguir es ahora en la siguiente ruta: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config en el archivo AnnounceFlags que se encuentra en el lado derecho damos: clic derecho>clic en modificar

Después de que nos salga la ventana en la parte donde dice información de valor vamos a poner el numero 5, el numero 5 se utiliza para indicar que este servidor tiene una fuente de tiempo confiable

A continuación lo que vamos a hacer es habilitar el NTP server para esto necesitamos pararnos en el directorio HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\ntpserver y en el archivo Enable que se encuentra en el lado derecho damos clic derecho>clic en modificar.

Después de que nos salga la ventana en la parte donde dice información de valor vamos a poner el numero 1, el numero 1 se utiliza para activar el servidor NTP

Ahora lo que vamos hacer es especificar las fuentes de tiempos externas. Con la que queremos  que nuestro servidor se sincronice la hora. Ahora nos vamos a ir para directorio HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters y en el archivo NtpServer que se encuentra en el lado derecho, damos clic derecho>clic en modificar

Ahora en este recuadro vamos a colocar los nombres o direcciones IP de los servidores externos con los que nos queremos sincronizar, Note: each DNS must be unique and you must append 0x1 to the end of each DNS name otherwise changes will not take effect Nota: cada DNS debe ser único y debe anexar 0x1 al final de cada nombre DNS de otra manera los cambios no tendrán efecto

Ahora vamos a poner un intervalo de encuesta, donde especificaremos cada cuanto el servidor puede actualizar sus clientes ya sea un tiempo en minutos, horas o dias, para hacer esta configuración nos vamos a parar en el directorio HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient y en el archivo SpecialPollInterval se que se encuentra en el lado derecho damos clic derecho>clic en modificar

En el recuadro que sale a continuación vamos a poner el tiempo En Segundos que transcurran entre cada encuesta. Un valor recomendado es 900 Decimal. Con este valor configuremos  el servidor de tiempo para que haga la  encuesta cada 15 minutos.

A continuación configuramos otros valores de corrección de tiempo, entonces ahora vamos a editar 2 archivos pero primero haremos el ejercicio con uno y después con el otro. Buscamos el  directorio HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config y en  el archivo  MaxPosPhaseCorrection que se encuentra en el lado derecho damos clic derecho>clic en modificar

Ahora también pondremos en tiempo En Segundos este número es un marcador de posición para un valor razonable, como 1 hora (3600) o 30 minutos (1800). El valor que seleccionemos  dependerá del intervalo de encuesta, la condición de la red y el recurso de tiempo externo.

Y por ultimo vamos para el directorio HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config y en el archivo MaxNegPhaseCorrection que se encuentra en el lado derecho damos clic derecho>clic en modificar

Es recomendable poner los mismos valores que en el paso anterior

Ya configurado todo lo anterior procedemos a parar el servicio NTP y a iniciarlo otra vez para que carge todos lo cambios realizados , los comandos para realizar estas acciones son:

net stop w32time: con este comando se detiene el servicio
net start w32time: con este comando se inicia de nuevo el servicio

Ahora ha quedado configurado el servicio de tiempo en Windows server 2003.

Configuración de un cliente Windows

Procedemos hacer la configuración en un cliente de Windows para probar nuestro servidor de tiempo. Lo primero que vamos hacer es dar clic en: Inicio> panel de control.

A continuación nos aparecerá una ventana en la cual vamos a buscar la opción que dice Fecha y hora y damos doble clic

Después nos aparecerá otra ventana en la cual vamos a dar clic en la pestaña que aparece con un recuadro rojo que dice hora de internet y después clic en cambiar la configuración  que está marcada de color amarillo.

Después  nos saldrá una ventana donde le especificaremos la dirección IP del servidor de tiempo o el dominio en este caso lo realizamos con la dirección IP que vemos en la imagen, después de ingresada la dirección IP damos clic en Actualizar ahora y cómo podemos ver más abajo nos aparece un mensaje donde nos indica que el reloj se sincronizo correctamente. Damos clic en aceptar y luego en aceptar otra vez.

Con esta última configuración del cliente terminamos con la guía de la configuración de un servidor y un cliente ntp en Windows.

comentarios
  1. Jaime dice:

    Hola! Primero muchas gracias por el post.
    Me han pedido un trabajo para la universidad que consiste en instalar un servidor NTP en casa. Lo que no sabemos es cómo una vez instalado, se comprueba que funciona correctamente.
    Espero tu respuesta, gracias!

  2. Jaime dice:

    Ya he solucionado la pregunta anterior, ahora me ocurre una cosa, si apago el ordenador que tenía instalado el servidor y lo vuelvo a encender, cuando quiero sincronizar la hora me sale lo siguiente: “no server suitable for synchronization found”. ¿Cuál es el problema? ¿Se pierde el servidor al reiniciar el ordenador, hay que volverlo a resetear?

  3. humanliks dice:

    Hola Jaime gracias por visitarnos, y que pena no haberte contestado antes, andaba en vacaciones :)…

    Lo ultimo que preguntas: En cual sistema operativo instalaste el servidor NTP?

    Si es en linux sincroniza el servidor:

    #ntpdate -u cronos.cnam.mx

    Luego reinicia el servicio:

    #sudo /etc/init.d/ntp restart

    La dirección IP del manual: 192.168.1.4 es la dirección IP del servidor, se usa cuando vayas a sincronizar el cliente.

    Saludos, gracias por visitarnos.

  4. Jaime dice:

    Muchas gracias!!
    Al final ya nos ha salido todo después de pegarnos mucho con las IPs y el router…
    Sin duda esta página será la primera que incluya en la bibliografía del trabajo!
    Gracias de nuevo, muy buen tutorial!

    • humanliks dice:

      Gracias a vos por visitarnos, te invito a que te suscribas a la pagina para que estés enterado de todo lo nuevo que vaya publicando… Aunque últimamente no me quede mucho tiempo 😉

      Saludos

  5. zek dice:

    Genial, Muy complaeto, Gracias!!!!!!

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s