Sincronizando o Linux com a Hora Legal Brasileira usando o NTP.br

O NTP define um jeito para um grupo de computadores conversar entre si e acertar seus relógios, baseados em alguma fonte confiável de tempo. Neste artigo vamos falar sobre como funciona o NTP. Apresentaremos também o projeto NTP.br, que fornece a Hora Legal Brasileira para a Internet. E mostraremos como sincronizar seu Linux.

[ Hits: 146.016 ]

Por: Antonio M. Moreiras em 31/01/2008 | Blog: http://www.ceptro.br


Configurações adicionais



Restringindo ainda mais o acesso

Se você estiver apenas sincronizando seu Linux e não quiser que ele transforme-se num servidor, pode mudar a configuração de restrição de acesso para:

# configurações de restrição de acesso
restrict default kod notrap nomodify nopeer noquery noserve

A palavra chave noserve diz para o servidor não informar o tempo, e noquery para não dar outros tipos de informação (consultas do ntpq).

Liberando o acesso para alguns hosts ou redes

Se quiser ainda liberar o acesso apenas para alguns hosts:

# configurações de restrição de acesso
restrict default kod notrap nomodify nopeer noquery noserve

# liberando para alguns hosts
restrict 10.10.0.123 kod notrap nomodify nopeer notrust
restrict 172.21.22.1 mask 255.255.255.0 kod notrap nomodify nopeer notrust

Você primeiro bloqueia tudo, depois libera para os hosts ou redes específicas.

Limitando o numero de acessos por unidade de tempo

Se você estiver pensando em manter um servidor de tempo público, é uma boa idéia restringir o número de consultas que um mesmo IP pode realizar por período de tempo.

Um cliente NTP convencional, bem educado e bem intencionado faz no pior caso, uma consulta a cada 64s, e no melhor caso, uma consulta a cada 1024s. Mas há os mal escritos, mal configurados ou mal intencionados, que abusivamente fazem consultas a cada segundo ou mais.

# configuração de limitação para consultas
discard average 2 minimum 1
restrict default limited notrap nomodify nopeer

Nesse caso vale a pena tirar o kod, o beijo da morte. Com o kod o ntp bloquearia clientes abusivos e a única forma de desbloqueá-los seria reiniciando o serviço. Bem, não queremos clientes abusivos. Mas no caso de incidentes não intencionados de abuso, também não queremos ficar reiniciando nosso NTP para que um determinado cliente possa voltar a acessá-lo.

Uma solução de compromisso é usar a palavra chave limited. No comando discard configuramos os limites, na configuração acima, um cliente pode mandar na média até um pacote a cada 2s, com picos de um pacote até 1s. Se mandar pacotes acima dessa taxa, não obterá respostas. É uma taxa alta, mas lembre que pode haver clientes atrás de NAT. E também pode haver picos de utilização ao se utilizar a palavra chave iburst para acelerar a configuração inicial de um servidor.

Configurando seus outros servidores como peers

Se você tem uma pequena rede, com mais do que 3 equipamentos, escolha 3 servidores e faça deles também servidores NTP. Isso vai economizar sua banda Internet, mesmo que a utilização do NTP seja baixíssima; vai também ajudar a manter os servidores públicos com uma carga aceitável; e vai melhorar a qualidade da sincronização dos hosts de sua rede.

Vamos supor que seus servidores sejam:
  • serv1.suarede.com.br
  • serv2.suarede.com.br
  • serv3.suarede.com.br

Na configuração do servidor 1, coloque o servidor 2 e 3 como peers. Isso significa que eles podem tanto consultar quanto informar o tempo entre si, e serve como configuração de redundância, caso algum deles deixe de falar com a Internet, mas ainda converse com os outros. Analogamente configure o serv2 e 3.

Para o serv1, por exemplo, a conf. fica assim:

# servidores públicos do projeto ntp.br
server a.ntp.br iburst
server b.ntp.br iburst
server c.ntp.br iburst

# pares (modo simétrico ativo)
peer serv2.suarede.com.br
peer serv3.suarede.com.br

Outros servidores NTP públicos

Se você quiser acrescentar outros servidores à sua configuração verifique:
Página anterior     Próxima página

Páginas do artigo
   1. A importância de manter o relógio sincronizado.
   2. O NTP
   3. O projeto NTP.br
   4. Instalando o NTP no Linux
   5. Configurações adicionais
   6. Usando o ntpq para monitorar o NTP
   7. Interpretando os logs do NTP
   8. A questão do horário de verão
   9. Não use ntpdate no cron: use o daemon ntpd!
   10. Concluindo e apresentando referências para consulta
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Instalação do winmodem HSP56 Pctel no Slackware

Blackbox total - Instalado, configurado e personalizado

Arch Linux - Repositório offline

Facilidades com Debian 4.0 Etch

Yum no Red Hat 4

  
Comentários
[1] Comentário enviado por sdrconsulting em 01/02/2008 - 08:38h

Antonio,

Há muito tempo eu não via um artigo de tão boa qualidade e bem estruturado. Parabéns.

Tenho certeza que muitos iniciantes não sabem o que é e para que serve o NTP, lendo o seu artigo ele saberá " tudo" .

Abs.

Sylvio Carlos

[2] Comentário enviado por jmadrid em 01/02/2008 - 09:02h

Legal Moreiras, tava dando uma lida no artigo e conhecendo coisas bem interessantes e quando me vejo, quem escreveu foi tu. Muito bom artigo.

[]s
João Madrid

[3] Comentário enviado por tcorreia em 01/02/2008 - 15:46h

Moreiras,

Mais uma vez você surpreende a comunidade de software livre com o vosso trabalho. Parabéns pelo projeto e publicação na comunidade de software livre, sabemos que esse projeto foi o primeiro e com certeza não será o único.

Boa Sorte!!!

Thiago A. Correia

[4] Comentário enviado por Ruy_Go em 02/02/2008 - 19:30h

ótimo artigo amigo, aqui foi perfeito mesmo.....

Obrigado e muito sucesso para voce!

[5] Comentário enviado por elgio em 03/02/2008 - 21:20h

Muitos aqui acham que eu só comento em artigos quando não gosto.

Hehehehe. Uma fama que adquiri aqui!

Mas Antonio, teu artigo é exatamente aquilo que eu considero um artigo. Estou cansado de ver no VOL apenas receitas de bolo, com uma série de comandos que fazem algo mesmo que o leitor não entenda para que serve.

Este teu excelente artigo é uma rara excessão. Foste muito a fundo no porquê das coisas, como é... Um OÁSIS no meio de um deserto de artigos fracos e sem conteúdo.

MEUS PARABÉNS!

[6] Comentário enviado por capitainkurn em 04/02/2008 - 15:06h

Ótima artigo Antônio, de grande utilidade e com ótima didática. Ví que é novo aqui no VOL, por favor contiunue nos brindando com artigos tão bons e de tanta utilidade para o dia a dia dos profissionais.
Este já adcionei a meus favoritos.

[7] Comentário enviado por albfneto em 09/11/2008 - 22:23h

Olá. eu tenho uma dica parecida, posterior a sua. O servidor do NIC, Stratum 1, não é público?

[8] Comentário enviado por antonio.moreiras em 10/11/2008 - 10:32h

Olá... Hoje os servidores estrato 1 do NTP.br não são públicos. Apenas a, b e c.ntp.br, que são estrato 2.

Isso acontece basicamente porque eles são appliances (spectracom, symmetricom) e não confiamos em certos aspectos de desempenho e segurança.

Mas não há, na prática, degradação considerável na qualidade do tempo fornecido.

Antonio M. Moreiras.

[9] Comentário enviado por albfneto em 30/03/2009 - 12:04h

Ola.
Estou com um problema, meu comando ntpd, não funciona no sabayon....
a mensagem é:

albfneto@linux ~ $ sudo ntpd -q -g
*** WARNING *** The program 'ntpd' uses the Apple Bonjour compatibility layer of Avahi.
*** WARNING *** Please fix your application to use the native API of Avahi!
*** WARNING *** For more information see <http://0pointer.de/avahi-compat?s=libdns_sd&e=ntpd>
albfneto@linux ~ $ sudo ntpd -q -g
*** WARNING *** The program 'ntpd' uses the Apple Bonjour compatibility layer of Avahi.
*** WARNING *** Please fix your application to use the native API of Avahi!
*** WARNING *** For more information see <http://0pointer.de/avahi-compat?s=libdns_sd&e=ntpd>


Abaixo, este é meu ntp.conf:

# NOTES:
# - you should only have to update the server line below
# - if you start getting lines like 'restrict' and 'fudge'
# and you didnt add them, AND you run dhcpcd on your
# network interfaces, be sure to add '-Y -N' to the
# dhcpcd_ethX variables in /etc/conf.d/net

# Name of the servers ntpd should sync with
# Please respect the access policy as stated by the responsible person.
#server ntp.example.tld iburst

# Common pool for random people
#server pool.ntp.org

# Pools for Gentoo users

##
# A list of available servers can be found here:
# http://www.pool.ntp.org/
# http://www.pool.ntp.org/#use
# A good way to get servers for your machine is:
# netselect -s 3 pool.ntp.org
##

# you should not need to modify the following paths
# driftfile /var/lib/ntp/ntp.drift

#server ntplocal.example.com prefer
#server timeserver.example.org

# Warning: Using default NTP settings will leave your NTP
# server accessible to all hosts on the Internet.

# If you want to deny all machines (including your own)
# from accessing the NTP server, uncomment:
#restrict default ignore


# To deny other machines from changing the
# configuration but allow localhost:
restrict default nomodify nopeer
restrict 127.0.0.1


# To allow machines within your network to synchronize
# their clocks with your server, but ensure they are
# not allowed to configure the server or used as peers
# to synchronize against, uncomment this line.
#
# restrict 192.168.0.0 mask 255.255.255.0 nomodify nopeer notrap
restrict default kod notrap nomodify nopeer noquery noserve

# servidores varios
server ntp.usp.br iburst
server a.ntp.br iburst
server b.ntp.br iburst
server c.ntp.br iburst
server br.pool.ntp.org iburst

# "memoria" para o escorregamento de frequência do micro
# pode ser necessário criar esse arquivo manualmente com
# o comando touch ntp.drift
driftfile /etc/ntp.drift

# estatísticas do ntp que permitem verificar o histórico
# de funcionamento e gerar gráficos
statsdir /var/log/ntpstats/
statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable

Coloquei o servidor de tempo da USP como primeiro, pq. trabalho na USP, mas ele é Stratum 2, também.
O Stratum 1 do Observatório Nacional, também não é mais público?
Uma curiosidade minha Stratums 3 e 4 ainda são usados ou não mais?

[10] Comentário enviado por antonio.moreiras em 30/03/2009 - 12:32h

Olá Alberto,

à princípio essa mensagem é só um warning alertando para que os desenvolvedores mudem a forma de acesso a uma determinada biblioteca. Ela não indica que não esteja funcionando.

Peço que publique os resultados dos comandos:

ntpq -c rl

e

ntpq -p

para que eu possa tentar ajudá-lo.

Se preferir, entre em contato via email: ntp@nic.br ou no canal #ntp.br do irc.freenode.net.

O ON tem 2 servidores públicos: ntp.on.br e ntp2.on.br. Você pode também utilizá-los.

[]s
Moreiras.

[11] Comentário enviado por albfneto em 30/03/2009 - 12:44h

Olá. postando a saída dos comandos.
meu micro fica 3 horas atrasado e o comando ntpd, não acerta a hora.
Saida dos comandos:

albfneto@linux ~ $ sudo ntpq -c rl
assID=0 status=c011 sync_alarm, sync_unspec, 1 event, event_restart,
version="ntpd 4.2.4p6@1.1549-o Sun Feb 8 21:28:54 UTC 2009 (1)",
processor="x86_64", system="Linux/2.6.28-sabayon", leap=11, stratum=16,
precision=-20, rootdelay=0.000, rootdispersion=2.205, peer=0,
refid=INIT, reftime=00000000.00000000 Thu, Feb 7 2036 4:28:16.000,
poll=6, clock=cd7b3c3f.94b88942 Mon, Mar 30 2009 9:40:31.580, state=0,
offset=0.000, frequency=0.000, jitter=0.001, noise=0.001,
stability=0.000, tai=0

albfneto@linux ~ $ sudo ntpq -p
No association ID's returned

Acabei de ver seu outro post, conm o ntp.conf, bem completo. legal são vários os servidores que podem ser usados.

http://www.vivaolinux.com.br/etc/ntp.conf

[12] Comentário enviado por leandromoreirati em 11/05/2011 - 09:01h

Caros,

Estou montando um servidort NTP e estou precisando de ajuda, pois ele sincroniza com o servidor stratum 2 sem problemas mas meu servidores windows 2003/2008 nao sincronizam com ele retona TIME OUT.

O firewall do windows esta desativado e abaixo segue as minhas configurações do NTP

# "memoria" para o escorregamento de frequencia do micro
# pode ser necessario criar esse arquivo manualmente com
# o comando touch ntp.drift
#driftfile /etc/ntp.drift
driftfile /var/lib/ntp/ntp.drift

# estatisticas do ntp que permitem verificar o historico
# de funcionamento e gerar graficos
statsdir /var/log/ntpstats/
statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable

# servidores publicos do projeto ntp.br
server a.ntp.br iburst
server b.ntp.br iburst
server c.ntp.br iburst

# outros servidores
# server outro-servidor.dominio.br iburst

# configuracoes de restricao de acesso
#restrict default kod notrap nomodify nopeer
restrict 10.0.0.0 mask 255.0.0.0 kod notrap nomodify nopeer notrust


Desde já agradeço a atenção.

Att.

Leandro Moreira


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts