Como Configurar NTP no Ubuntu: Sincronização Precisa de Tempo com Chrony

1. Importância do NTP no Ubuntu

O que é NTP?

NTP (Network Time Protocol) é um protocolo projetado para sincronizar o horário dos sistemas de computador de forma precisa através de uma rede. Manter o horário do sistema correto é essencial para a consistência de logs, processamento de transações e a confiabilidade da comunicação de rede. Se o relógio do sistema desviar, podem ocorrer erros de rede ou inconsistências de dados, tornando a sincronização precisa do horário crucial, especialmente em ambientes de servidores.

No Ubuntu, chrony é recomendado porque fornece sincronização de horário precisa mesmo em ambientes de rede instáveis. O Chrony também oferece baixa latência e sincronização rápida, tornando‑o adequado tanto para ambientes de servidor quanto de cliente.

2. Como Configurar o NTP

Instalando e Configurando o Chrony

Chrony é o cliente NTP padrão no Ubuntu 18.04 e versões posteriores. Use os passos a seguir para instalar o Chrony e configurar a sincronização de horário usando servidores NTP.

Etapas de Instalação

sudo apt update
sudo apt install chrony

Em seguida, inicie o serviço Chrony e habilite‑o para inicialização automática.

sudo systemctl start chrony
sudo systemctl enable chrony

O arquivo de configuração está localizado em /etc/chrony/chrony.conf. Se você quiser usar servidores NTP localizados no Japão, configure‑o da seguinte forma:

server ntp.nict.jp iburst
server 0.jp.pool.ntp.org iburst
server 1.jp.pool.ntp.org iburst
server 2.jp.pool.ntp.org iburst

A opção iburst acelera a sincronização inicial ao conectar‑se a um servidor NTP.

3. Otimizando e Selecionando Servidores NTP

Usando o Projeto NTP Pool

O Projeto NTP Pool fornece servidores NTP otimizados por região, provenientes de todo o mundo. Ao configurar múltiplos servidores NTP, a confiabilidade aumenta, garantindo que, se um servidor ficar indisponível, outros possam continuar a sincronização de horário sem interrupções.

O exemplo abaixo mostra uma configuração que usa servidores localizados no Japão:

server ntp.nict.jp iburst
server 0.jp.pool.ntp.org iburst
server 1.jp.pool.ntp.org iburst
server 2.jp.pool.ntp.org iburst

4. Definindo o Fuso Horário

Usando o Comando timedatectl

Por padrão, o Ubuntu usa UTC como fuso horário do sistema. Você pode alterá‑lo para o Horário Padrão do Japão (JST) usando o comando a seguir:

sudo timedatectl set-timezone Asia/Tokyo

Depois de fazer a alteração, verifique as configurações atuais do fuso horário com:

timedatectl

5. Solução de Problemas

Quando o NTP Não Sincroniza

Verificar o Firewall

NTP usa a porta UDP 123, e a sincronização pode falhar se o firewall bloquear essa porta. Abra a porta 123 usando o comando a seguir:

sudo ufw allow 123/udp

Verificando Relógios Falsos

Use o comando ntpq -p para verificar se os servidores NTP estão funcionando corretamente. Servidores que fornecem horário impreciso são marcados com o símbolo x. Se detectados, remova ou substitua esses servidores na sua configuração.

Erro Stratum 16

Se o servidor NTP não conseguir sincronizar com um servidor upstream, ocorre um erro Stratum 16. Isso indica um problema de conectividade ou de configuração. Verifique as configurações de rede e reconfigure seus servidores NTP para garantir a sincronização com fontes upstream confiáveis.

Sincronização Manual de Horário

Para sincronizar o horário manualmente usando o Chrony, execute o comando a seguir:

sudo ntpdate ntp.nict.jp

Você também pode revisar os logs do Chrony para diagnosticar problemas de sincronização:

sudo journalctl -u chrony

6. Otimização do NTP em Ambientes de Alta Carga

Ajustando minpoll e maxpoll

Em ambientes que exigem sincronização de horário de alta precisão, ajustar os intervalos de sondagem do NTP permite atualizações mais frequentes e ajuda a minimizar o desvio de horário. O exemplo de configuração abaixo aumenta a frequência de sincronização:

server ntp.nict.jp iburst minpoll 4 maxpoll 10

Gerenciando NTP com Juju

Em ambientes de nuvem em grande escala, o Juju pode automatizar a implantação de serviços NTP. O Juju monitora a carga dos hosts e seleciona automaticamente o host ideal como servidor NTP. Implante o NTP via Juju da seguinte forma:

juju deploy cs:ntp ntp
juju config ntp auto_peers=true

Isso permite o gerenciamento automatizado do NTP, distribuindo a carga de forma eficaz e garantindo uma sincronização de tempo eficiente.

7. Aprimorando a Segurança

Controle de Acesso para Servidores NTP

Para melhorar a segurança, você pode restringir o acesso ao servidor NTP a endereços IP específicos. Adicione regras de controle de acesso ao arquivo /etc/chrony/chrony.conf conforme mostrado abaixo, permitindo solicitações apenas de redes aprovadas:

allow 192.168.1.0/24

Isso impede solicitações NTP não autorizadas de hosts externos e reforça a segurança da rede interna.

侍エンジニア塾