11.5. Configuración de la cronía
El archivo de configuración por defecto para chronyd
es /etc/chrony.conf
. La opción -f
puede utilizarse para especificar una ruta de archivo de configuración alternativa. Consulte la página de manual chrony.conf(5)
para conocer otras opciones. Para una lista completa de las directivas que se pueden utilizar, consulte El archivo de configuración chronyd.
A continuación se muestra una selección de opciones de configuración de chronyd
:
- Comentarios
- Los comentarios deben ir precedidos de #, %, ; o !
- permitir
Opcionalmente, especifique un host, una subred o una red desde la que permitir las conexiones de
NTP
a una máquina que actúe como servidor deNTP
. El valor por defecto es no permitir conexiones.Ejemplos:
permitir 192.0.2.0/24
Utilice este comando para conceder acceso a una red específica.
allow 2001:0db8:85a3::8a2e:0370:7334
Utilice este comando para conceder acceso a un IPv6
.
El puerto UDP número 123 debe estar abierto en el firewall para permitir el acceso del cliente:
# firewall-cmd --zone=public --add-port=123/udp
Si quiere abrir el puerto 123 de forma permanente, utilice la opción --permanent
:
# firewall-cmd --permanent --zone=public --add-port=123/udp
- cmdallow
-
Es similar a la directiva
allow
(véase la secciónallow
), excepto que permite el acceso de control (en lugar deNTP
acceso de cliente) a una subred o host en particular. (Por "acceso de control" se entiende que chronyc puede ejecutarse en esos hosts y conectarse con éxito achronyd
en este equipo) La sintaxis es idéntica. También existe una directivacmddeny all
con un comportamiento similar a la directivacmdallow all
. - dumpdir
-
Ruta de acceso al directorio para guardar el historial de mediciones en los reinicios de
chronyd
(suponiendo que no se realicen cambios en el comportamiento del reloj del sistema mientras no se esté ejecutando). Si se va a utilizar esta capacidad (mediante el comandodumponexit
en el archivo de configuración, o el comandodump
en chronyc), el comandodumpdir
debe utilizarse para definir el directorio donde se guardan los historiales de medición. - dumponexit
-
Si este comando está presente, indica que
chronyd
debe guardar el historial de mediciones para cada una de sus fuentes de tiempo registradas cada vez que el programa salga. (Véase el comandodumpdir
más arriba). - hwtimestamp
-
La directiva
hwtimestamp
permite el marcado de tiempo por hardware para una sincronización extremadamente precisa. Para más detalles, consulte la página del manualchrony.conf(5)
. - local
La palabra clave
local
se utiliza para permitir quechronyd
aparezca sincronizado con el tiempo real desde el punto de vista de los clientes que lo sondean, incluso si no tiene una fuente de sincronización actual. Esta opción se utiliza normalmente en el ordenador "maestro" en una red aislada, donde se requiere que varios ordenadores se sincronicen entre sí, y el "maestro" se mantiene en línea con el tiempo real mediante la entrada manual.Un ejemplo del comando es:
estrato local 10
Un valor grande de 10 indica que el reloj está a tantos saltos de un reloj de referencia que su hora no es fiable. Si el ordenador tiene alguna vez acceso a otro ordenador que, en última instancia, esté sincronizado con un reloj de referencia, es casi seguro que estará en un estrato inferior a 10. Por lo tanto, la elección de un valor alto como 10 para el comando
local
evita que la hora propia de la máquina se confunda con la hora real, si alguna vez se filtra a los clientes que tienen visibilidad de los servidores reales.- registro
El comando
log
indica que se debe registrar cierta información. Acepta las siguientes opciones:- medidas
-
Esta opción registra las mediciones en bruto de
NTP
y la información relacionada en un archivo llamadomeasurements.log
. - estadísticas
-
Esta opción registra información sobre el procesamiento de la regresión en un archivo llamado
statistics.log
. - rastreando
-
Esta opción registra los cambios en la estimación de la tasa de ganancia o pérdida del sistema, y cualquier giro realizado, en un archivo llamado
tracking.log
. - rtc
- Esta opción registra información sobre el reloj en tiempo real del sistema.
- refclocks
-
Esta opción registra las mediciones del reloj de referencia crudas y filtradas en un archivo llamado
refclocks.log
. - tempcomp
Esta opción registra las mediciones de temperatura y las compensaciones de velocidad del sistema en un archivo llamado
tempcomp.log
.Los archivos de registro se escriben en el directorio especificado por el comando
logdir
.Un ejemplo del comando es:
registro de mediciones seguimiento de estadísticas
- logdir
Esta directiva permite especificar el directorio donde se escriben los archivos de registro.
Un ejemplo del uso de esta directiva es:
logdir /var/log/chrony
- hace un paso
Normalmente,
chronyd
hará que el sistema corrija gradualmente cualquier desfase temporal, ralentizando o acelerando el reloj según sea necesario. En determinadas situaciones, el reloj del sistema puede estar tan desviado que este proceso de giro tardaría mucho tiempo en corregir el reloj del sistema. Esta directiva obliga achronyd
a acelerar el reloj del sistema si el ajuste es mayor que un valor umbral, pero sólo si no hubo más actualizaciones del reloj desde que se inicióchronyd
que un límite especificado (se puede utilizar un valor negativo para desactivar el límite). Esto es particularmente útil cuando se utiliza el reloj de referencia, porque la directivainitstepslew
sólo funciona con fuentesNTP
.Un ejemplo del uso de esta directiva es:
makestep 1000 10
Esto haría que el reloj del sistema se adelantara si el ajuste es mayor de 1000 segundos, pero sólo en las primeras diez actualizaciones del reloj.
- maxchange
Esta directiva establece el máximo desplazamiento permitido corregido en una actualización del reloj. La comprobación se realiza sólo después del número especificado de actualizaciones para permitir un gran ajuste inicial del reloj del sistema. Cuando se produce un desfase mayor que el máximo especificado, se ignorará durante el número de veces especificado y luego
chronyd
se dará por vencido y saldrá (se puede utilizar un valor negativo para no salir nunca). En ambos casos se envía un mensaje a syslog.Un ejemplo del uso de esta directiva es:
maxchange 1000 1 2
Después de la primera actualización del reloj,
chronyd
comprobará el desplazamiento en cada actualización del reloj, ignorará dos ajustes mayores de 1000 segundos y saldrá en otro.- maxupdateskew
Una de las tareas de
chronyd
es calcular lo rápido o lento que funciona el reloj del ordenador en relación con sus fuentes de referencia. Además, calcula una estimación de los límites de error en torno al valor estimado.Si el rango de error es demasiado grande, indica que las mediciones aún no se han asentado y que la tasa de ganancia o pérdida estimada no es muy fiable.
El parámetro
maxupdateskew
es el umbral para determinar si una estimación es demasiado poco fiable para ser utilizada. Por defecto, el umbral es de 1000 ppm.El formato de la sintaxis es:
maxupdateskew skew-in-ppm
Los valores típicos de skew-in-ppm pueden ser 100 para una conexión telefónica con servidores a través de una línea telefónica, y 5 o 10 para un ordenador en una LAN.
Cabe señalar que éste no es el único medio de protección contra el uso de estimaciones poco fiables. En todo momento,
chronyd
mantiene un registro tanto de la tasa de ganancia o pérdida estimada, como del límite de error de la estimación. Cuando se genera una nueva estimación tras otra medición de una de las fuentes, se utiliza un algoritmo de combinación ponderada para actualizar la estimación maestra. Por lo tanto, sichronyd
tiene una estimación maestra muy fiable y se genera una nueva estimación que tiene grandes límites de error, la estimación maestra existente dominará en la nueva estimación maestra.- minsources
La directiva
minsources
establece el número mínimo de fuentes que deben considerarse seleccionables en el algoritmo de selección de fuentes antes de que se actualice el reloj local.El formato de la sintaxis es:
minsources number-of-sources
Por defecto, number-of-sources es 1. Establecer minsources a un número mayor puede servir para mejorar la fiabilidad, ya que varias fuentes tendrán que corresponder entre sí.
- noclientlog
-
Esta directiva, que no toma argumentos, especifica que los accesos de los clientes no deben ser registrados. Normalmente se registran, lo que permite informar de las estadísticas mediante el comando clients en chronyc y permitir que los clientes utilicen el modo intercalado con la opción
xleave
en la directivaserver
. - reselectdist
Cuando
chronyd
selecciona la fuente de sincronización entre las fuentes disponibles, preferirá la que tenga una distancia de sincronización mínima. Sin embargo, para evitar la reselección frecuente cuando hay fuentes con una distancia similar, se añade una distancia fija a la distancia de las fuentes que no están seleccionadas en ese momento. Esto se puede establecer con la opciónreselectdist
. Por defecto, la distancia es de 100 microsegundos.El formato de la sintaxis es:
reselectdist dist-in-seconds
- peso del estrato
La directiva
stratumweight
establece cuánta distancia debe añadirse por estrato a la distancia de sincronización cuandochronyd
selecciona la fuente de sincronización entre las fuentes disponibles.El formato de la sintaxis es:
peso del estrato dist-in-seconds
Por defecto, dist-in-seconds es de 1 milisegundo. Esto significa que las fuentes con un estrato más bajo suelen ser preferidas a las fuentes con un estrato más alto, incluso cuando su distancia es significativamente peor. Si se ajusta
stratumweight
a 0,chronyd
ignora el estrato al seleccionar la fuente.- rtcfile
La directiva
rtcfile
define el nombre del archivo en el quechronyd
puede guardar los parámetros asociados al seguimiento de la precisión del reloj en tiempo real (RTC) del sistema.El formato de la sintaxis es:
rtcfile /var/lib/chrony/rtc
chronyd
guarda la información en este archivo cuando sale y cuando se emite el comandowritertc
en chronyc. La información guardada es el error del RTC en alguna época, esa época (en segundos desde el 1 de enero de 1970), y la velocidad a la que el RTC gana o pierde tiempo. No todos los relojes de tiempo real están soportados ya que su código es específico del sistema. Tenga en cuenta que si se utiliza esta directiva, el reloj de tiempo real no debe ser ajustado manualmente, ya que esto interferiría con chronypara medir la velocidad a la que el reloj de tiempo real se desplaza si se ajusta a intervalos aleatorios.- rtcsync
-
La directiva
rtcsync
está presente en el archivo/etc/chrony.conf
por defecto. Esto informará al kernel que el reloj del sistema se mantiene sincronizado y el kernel actualizará el reloj en tiempo real cada 11 minutos.
11.5.1. Configurar la seguridad de Chrony
chronyc puede acceder a chronyd
de dos maneras:
- Protocolo de Internet, IPv4 o IPv6.
-
Socket de dominio Unix, al que puede acceder localmente el usuario
root
ochrony
.
Por defecto, chronyc se conecta al socket del dominio Unix. La ruta por defecto es /var/run/chrony/chronyd.sock
. Si esta conexión falla, lo que puede ocurrir por ejemplo cuando chronyc se ejecuta bajo un usuario no root, chronyc intenta conectarse a 127.0.0.1 y luego a ::1.
Sólo los siguientes comandos de supervisión, que no afectan al comportamiento de chronyd
, están permitidos desde la red:
- actividad
- lista de manuales
- rtcdata
- alisado
- fuentes
- sourcestats
- rastreando
- waitsync
El conjunto de hosts de los que chronyd
acepta estos comandos puede configurarse con la directiva cmdallow
en el archivo de configuración de chronyd
, o el comando cmdallow
en chronyc. Por defecto, los comandos se aceptan sólo desde localhost (127.0.0.1 o ::1).
Todos los demás comandos sólo se permiten a través del socket de dominio Unix. Cuando se envía a través de la red, chronyd
responde con un error Not authorised
, incluso si es desde localhost.
Acceder a chronyd de forma remota con chronyc
Permita el acceso desde direcciones IPv4 e IPv6 añadiendo lo siguiente al archivo
/etc/chrony.conf
:bindcmdaddress 0.0.0.0
o
bindcmdaddress ::
Permitir comandos desde la dirección IP remota, red o subred utilizando la directiva
cmdallow
.Añada el siguiente contenido al archivo
/etc/chrony.conf
:cmdallow 192.168.1.0/24
Abra el puerto 323 en el firewall para conectarse desde un sistema remoto.
# firewall-cmd --zone=public --add-port=323/udp
Si desea abrir el puerto 323 de forma permanente, utilice la dirección
--permanent
.# firewall-cmd --permanent --zone=public --add-port=323/udp
Tenga en cuenta que la directiva allow
es para el acceso a NTP
mientras que la directiva cmdallow
es para permitir la recepción de comandos remotos. Es posible hacer estos cambios temporalmente usando chronyc ejecutando localmente. Edite el archivo de configuración para hacer cambios permanentes.