ntp-4.2.8p15

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".

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "ntp"

Exigidas

IO-Socket-SSL-2.081

Opcionais

libcap-2.67 com PAM, libevent-2.1.12, libedit e libopts originário do AutoGen

Observações de Usuário(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

O comando "update-leap" precisa ser corrigido para a finalidade de funcionar corretamente:

sed -e 's/"(\\S+)"/"?([^\\s"]+)"?/' \
   -i scripts/update-leap/update-leap.in

Agora corrija um problema introduzido com a "glibc-2.34":

sed -e 's/#ifndef __sun/#if !defined(__sun) \&\& !defined(__GLIBC__)/' \
   -i libntp/work_thread.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.8p15 &&
make

A suíte de teste desse pacote está quebrada com o "GCC" 10 ou 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

CFLAGS="-O2 -g -fPIC": Essa variável de ambiente é necessária para gerar Código Independente de Posição necessário para uso nas bibliotecas de pacotes.

--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 primeiro define vários servidores "NTP" com acesso aberto a partir de diferentes continentes. Segundo, ele cria um arquivo de mudança gradual onde o "ntpd" armazena o deslocamento de frequência e um arquivo "PID" para armazenar o "ID" do processo do "ntpd". Terceiro, ele define o local para o arquivo de definição do segundo bissexto "/etc/ntp.leapseconds", que o conjunto de comandos sequenciais "update-leap" verifica e atualiza, quando necessário. Esse conjunto de comandos sequenciais pode ser executado como uma tarefa do "Cron" e os desenvolvedores do "ntp" recomendam uma frequência de cerca de três semanas para as atualizações. Como a documentação incluída no pacote é escassa, visite o sítio da "web" 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

leapfile  /var/lib/ntp/ntp.leapseconds
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-20220720".

make install-ntpd

Se você preferir executar o "ntpd" periodicamente, [então] adicione o seguinte comando ao "crontab" do(a) "root":

ntpd -q

Conteúdo

Aplicativos Instalados: calc_tickadj, ntp-keygen, ntp-wait, ntpd, ntpdate, ntpdc, ntpq, ntptime, ntptrace, sntp, tickadj e update-leap
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/share/ntp, /usr/share/doc/ntp-4.2.8 e /var/lib/ntp

Descrições Curtas

calc_tickadj

calcula o valor ideal para o "tick" dado o arquivo de mudança gradual do "NTP"

ntp-keygen

gera arquivos de dados criptográficos usados pelos esquemas de autenticação e identificação "NTPv4"

ntp-wait

é útil ao tempo da inicialização, para atrasar a sequência de inicialização até que o "ntpd" tenha configurado a hora

ntpd

é um processo de segundo plano "NTP" que executa em segundo plano e mantém a data e a hora sincronizadas baseado na resposta originária dos servidores "NTP" configurados. Também funciona como um servidor "NTP"

ntpdate

é um aplicativo cliente que configura a data e a hora baseado na resposta originária de um servidor "NTP". Esse comando está obsoleto

ntpdc

é usado para consultar o processo de segundo plano "ntp" sobre o estado atual dele e para solicitar mudanças nesse estado

ntpq

é um aplicativo utilitário usado para monitorar operações "ntpd" e determinar o desempenho

ntptime

lê e exibe variáveis do núcleo relacionadas à hora

ntptrace

rastreia uma cadeia de servidores "NTP" até a fonte primária

sntp

é um cliente "Simple Network Time Protocol" ("SNTP")

tickadj

lê e, opcionalmente, modifica várias variáveis relacionadas à cronometragem em núcleos mais antigos que não tem suporte para cronometragem de precisão

update-leap

é um conjunto de comandos sequenciais para verificar e, se necessário, atualizar o arquivo de definição de segundos bissextos