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.944 ]

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


A importância de manter o relógio sincronizado.



Uma característica básica e ao mesmo tempo importante do tempo é que ele sempre avança. O tempo não para e não volta para trás. Vários programas de computador fazem uso dessa característica e podem ter seu funcionamento comprometido se o relógio do computador inesperadamente passar a indicar um horário errado, especialmente se for um horário no passado. Isso se complica ainda mais na Internet, com vários computadores trocando informações entre si!

Quando se trata de um computador isolado a exatidão em relação à uma referência de tempo como a hora legal brasileira não é tão importante. Nesse caso o mais importante é manter a monotonicidade do tempo. Além disso, eventuais ajustes no relógio devem ser, sempre que possível, graduais. Saltos no tempo, mesmo de alguns poucos segundos, para o futuro podem ser ruins, e para o passado, desastrosos.

Como exemplos de aplicações afetadas pelo tempo pode-se citar:
  • Sistemas de distribuição de conteúdo (www, usenet news, etc): Utilizam estampas de tempo para controlar a expiração dos documentos e o cache. Servidores com o tempo errado podem causar perda de informações ou impedir o acesso às mesmas.
  • Sistemas de arquivos (filesystems): Alguns eventos importantes como a criação e modificação de arquivos são marcados por estampas de tempo. Algumas aplicações lêem essas informações e delas dependem. Se alguma dessas datas estiver no futuro, as aplicações podem agir de forma indevida, ou mesmo deixar de funcionar por completo. Como exemplos de aplicações sensíveis a essa situação pode-se citar os sistemas de controle de versão (como o cvs), sistemas de compilação automática (make), sistemas de backup de dados e sistemas de banco de dados.
  • Agendadores de eventos: Aplicações como o cron e o at dos sistemas unix dependem do tempo correto para funcionarem.
  • Criptografia: Muitas técnicas criptográficas fazem uso de estampas de tempo para os eventos e chaves para prevenir alguns tipos de ataques. Se os computadores envolvidos não estiverem sincronizados entre si, a autenticação e comunicação criptografada podem falhar.
  • Protocolos de comunicação e aplicações de tempo real: Essas aplicações, que incluem as Interfaces Gráficas, fazem uso de filas de eventos, timeouts, timers, e outros recursos de software ligados ao tempo. Para seu correto funcionamento é necessário garantir a monotonicidade, uma boa resolução, e a continuidade (ausência de saltos) no tempo.
  • Sistemas transacionais e bancos de dados distribuídos: Dependem de relógios exatos e muitas vezes, de sua sincronia com a hora legal. Como exemplo dessas aplicações pode-se citar o Home Banking, o Home Broker, os sistemas EDI, etc. As bolsas de valores, por exemplo, tem horários bem definidos de início e término do pregão. A Receita Federal aceita as declarações de Imposto de Renda geralmente até a meia noite da data limite para a entrega.

É importante também do ponto de vista de segurança de redes que os relógios dos computadores estejam sincronizados. Investigações relacionadas a incidentes de segurança tornam-se impossíveis caso os servidores envolvidos e os diversos arquivos de log discordem entre si em relação às estampas de tempo dos eventos.
    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

Asterisk - Instalação e configuração no Debian Lenny

Configurando o seu teclado sem fio (e, via de regra, sem LEDs indicadores de estado) no Linux

Fedora Desktop completo com i3 WM

Melhorando o tempo de boot do Fedora e outras distribuições

Construindo um servidor NFS usando o Insigne GNU/Linux

  
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