Cómo instalar y configurar el servidor y el cliente NTP en Debian


Network Time Protocol (NTP) presenta una capacidad única para que las empresas sincronicen los relojes de todos los sistemas dentro de la empresa. La sincronización de la hora es importante por muchas razones, desde las marcas de tiempo de la aplicación hasta la seguridad y las entradas de registro adecuadas.

Cuando todos los sistemas de una organización mantienen diferentes tiempos de reloj, se vuelve muy difícil desde el punto de vista de la resolución de problemas determinar cuándo y bajo qué condiciones podría estar ocurriendo un evento en particular.

NTP proporciona una manera fácil de garantizar que todos los sistemas mantengan la hora correcta, lo que a su vez puede simplificar enormemente la carga de los administradores/soporte técnico.

NTP funciona con la premisa de la sincronización con relojes de referencia, también conocidos como servidores de "estrato 0". Todos los demás servidores NTP se convierten en un servidor de estratos de nivel inferior en función de lo lejos que estén de un servidor de referencia.

El inicio de la cadena NTP es un servidor de estrato 1 que siempre está conectado directamente a un reloj de referencia de estrato 0. Desde aquí, los servidores de nivel inferior se conectan a través de una conexión de red a un servidor de nivel superior.

Consulte el diagrama a continuación para obtener un concepto más claro.

Si bien se puede configurar un servidor de estrato 0 o estrato 1, es costoso hacerlo y, como tal, esta guía se centrará en la configuración del servidor de estrato inferior.

Tecmint tiene una configuración básica de host de NTP en el siguiente enlace:

  1. How to Synchronize Time with NTP Server

Donde esta guía será diferente es en lugar de que todos los hosts de la red consulten a los servidores NTP públicos, uno (o mejor práctica, varios) servidores se comunicarán con el sistema NTP público y luego proporcionarán tiempo para todos los hosts dentro del red local.

Un servidor NTP interno suele ser ideal para conservar el ancho de banda de la red y para proporcionar una mayor seguridad a través de las restricciones y la criptografía NTP. Para ver en qué se diferencia del primer diagrama, consulte el segundo diagrama a continuación.

Paso 1: instalación del servidor NTP

1. El primer paso para configurar una estructura NTP interna es instalar el software del servidor NTP. El paquete de software en Debian llamado "NTP" actualmente contiene todas las utilidades de servidor necesarias para configurar una jerarquía NTP. Como ocurre con todos los tutoriales sobre la configuración del sistema, se asume el acceso root o sudo.

# apt-get install ntp
# dpkg --get-selections ntp          [Can be used to confirm NTP is installed]
# dpkg -s ntp                        [Can also be used to confirm NTP is installed]

Paso 1: Configuración del servidor NTP

2. Una vez instalado NTP, es hora de configurar qué servidores de estrato superior consultar por tiempo. El archivo de configuración para NTP se almacena en " /etc/ntp.conf " y se puede modificar con cualquier editor de texto. Este archivo contendrá los nombres de dominio completos de los servidores de nivel superior, las restricciones establecidas para este servidor NTP y cualquier otro parámetro especial para los hosts que consultan este servidor NTP.

Para iniciar el proceso de configuración, es necesario configurar los servidores de nivel superior. Debian por defecto pondrá el grupo de Debian NTP en el archivo de configuración. Estos están bien para la mayoría de los propósitos, pero un administrador puede visitar NIST para especificar ciertos servidores o para usar todos los servidores de NIST en forma de turnos (método sugerido por NIST).

Para este tutorial se configurarán servidores específicos. El archivo de configuración está dividido en algunas secciones principales y está configurado de forma predeterminada para IPv4 e IPv6 (si desea deshabilitar IPv6, se menciona esto más adelante). Para iniciar el proceso de configuración, el archivo de configuración debe abrirse con un editor de texto.

# nano /etc/ntp.conf

Las primeras secciones (driftfile, statsdir y estadísticas) están bien configuradas a los valores predeterminados. La siguiente sección contiene los servidores de nivel superior a través de los cuales este servidor debe solicitar tiempo. La sintaxis para cada entrada del servidor es muy simple:

server <fully qualified domain name> <options>
server time.nist.gov iburst â     [sample entry]

Normalmente, es una buena idea tener varios servidores de estratos superiores para elegir en esta lista. Este servidor consultará todos los servidores de la lista para determinar cuál es el más confiable. Los servidores para este ejemplo se obtuvieron de: http://tf.nist.gov/tf-cgi/servers.cgi.

Paso 3: Configuración de restricciones NTP

3. El siguiente paso es configurar las restricciones NTP. Estos se utilizan para permitir o no permitir que los hosts interactúen con el servidor NTP. El valor predeterminado para NTP es el tiempo de servicio a cualquier persona, pero no permite la configuración en las conexiones IPv4 e IPv6.

Este servidor actualmente solo se usa en una red IPv4, por lo que IPv6 se deshabilitó de dos maneras. Lo primero que se hizo para deshabilitar IPv6 en el servidor NTP fue cambiar los valores predeterminados que inicia el demonio. Esto se logró cambiando la línea en "/etc/default/ntp ".

# nano /etc/default/ntp
NTPD_OPTS='-4 -g' [Add the ' -4 ' to this line to tell NTPD to only listen to IPv4]

De vuelta en el archivo de configuración principal ( /etc/ntp.conf ), el demonio NTP se configurará automáticamente para compartir tiempo con todos los hosts IPv4/6 pero no permitirá la configuración. Esto se puede ver en las siguientes dos líneas:

NTPD funciona de forma permitida a menos que se niegue. Dado que IPv6 fue deshabilitado, la línea " restrict -6 " se puede eliminar o comentar con un " #

Esto cambia el comportamiento predeterminado de NTP para ignorar todos los mensajes. Esto puede parecer extraño, pero siga leyendo, ya que se usarán cláusulas de restricción para ajustar el acceso a este servidor NTP para los hosts que necesitan acceso.

Ahora el servidor necesita saber quién puede consultar el tiempo del servidor y qué más puede hacer con el servidor NTP. Para este servidor, se utilizará una red privada de 172.27.0.0/16 para construir la estrofa de restricción.

Esta línea informa al servidor que permita a cualquier host de la red 172.27.0.0/16 acceder al servidor por tiempo. Los parámetros después de la máscara ayudan a controlar lo que puede hacer cualquiera de los hosts de esta red al consultar al servidor. Dediquemos un momento a comprender cada una de estas opciones de restricción:

  1. Limited: Indicates that if a client should abuse the number of packets rate control, the packets will be discarded by the sever. If the Kiss of Death packet is enabled, it will be sent back to the abusive host. The rates are configurable by an admin but the defaults are assumed here.
  2. KOD: Kiss of Death. If a host violates the limit of packets to the server, the server will respond with s KoD packet to the violating host.
  3. Notrap: Decline mode 6 control messages. These control messages are used for remote logging programs.
  4. Nomodify: Prevents ntpq and ntpdc queries that would modify the server’s configuration but informational queries are still permitted.
  5. Noquery: This option prevents hosts from querying the server for information. For example without this option hosts can use ntpdc or ntpq to determine where a particular time server is getting it’s time from or other peer time servers that it may be communicating with.