Ir para o conteúdo

Configurando o Chrony como cliente de NTP no Ubuntu 18.04

banner-ntp-001.jpg

Manter a hora, ou melhor a marca do tempo (timestamp), do nosso sistema atualizada é fundamental, pois utilizamos esta informação em todas as funções realizadas pelo sistema operacional. Desde a criação de um arquivo até o envio de um e-mail o sistema utiliza o timestamp para registrar quando as ações são realizadas.

Há várias formas de se manter o timestamp atualizado, uma das mais comuns é utilizando o protocolo NTP. Este protocolo baseia-se na arquitetura cliente servidor, onde o servidor fornece o seu timestamp e com base nesta informação a aplicação cliente ajusta o timestamp da maquina onde está instalado.

Neste tutorial utilizaremos a aplicação chrony para sincronizar o horário da maquina com o timestamp de um grupo de servidores

📚 Ajustando o Timezone e desativando o serviço de ntp default

Antes de iniciarmos as configurações do cliente de NTP, precisamos ajustar o timezone da maquina para "America/Sao_Paulo". Neste caso estamos supondo que a máquina esteja instalada na região Sudeste do Brasil. Caso você esteja em outra região talvez seja necessário utilizar outra timezone

Para ajustar o timezone podemos utilizar o comando:

Comando
sudo timedatectl set-timezone America/Sao_Paulo

Em seguida devemos desativar o uso do ntp default do Ubuntu

Comando
sudo timedatectl set-ntp no

Para verificar as configurações podemos utilizar o comando abaixo:

Comando
timedatectl

Que deve gerar uma saída semelhante à:

Saída :
1
2
3
4
5
6
7
                     Local time: Fri 2020-06-12 16:24:36 -03
                  Universal time: Fri 2020-06-12 19:24:36 UTC
                        RTC time: Fri 2020-06-12 19:24:36
                       Time zone: America/Sao_Paulo (-03, -0300)
       System clock synchronized: yes
systemd-timesyncd.service active: no
                 RTC in local TZ: no

Observando a saída do comando verificamos que o timezone está configurado corretamente - Time zone: America/Sao_Paulo (-03, -0300). Assim como o serviço de ntp default está desabilitado - systemd-timesyncd.service active: no

📚 Instalando o chrony

Com o timezone ajustado pdoemos passar para a instalação o chrony:

Comando
sudo apt update
sudo apt install chrony

📚 Configurando o chrony

E com o aplicativo instalado, podemos iniciar o processo de configuração do daemon do serviço. Mas antes precisamos ter certeza que o serviço está parado. Então precisamos executar o comando:

Comando :
sudo service chrony stop

Em seguida podemos iniciar os ajustes editando o arquivo de configuração /etc/chrony/chrony.conf.

Comando
sudo nano /etc/chrony/chrony.conf

Iniciaremos os ajustes comentando as seguintes linhas:

Configurações
1
2
3
4
#pool ntp.ubuntu.com        iburst maxsources 4
#pool 0.ubuntu.pool.ntp.org iburst maxsources 1
#pool 1.ubuntu.pool.ntp.org iburst maxsources 1
#pool 2.ubuntu.pool.ntp.org iburst maxsources 2

Logo abaixo devemos adicionar as seguintes linhas:

Configurações
server 200.160.7.186    iburst
server 201.49.148.135   iburst  
server 200.186.125.195  iburst
server 200.20.186.76    iburst
server 200.160.7.197    iburst
server 200.160.0.8      iburst prefer
server 200.189.40.8     iburst
server 200.192.232.8    iburst

E no final do arquivo devemos adicionar as seguintes linhas

Configurações
1
2
3
4
5
#apaga as medições quando o daemon é interrompido.
dumponexit

#especifica em qual diretório deve apagar as medições.
dumpdir /var/lib/chrony

Finalmente podemos habilitar, reiniciar e verificar o status do daemon

Comando :
1
2
3
sudo systemctl enable chrony
sudo systemctl restart chrony
sudo systemctl status chrony

Indicando que o serviço está rodando, o ultimo comando deve gerar uma saída semelhante à:

Saída :
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
● chrony.service - chrony, an NTP client/server
   Loaded: loaded (/lib/systemd/system/chrony.service; enabled; vendor preset: enabled)
   Active: active (running) since Fri 2020-06-12 19:17:41 UTC; 14s ago
     Docs: man:chronyd(8)
           man:chronyc(1)
           man:chrony.conf(5)
  Process: 2198 ExecStartPost=/usr/lib/chrony/chrony-helper update-daemon (code=exited, status=0/SUCCESS)
  Process: 2182 ExecStart=/usr/lib/systemd/scripts/chronyd-starter.sh $DAEMON_OPTS (code=exited, status=0/SUCCESS)
 Main PID: 2197 (chronyd)
    Tasks: 1 (limit: 2318)
   CGroup: /system.slice/chrony.service
           └─2197 /usr/sbin/chronyd

Jun 12 19:17:41 r4b-v02-dsk-ubt1 systemd[1]: Starting chrony, an NTP client/server...
Jun 12 19:17:41 r4b-v02-dsk-ubt1 chronyd[2197]: chronyd version 3.2 starting (+CMDMON +NTP +REFCLOCK +RTC +PRIVDROP +SCFILTER +SECHASH
Jun 12 19:17:41 r4b-v02-dsk-ubt1 chronyd[2197]: Frequency -28.703 +/- 8.402 ppm read from /var/lib/chrony/chrony.drift
Jun 12 19:17:41 r4b-v02-dsk-ubt1 systemd[1]: Started chrony, an NTP client/server.

Ainda podemos realizar uma verificação das portas associadas ao daemond do chrony

Comando :
sudo netstat -taunp | grep chronyd

Este comando deve gerar uma saída semelhante as linhas abaixo. Neste caso podemos observar que já está ocorrendo o processo de sincronismo de data e hora entre a maquina local e um servidor remoto (200.20.186.76). Assim como a maquina local já está aceitando solicitações de sincronismo na porta 123/udp.

Saída :
1
2
3
4
udp        0      0 146.134.244.226:43414   200.20.186.76:123       ESTABLISHED 2818/chronyd
udp        0      0 0.0.0.0:123             0.0.0.0:*                           2818/chronyd
udp        0      0 127.0.0.1:323           0.0.0.0:*                           2818/chronyd
udp6       0      0 ::1:323                 :::*                                2818/chronyd

Também podemos realizar esta verificação utilizando o comando lsof:

Comando :
sudo lsof -i:123

Que deve gerar uma saída semelhante à:

Saída :
COMMAND  PID    USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
chronyd 2818 _chrony    3u  IPv4  35817      0t0  UDP *:ntp

Neste ponto já temos o serviço configurado e rodando.

Verificando o funcionamento do chronyc

Para realizar outros testes de funcionamento do chronyc clique 👉 aqui 👈

Banner

🔖 Sites de Referência

📗 ntp.br

📗 How to Install and Use Chrony in Linux

📗 Manage NTP with Chrony

📗 Ubuntu Bionic: Using chrony to configure NTP

Banner


Última atualização: 2 de novembro de 2020

Comentários