11.5. Configurando o chrony
O arquivo de configuração padrão para chronyd
é /etc/chrony.conf
. A opção -f
pode ser usada para especificar um caminho alternativo para o arquivo de configuração. Consulte a página de manual chrony.conf(5)
para mais opções. Para uma lista completa das diretrizes que podem ser usadas, veja O arquivo de configuração chronyd.
Abaixo está uma seleção de opções de configuração do chronyd
:
- Comentários
- Os comentários devem ser precedidos de #, %, ; ou !
- permitir
Opcionalmente, especificar um host, sub-rede ou rede a partir da qual seja possível conectar
NTP
a uma máquina atuando como servidorNTP
. O padrão é não permitir conexões.Exemplos:
permitir 192.0.2.0/24
Use este comando para conceder acesso a uma rede específica.
allow 2001:0db8:85a3::8a2e:0370:7334
Use este comando para conceder acesso a um IPv6
.
A porta UDP número 123 precisa estar aberta no firewall a fim de permitir o acesso do cliente:
# firewall-cmd --zone=public --add-port=123/udp
Se você quiser abrir a porta 123 permanentemente, use a opção --permanent
:
# firewall-cmd --permanent --zone=public --add-port=123/udp
- cmdallow
-
Isto é semelhante à diretiva
allow
(ver seçãoallow
), exceto que ela permite o controle de acesso (em vez deNTP
acesso do cliente) a uma determinada sub-rede ou host. (Por "controle de acesso", entende-se que chronyc pode ser executado nesses hosts e conectado com sucesso achronyd
neste computador) A sintaxe é idêntica. Há também uma diretivacmddeny all
com comportamento semelhante ao da diretivacmdallow all
. - dumpdir
-
Caminho até o diretório para salvar o histórico de medições através das reinicializações do
chronyd
(assumindo que nenhuma mudança seja feita no comportamento do relógio do sistema enquanto ele não estiver funcionando). Se esta capacidade for usada (através do comandodumponexit
no arquivo de configuração, ou do comandodump
em chronyc), o comandodumpdir
deve ser usado para definir o diretório onde os históricos de medição são salvos. - dumponexit
-
Se este comando estiver presente, indica que
chronyd
deve salvar o histórico de medição para cada uma de suas fontes de tempo registradas sempre que o programa sair. (Veja o comandodumpdir
acima). - hwtimestamp
-
A diretiva
hwtimestamp
permite o registro de tempo do hardware para uma sincronização extremamente precisa. Para mais detalhes, consulte a página do manualchrony.conf(5)
. - local
A palavra-chave
local
é usada para permitir quechronyd
apareça sincronizado em tempo real do ponto de vista dos clientes que o pesquisam, mesmo que não tenha uma fonte de sincronização atual. Esta opção é normalmente usada no computador "master" em uma rede isolada, onde vários computadores são necessários para sincronizar entre si, e o "master" é mantido em linha com o tempo real por entrada manual.Um exemplo do comando é:
estrato local 10
Um grande valor de 10 indica que o relógio está tão distante de um relógio de referência que seu tempo não é confiável. Se o computador alguma vez tiver acesso a outro computador que esteja finalmente sincronizado a um relógio de referência, ele estará quase certamente em um estrato inferior a 10. Portanto, a escolha de um valor alto como 10 para o comando
local
evita que o próprio tempo da máquina seja confundido com o tempo real, caso ele venha a vazar para clientes que tenham visibilidade de servidores reais.- log
O comando
log
indica que certas informações devem ser registradas. Ele aceita as seguintes opções:- medidas
-
Esta opção registra as medidas brutas
NTP
e informações relacionadas em um arquivo chamadomeasurements.log
. - estatísticas
-
Esta opção registra informações sobre o processamento da regressão em um arquivo chamado
statistics.log
. - rastreamento
-
Esta opção registra mudanças na estimativa da taxa de ganho ou perda do sistema, e quaisquer alterações feitas, em um arquivo chamado
tracking.log
. - rtc
- Esta opção registra informações sobre o relógio em tempo real do sistema.
- relógios
-
Esta opção registra as medidas do relógio de referência bruto e filtrado em um arquivo chamado
refclocks.log
. - tempcomp
Esta opção registra as medições de temperatura e as compensações de taxa do sistema em um arquivo chamado
tempcomp.log
.Os arquivos de log são escritos no diretório especificado pelo comando
logdir
.Um exemplo do comando é:
acompanhamento estatístico das medidas de registro
- logdir
Esta diretiva permite especificar o diretório onde os arquivos de registro são escritos.
Um exemplo do uso desta diretriz é:
logdir /var/log/chrony
- makestep
Normalmente,
chronyd
fará com que o sistema corrija gradualmente qualquer compensação de tempo, diminuindo ou acelerando o relógio conforme necessário. Em certas situações, o relógio do sistema pode estar tão à deriva que este processo de giro demoraria muito tempo para corrigir o relógio do sistema. Esta diretriz força ochronyd
a pisar no relógio do sistema se o ajuste for maior que um valor limite, mas somente se não houver mais atualizações do relógio desde quechronyd
foi iniciado do que um limite especificado (um valor negativo pode ser usado para desabilitar o limite). Isto é particularmente útil quando se usa um relógio de referência, porque a diretivainitstepslew
só funciona com fontesNTP
.Um exemplo do uso desta diretriz é:
makestep 1000 10
Isto faria com que o relógio do sistema passasse se o ajuste fosse maior que 1000 segundos, mas somente nas primeiras dez atualizações do relógio.
- maxchange
Esta diretiva estabelece a compensação máxima permitida corrigida em uma atualização do relógio. A verificação é realizada somente após o número especificado de atualizações para permitir um grande ajuste inicial do relógio do sistema. Quando ocorrer um deslocamento maior que o máximo especificado, ele será ignorado para o número especificado de vezes e então
chronyd
desistirá e sairá (um valor negativo pode ser usado para nunca sair). Em ambos os casos, uma mensagem é enviada ao syslog.Um exemplo do uso desta diretriz é:
maxchange 1000 1 2
Após a primeira atualização do relógio,
chronyd
irá verificar o offset em cada atualização do relógio, ignorará dois ajustes maiores que 1000 segundos e sairá em outro.- maxupdateskew
Uma das tarefas do
chronyd
é saber quão rápido ou lento é o relógio do computador em relação a suas fontes de referência. Além disso, ele computa uma estimativa dos limites de erro em torno do valor estimado.Se o intervalo de erro for muito grande, indica que as medidas ainda não foram estabelecidas, e que a taxa estimada de ganho ou perda não é muito confiável.
O parâmetro
maxupdateskew
é o limiar para determinar se uma estimativa não é confiável demais para ser usada. Por padrão, o limite é de 1000 ppm.O formato da sintaxe é:
maxupdateskew skew-in-ppm
Os valores típicos para skew-in-ppm podem ser 100 para uma conexão discada para servidores através de uma linha telefônica, e 5 ou 10 para um computador em uma LAN.
Deve-se notar que este não é o único meio de proteção contra o uso de estimativas não confiáveis. Em todos os momentos,
chronyd
mantém um registro tanto da taxa de ganho ou perda estimada, quanto do erro vinculado à estimativa. Quando uma nova estimativa é gerada após outra medição de uma das fontes, um algoritmo de combinação ponderada é usado para atualizar a estimativa principal. Portanto, sechronyd
tiver uma estimativa mestre altamente confiável e uma nova estimativa for gerada com grandes limites de erro, a estimativa mestre existente dominará na nova estimativa mestre.- minsources
A diretiva
minsources
estabelece o número mínimo de fontes que precisam ser consideradas como selecionáveis no algoritmo de seleção de fontes antes que o relógio local seja atualizado.O formato da sintaxe é:
minsources number-of-sources
Por padrão, number-of-sources é 1. A definição de fontes mínimas para um número maior pode ser usada para melhorar a confiabilidade, porque várias fontes precisarão corresponder umas com as outras.
- noclientlog
-
Esta diretiva, que não aceita argumentos, especifica que os acessos dos clientes não devem ser registrados. Normalmente eles são registrados, permitindo que estatísticas sejam relatadas usando o comando de clientes em chronyc e permitindo aos clientes usar o modo intercalado com a opção
xleave
na diretivaserver
. - resselecionador
Quando
chronyd
selecionar a fonte de sincronização das fontes disponíveis, preferirá aquela com distância mínima de sincronização. Entretanto, para evitar a re-seleção freqüente quando há fontes com distância semelhante, uma distância fixa é adicionada à distância para fontes que atualmente não são selecionadas. Isto pode ser definido com a opçãoreselectdist
. Por padrão, a distância é de 100 microssegundos.O formato da sintaxe é:
resselecionador dist-in-seconds
- peso estrato
A diretiva
stratumweight
define a distância que deve ser adicionada por estrato à distância de sincronização quandochronyd
seleciona a fonte de sincronização a partir das fontes disponíveis.O formato da sintaxe é:
peso estrato dist-in-seconds
Por padrão, dist-in-seconds é de 1 milissegundo. Isto significa que as fontes com estrato mais baixo são geralmente preferidas às fontes com estrato mais alto, mesmo quando sua distância é significativamente pior. A definição de
stratumweight
a 0 faz com quechronyd
ignore o estrato ao selecionar a fonte.- rtcfile
A diretiva
rtcfile
define o nome do arquivo no qualchronyd
pode salvar parâmetros associados ao rastreamento da precisão do relógio em tempo real (RTC) do sistema.O formato da sintaxe é:
rtcfile /var/lib/chrony/rtc
chronyd
salva informações neste arquivo quando ele sai e quando o comandowritertc
é emitido em chronyc. A informação guardada é o erro do RTC em alguma época, aquela época (em segundos desde 1 de janeiro de 1970), e a taxa na qual o RTC ganha ou perde tempo. Nem todos os relógios em tempo real são suportados, pois seu código é específico do sistema. Observe que se esta diretriz for usada, então o relógio em tempo real não deve ser ajustado manualmente, pois isso interferiria com chronyA necessidade de medir a taxa de variação do relógio em tempo real se o relógio foi ajustado em intervalos aleatórios.- rtcsync
-
A diretiva
rtcsync
está presente no arquivo/etc/chrony.conf
por padrão. Isto informará ao kernel que o relógio do sistema é mantido sincronizado e o kernel atualizará o relógio em tempo real a cada 11 minutos.
11.5.1. Configuração de chrony para segurança
chronyc pode acessar chronyd
de duas maneiras:
- Protocolo Internet, IPv4 ou IPv6.
-
Soquete de domínio Unix, que é acessível localmente pelo usuário
root
ouchrony
.
Por padrão, chronyc se conecta com o soquete de domínio Unix. O caminho padrão é /var/run/chrony/chronyd.sock
. Se esta conexão falhar, o que pode acontecer, por exemplo, quando chronyc está funcionando sob um usuário não-rootal, chronyc tenta se conectar ao 127.0.0.1 e depois ::1.
Somente os seguintes comandos de monitoramento, que não afetam o comportamento do chronyd
, são permitidos a partir da rede:
- atividade
- lista manual
- rtcdata
- suavização
- fontes
- sourcestats
- rastreamento
- waitsync
O conjunto de hosts de onde chronyd
aceita estes comandos pode ser configurado com a diretiva cmdallow
no arquivo de configuração de chronyd
, ou com o comando cmdallow
em chronyc. Por padrão, os comandos são aceitos somente do localhost (127.0.0.1 ou ::1).
Todos os outros comandos são permitidos somente através do soquete de domínio Unix. Quando enviado através da rede, chronyd
responde com um erro Not authorised
, mesmo que seja do localhost.
Acesso remoto ao chronyd com chronyc
Permitir o acesso tanto de endereços IPv4 como IPv6, adicionando o seguinte ao arquivo
/etc/chrony.conf
:bindcmdaddress 0.0.0.0.0
ou
bindcmdaddress ::
Permitir comandos a partir do endereço IP remoto, rede ou sub-rede, utilizando a diretiva
cmdallow
.Adicione o seguinte conteúdo ao arquivo
/etc/chrony.conf
:cmdallow 192.168.1.0/24
Abra a porta 323 no firewall para se conectar a partir de um sistema remoto.
# firewall-cmd --zone=public --add-port=323/udp
Se você quiser abrir a porta 323 permanentemente, use o site
--permanent
.# firewall-cmd --permanent --zone=public --add-port=323/udp
Note que a diretiva allow
é para acesso NTP
enquanto que a diretiva cmdallow
é para permitir o recebimento de comandos remotos. É possível fazer estas mudanças temporariamente usando chronyc funcionando localmente. Edite o arquivo de configuração para fazer alterações permanentes.