Introdução ao ntp
O pacote "ntp" contém um cliente e
um servidor para manter a hora sincronizada entre vários
computadores em uma rede de intercomunicação. Esse pacote é a
implementação de referência oficial do protocolo "NTP".
Para a maioria das instalações do systemd, o systemd-timesyncd
fornece simples sincronização de horário. Esse pacote não é
necessário, a menos que você precise executar um servidor de
horário NTP ou queira se conectar a relógios locais de hardware
Nota
Esse pacote é conhecido por construir e
funcionar adequadamente usando-se uma plataforma LFS 13.0.
Informação do Pacote
Dependências do "ntp"
Exigidas
IO-Socket-SSL-2.098
Opcionais
libcap-2.77 com PAM, libevent-2.1.12,
libedit e libopts originário do
AutoGen
Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/ntp
Instalação do ntp
Deveria existir um(a) usuário(a) e um grupo dedicado(a) para
assumir o controle do processo de segundo plano "ntpd" depois que ele for
iniciado. Emita os seguintes comandos como o(a) usuário(a)
"root":
groupadd -g 87 ntp &&
useradd -c "Protocolo de horário da rede de intercomunicação" -d /var/lib/ntp -u 87 \
-g ntp -s /bin/false ntp
Primeir corrija problemas de construção identificados quando o
glibc-2.43 foi introduzido:
sed -i 's/getclock/getclock memchr/' sntp/m4/ntp_libntp.m4 &&
sed -i 's/pthread_detach(NULL)/pthread_detach(0)/' sntp/m4/openldap-thread-check.m4 &&
autoreconf -fiv
Em seguida, aplique uma correção de fluxo de desenvolvimento para
evitar uma falha de segmento:
sed -i "/ep.*FAILED/,+4s/ep/ep2/" ntpd/ntp_io.c
Instale o "ntp" executando os
seguintes comandos:
./configure --prefix=/usr \
--bindir=/usr/sbin \
--sysconfdir=/etc \
--enable-linuxcaps \
--with-lineeditlibs=readline \
--docdir=/usr/share/doc/ntp-4.2.8p18 &&
make
Para testar os resultados, emita: make check. Três testes
(test-crypto, test-packetHandling e test-packetProcessing) são
conhecidos por falharem devido ao uso do OpenSSL 3.5.2 e posterior.
Agora, como o(a) usuário(a) "root":
make install &&
install -v -o ntp -g ntp -d /var/lib/ntp
Explicações do Comando
--bindir=/usr/sbin: Esse
parâmetro coloca os aplicativos administrativos em "/usr/sbin".
--enable-linuxcaps: O
"ntpd" é executado como usuário(a) "ntp", de forma que use os
recursos do "Linux" para controle de relógio não raiz.
--with-lineeditlibs=readline: Essa
chave habilita o suporte "Readline" para os aplicativos "ntpdc" e "ntpq". Se omitido, [então]
"libedit" será usada se instalada;
caso contrário, nenhum recurso do "Readline" será compilado.
Configurando o ntp
Arquivos de Configuração
/etc/ntp.conf
Informação de Configuração
O arquivo de configuração a seguir define primeiro vários
servidores NTP com acesso aberto a partir de diferentes
continentes. Segundo, ele cria um arquivo drift onde ntpd armazena o deslocamento de
frequência e um arquivo pid para armazenar o ID do processo
ntpd. Como a
documentação incluída no pacote é escassa, visite-se o sítio do
NTP em https://www.ntp.org/ e https://www.ntppool.org/ para mais
informações.
cat > /etc/ntp.conf << "EOF"
# Ásia
server 0.asia.pool.ntp.org
# Austrália
server 0.oceania.pool.ntp.org
# Europa
server 0.europe.pool.ntp.org
# América do Norte
server 0.north-america.pool.ntp.org
# América do Sul
server 2.south-america.pool.ntp.org
driftfile /var/lib/ntp/ntp.drift
pidfile /run/ntpd.pid
EOF
Você possivelmente deseje adicionar uma “seção de Segurança”.
Para explicações, veja-se
https://www.eecis.udel.edu/~mills/ntp/html/accopt.html#restrict.
cat >> /etc/ntp.conf << "EOF"
# Seção de segurança
restrict default limited kod nomodify notrap nopeer noquery
restrict -6 default limited kod nomodify notrap nopeer noquery
restrict 127.0.0.1
restrict ::1
EOF
Sincronizando a Hora
Existem duas opções. A primeira opção é a de executar o
"ntpd"
continuamente e permitir que ele sincronize a hora de maneira
gradual. A outra opção é a de executar o "ntpd" periodicamente (usando o
"Cron") e atualizar a hora cada vez que o "ntpd" estiver agendado.
Se você escolher a opção um, então instale a
unidade "ntpd.service"
inclusa no pacote "" "blfs-systemd-units-20251204".
make install-ntpd
Além disso, você deveria desabilitar um serviço incompatível.
Como o(a) usuário(a) root:
systemctl disable systemd-timesyncd.service
Se você preferir executar ntpd periodicamente, adicione o
seguinte comando ao crontab do(a)
root:
ntpd -q