Introdução A manutenção precisa do tempo é fundamental para quase qualquer serviço ou software. E-mails, loggers, sistemas de eventos e schedulers, mecanismos de autenticação do Usuário e serviços em execução em plataformas distribuídas todos precisam de datas precisas para gravar eventos em ordem cronológica. Estes serviços usam o protocolo de tempo de rede, ou NTP, para sincronizar o relógio do sistema com uma fonte externa confiável. Esta fonte pode ser um relógio atômico, um receptor GPS, ou outro servidor de tempo que já usa NTP.
este é o lugar onde o projeto NTP Pool entra em jogo. É um enorme cluster mundial de servidores de tempo que oferece fácil acesso ao conhecido “bom tempo” para dezenas de milhões de clientes em todo o mundo. É o servidor de tempo padrão Para Ubuntu e a maioria das outras grandes distribuições Linux, bem como muitos eletrodomésticos em rede e aplicações de software.
neste guia, você irá configurar o NTP no seu servidor e configurá-lo para fazer parte do projecto NTP Pool, para que ele forneça tempo preciso a outros utilizadores do projecto NTP Pool. Fornecer seus ciclos de CPU de reposição e largura de banda não utilizada é uma maneira perfeita de devolver algo à comunidade.
a largura de banda necessária é relativamente baixa e pode ser ajustada dependendo da quantidade que você pode fornecer e onde o seu servidor reside. Cada cliente só vai enviar um par de pacotes UDP a cada 20 minutos, então a maioria dos servidores só recebem cerca de uma dúzia de pacotes NTP por segundo, com picos um par de vezes por dia de até cem pacotes por segundo. Isso se traduz em uso de largura de banda de 10-15Kb/seg com picos de 50-120Kb/seg.
existem três requisitos básicos que você deve satisfazer antes de aderir ao projeto NTP Pool:
- o seu servidor deve ter um endereço IP estático.
- o seu servidor deve ter uma ligação permanente e estável à internet.
- o seu endereço IP não muda muito, ou apenas muda pouco frequentemente (uma vez por ano ou menos).
para a maioria dos servidores baseados em nuvem, os dois primeiros requisitos são geralmente atendidos automaticamente. O terceiro requisito sublinha que a adesão ao projecto NTP Pool constitui um compromisso a longo prazo. Claro que, se as suas circunstâncias mudarem, não há problema em tirar um servidor da piscina, mas vai demorar muito tempo (principalmente semanas, mas às vezes meses ou mesmo anos) até que o tráfego desapareça completamente.
pré-requisitos
para completar este tutorial, você vai precisar:
- um servidor Centos 7 com rede IPv6 configurada. Se precisar de configurar a rede IPv6 numa Droplet de exising, poderá seguir este tutorial.
- um utilizador não root sudo e uma firewall, que poderá configurar seguindo a configuração inicial do servidor com o tutorial CentOS 7 e a secção “Configurar uma Firewall básica” nos passos adicionais recomendados para o tutorial de novos servidores CentOS 7.
Step 1-Instalação NTP
o pacote NTP não está instalado por omissão, por isso irá usar o Gestor de pacotes para o instalar. Primeiro, atualize seus pacotes:
- sudo yum update
em seguida, instalar o NTP:
- sudo yum install ntp
Depois que a instalação for concluída, inicie o serviço e configurá-lo para que ele será iniciado automaticamente a cada vez que o servidor de botas:
- sudo systemctl start ntpd
- sudo systemctl enable ntpd
Se você tiver configurado o firewall conforme especificado no pré-requisitos, você deve permitir o tráfego de UDP para o serviço NTP para se comunicar com o NTP piscina:
- sudo firewall-cmd --permanent --add-service=ntp
- sudo firewall-cmd --reload
Para saber mais sobre FirewallD, consulte Como Configurar um Firewall Usando FirewallD no CentOS 7.
NTP está agora instalado, mas está configurado para usar os servidores de tempo padrão NTP pool. Vamos escolher alguns servidores de tempo específicos em vez disso.
Step 2-escolher um servidor Upstream adequado
o projecto NTP Pool pede aos operadores que queiram juntar-se ao pool para escolherem bons servidores de rede-horário local em vez de usarem os servidores predefinidos pool.ntp.org
. Isso garante que o projeto NTP Pool permanece confiável, rápido e saudável. Ao escolher a sua fonte de tempo, você vai querer uma conexão de rede estável sem perda de pacotes e tão pouco lúpulo quanto possível entre os servidores.
o protocolo NTP multifacetado e hierárquico separa as partes envolvidas em servidores primários, servidores secundários e clientes. Os servidores primários são chamados estrato 1 e estão conectados diretamente à fonte do tempo, que é chamado estrato 0. Esta fonte pode ser um relógio atômico, um receptor GPS, ou um sistema de radionavegação. Servidores secundários na cadeia são chamados estrato 2, estrato 3 e assim por diante.
cada servidor é também um cliente. Um cliente do estrato 2 recebe tempo de um servidor do estrato 1 a montante, e fornece tempo para servidores do estrato 3 a jusante ou outros clientes. Para que os membros do projeto NTP Pool funcionem corretamente, o DAEMON NTP precisa de pelo menos três servidores configurados. O projeto recomenda um mínimo de quatro, e não mais de Sete Fontes.
o projecto NTP Pool fornece uma lista de Servidores de tempo públicos estrato 1 e Startum 2. As listas designam os servidores de tempo NTP disponíveis para acesso público sob as restrições indicadas. Você encontrará três tipos:
- OpenAccess: este servidor de tempo está aberto a qualquer cliente que esteja de acordo com as recomendações de Uso do Pool NTP.
- RestrictedAccess: This time server has some access restrictions in addition to the NTP Pool usage recommendations.
- ClosedAccess: Este servidor de tempo é fechado ou necessita de arranjo prévio.
Aviso: Não utilize servidores que não estejam listados como OpenAccess a menos que tenha recebido aprovação para o fazer.
visite a lista de servidores horários do estrato 1. Você verá uma lista como a seguinte:
ordenem a lista pela coluna de código ISO e encontrem um ou dois servidores geograficamente próximos do centro de dados do seu servidor. Quando a coluna Política de acesso do servidor diz OpenAccess, você pode usá-lo sem problemas. Se ele diz “RestrictedAccess”, clique para abrir a entrada e ler as instruções anotadas no campo AccessDetails. Muitas vezes, você vai descobrir que NotificationMessage é definido para Sim, o que significa que você terá de elaborar um informal e-mail direcionado para o endereço fornecido no ServerContact, informando ao operador do servidor sobre o seu desejo de usar este servidor de tempo como uma fonte de tempo para a sua NTP Piscina membro do Projeto.
depois de ter identificado os servidores que gostaria de usar, clique no link para cada servidor na coluna ISO e copie o seu nome de máquina ou endereço IP. Vais usar estes endereços no Passo 3.Em seguida, selecione três ou quatro servidores da lista estrato 2, seguindo o mesmo processo.
uma vez que você tenha selecionado seus servidores de tempo, é hora de configurar o seu cliente NTP para usá-los.
Passo 3-Configurar o NTP para se juntar ao Pool
para usar o seu servidor com o pool NTP, e configurar os seus novos servidores de tempo, terá de fazer algumas modificações na configuração do seu servidor NTP. Para isso, edite o arquivo /etc/ntp.conf
:
- sudo vi /etc/ntp.conf
Primeiro, certifique-se de que um ficheiro de deriva está configurado. Um driftfile armazena o deslocamento de frequência entre o relógio do sistema rodando em sua frequência nominal, e a frequência necessária para permanecer em sincronização com o tempo correto. Ajuda a alcançar um tempo estável e preciso. Deverá encontrar isto no topo do seu ficheiro de configuração numa instalação predefinida:
# For more information about this file, see the man pages# ntp.conf(5), ntp_acc(5), ntp_auth(5), ntp_clock(5), ntp_misc(5), ntp_mon(5).driftfile /var/lib/ntp/drift...
a seguir, remova os itens de código de tempo predefinidos da configuração. Você está procurando todas as linhas que são do padrão server 0.centos.pool.ntp.org iburst
. Se estiver a usar uma configuração predefinida, remova as linhas realçadas, como mostrado no exemplo seguinte:
...# Use public servers from the pool.ntp.org project.# Please consider joining the pool (http://www.pool.ntp.org/join.html).server 0.centos.pool.ntp.org iburstserver 1.centos.pool.ntp.org iburstserver 2.centos.pool.ntp.org iburstserver 3.centos.pool.ntp.org iburst
substitua as linhas que removeu pelos servidores escolhidos à mão que seleccionou na etapa anterior.
...server ntp_server_hostname_1 iburstserver ntp_server_hostname_2 iburstserver ntp_server_hostname_3 iburstserver ntp_server_hostname_4 iburstserver ntp_server_hostname_5 iburst...
usamos a opção iburst
para cada servidor, de acordo com as recomendações NTP Pool. Dessa forma, se o servidor estiver inacessível, isto irá enviar uma explosão de oito pacotes em vez do pacote habitual. Usando a opção burst
no projeto NTP Pool é considerado abuso, pois ele irá enviar esses oito pacotes a cada intervalo de votação, enquanto iburst
envia os oito pacotes apenas a primeira vez.
a seguir, certifique-se que a configuração padrão não permite consultas de gestão. Se não o fizer, o seu servidor poderá ser usado em ataques de reflexão NTP, ou poderá ser vulnerável a consultas ntpq
e ntpdc
que tentam modificar o estado do servidor. Verifique se a opção noquery
é adicionada às linhas predefinidas restrict
. Certifique-se também de que adiciona as opções kod
e limited
, uma vez que elas restringem demasiado avidamente pedir aos clientes e impor limites de taxa.
...# Permit time synchronization with our time source, but do not# permit the source to query or modify the service on this system.restrict default nomodify notrap nopeer noquery kod limited# Permit all access over the loopback interface. This could# be tightened as well, but to do so would effect some of# the administrative functions.restrict 127.0.0.1restrict ::1
pode encontrar mais informações sobre as outras opções na documentação oficial.
o seu ficheiro de configuração do servidor NTP agora deverá ter o seguinte aspecto, embora o seu ficheiro possa ter comentários adicionais, que poderá ignorar com segurança:
driftfile /var/lib/ntp/ntp.driftrestrict default nomodify notrap nopeer noquery kod limitedrestrict 127.0.0.1restrict ::1server ntp_server_hostname_1 iburstserver ntp_server_hostname_2 iburstserver ntp_server_hostname_3 iburstserver ntp_server_hostname_4 iburstserver ntp_server_hostname_5 iburst
Salve o arquivo e saia do editor.
agora reinicie o serviço NTP e deixe o seu servidor de tempo sincronizar o seu relógio para os servidores upstream.Após alguns minutos, verifique a saúde do seu servidor de tempo com o comando ntpq
:
- ntpq -p
a saída deve ser semelhante a esta:
Output remote refid st t when poll reach delay offset jitter============================================================================== mizbeaver.udel. .INIT. 16 u - 64 0 0.000 0.000 0.000 montpelier.ilan .GPS. 1 u 25 64 7 55.190 2.121 130.492+nist1-lnk.binar .ACTS. 1 u 28 64 7 52.728 23.860 3.247*ntp.okstate.edu .GPS. 1 u 31 64 7 19.708 -8.344 6.853+ntp.colby.edu .GPS. 1 u 34 64 7 51.518 -5.914 6.669
a coluna remota diz-lhe o nome dos servidores que o servidor de NTP está a usar, e a coluna refid diz-lhe a origem que os servidores estão a usar. Assim, para os servidores do estrato 1, o campo refid deve mostrar GPS, PPS, ACTS, ou PTB, e os servidores do estrato 2 e superior irão mostrar o endereço IP do servidor upstream. A coluna st mostra o estrato, e o atraso, o deslocamento e o jitter dizem-lhe sobre a qualidade da fonte de tempo. Valores mais baixos são melhores para estes três campos.
seu servidor de tempo agora é capaz de servir o tempo para o público. Você pode verificar isso chamando ntpdate
de outro host:
- ntpdate -q your_server_ip
A saída deve ser semelhante a este, e ele diz ” é ajustado o tempo de servidor e o deslocamento:
Outputserver your_server_ip, stratum 2, offset 0.001172, delay 0.16428 2 Mar 23:06:44 ntpdate: adjust time server your_server_ip offset 0.001172 sec
agora Você está pronto para registrar o seu servidor NTP com o NTP Projeto do Pool para que outros possam usá-lo.
Passo 4 — Adicionar o Servidor NTP Piscina
Para adicionar o seu servidor para que outros possam usá-lo, visite manage.ntppool.org e se inscrever para uma conta. Você receberá um e-mail do Pool NTP [email protected] solicito que verifique a sua conta. Confirme sua conta seguindo as instruções no e-mail e, em seguida, iniciar sessão no manage.ntppool.org.
uma Vez conectado, você verá a interface simples para adicionar servidores:
Introduza o endereço IP do servidor e clique em Enviar.
o ecrã seguinte pede-lhe para verificar se identificou a região do seu servidor. Se ele mostrar o seu servidor em uma região diferente do que você espera, use a caixa de comentários para deixá-los saber.
se estiver satisfeito, confirme a entrada clicando Sim, este é o meu servidor, adicione-o!
o seu servidor faz agora parte do projecto NTP Pool. Visite http://www.pool.ntp.org/scores/your_server_ip
para ver informações que o sistema de monitorização do NTP Pool recolheu sobre o seu servidor. Ele verifica o seu servidor algumas vezes por hora e exibe dados offset, alog com a pontuação do seu sistema. Enquanto o seu servidor está mantendo um bom tempo e é acessível, a pontuação vai subir até que ele atinja 20 pontos. Apenas servidores com uma pontuação superior a 10 são usados na piscina.
Troubleshooting Connectivity Issues
If you are having trouble getting your server to sync you might have a packet firewall in place dropping your outgoing packets on port 123
. Dê uma olhada em como configurar uma Firewall usando FirewallD em CentOS 7 para aprender a verificar o estado da firewall.
se a estação de monitorização do projecto NTP Pool não conseguir chegar ao seu servidor NTP e a pontuação do seu servidor estiver a descer, ou se não puder usar o seu servidor para sincronizar outro relógio, poderá ter uma firewall de pacotes no local a largar o tráfego de entrada na porta 123
. Verifique o estado da firewall.
se tiver a certeza de que não tem nenhuma firewall no local, ou se abriu o porto 123
tanto para o tráfego de entrada como de saída, o seu fornecedor do servidor ou outro fornecedor de trânsito poderá estar a largar os seus pacotes ao longo do caminho. Se você não tem o conhecimento para resolver esses problemas sozinho, é melhor voltar-se para a comunidade e alcançar a ajuda. O Fórum de projetos NTP Pool é um bom lugar para começar. Você também pode se juntar à lista de discussão ou enviar um emaill para o operador de projeto NTP Pool. Apenas certifique-se de que você pode mostrar todos os passos que você já tentou resolver o problema antes de pedir ajuda.
Conclusion
In this tutorial, you successfully set up your own time server and made it a member of the NTP Pool Project, serving time to the community. Para manter contato com a comunidade de conservação de tempo. Junte-se ao Fórum de projetos NTP Pool ou à lista de discussão. Certifique-se de monitorar a pontuação do seu servidor e fazer todos os ajustes necessários.