Servidor NTP - Configuração e ajuste de data e hora

Vou mostrar como ajustar a data e hora do servidor, configurar e manter um servidor de NTP (Network Time Protocol).

[ Hits: 215.330 ]

Por: Fabricio Santana em 06/10/2014


Ajustes e configurações



Introdução

Olá, pessoal.

Vou mostrar como ajustar a data e hora do servidor, configurar e manter um servidor de NTP (Network Time Prrotocol).

Manter o sistema com horário correto é uma tarefa muito importante, sem o horário correto, fica difícil agendar tarefas a serem executadas, verificar logs e controlar eventos por horário.

E ainda existe o problema do fuso horário, um sistema com a hora errada pode gerar problemas, por exemplo, se for um servidor de e-mails, pois fica muito difícil de dizer exatamente o horário que a mensagem foi enviada. Se for um servidor com Squid, que existe liberação de acesso por horário, isso acaba dificultando o acesso dos colaboradores por causa da diferença que pode existir de horário.

Vamos analisar as formas de ajustar o horário do servidor com dois comandos "básicos", esses comandos são o date e hwclock.

O comando date é utilizado para mostrar ou ajustar a data e hora do sistema.

Para visualizar a hora:

# date

Agora, vamos usar esse comando para acertar a data do sistema:

# date mmddHHMMYYYY

Exemplo: 28 de Fevereiro de 2013, às 11:30:

# date 022811302013

Outra forma rápida para atualizar, é usar o comando dessa forma:

# date -s "02/28/2013 11:30"

Se quiser alterar apenas a hora, pode usar o mesmo comando, colocando só a hora desejada:

# date -s " 11:30"

Para mudar a data:

# date -s " 02/28/2013"

Obs.: ao mudar somente a data, é alterado o horário para 00:00.

Agora, vamos analisar o comando hwclock. Ele usa um recurso muito interessante, que é ajustar a hora do sistema utilizando o recurso RTC (Real Time Clock). Ele ajusta o horário da BIOS, esse relógio continua funcionando, mesmo quando o computador está desligado, por isso é importante sempre verificar a bateria que fica na placa mãe; quando ela está com pouca carga, é normal o horário ficar descontrolado ao desligar o computador.

Para visualizar hora da BIOS:

# hwclock

Para ajustar o horário da BIOS e atualizar o horário do sistema:

# hwclock -w
Ou:
# hwclock --systohc

Para ajustar o sistema baseado no horário da BIOS:

# hwclock -s
Ou:
# hwclock --hctosys

Agora, se o relógio da BIOS está incorreto, basta usar o seguinte comando:

# hwclock --set --data="mm/dd/yy hh:mm:ss"

Obs.: sempre verifique as configurações de timezone, ou seja, o fuso horário em que o computador está configurado. Essa configuração pode ser efetuada utilizando os comandos:

No Debian (Ubuntu, Linux Mint) e derivados.

# dpkg- reconfigure tzdata

No CentOS (Fedora, SUSE) e derivados:

# system-config-date

Configuração de servidor NTP

Um pouco da história:

O NTP (Network Time Protocol - protocolo de sincronização de horários), foi desenvolvido para possibilitar que qualquer computador ligado à internet possa ajustar a sua data e hora automaticamente, utilizando um servidor de hora preciso.

O servidor de NTP é um serviço, em que sua camada de aplicação utiliza o protocolo UDP na camada de transporte e sua porta é a 123, por isso, é importante manter essa porta liberada para conseguir comunicação e realizar a sincronização de horários.

O NTP foi criado em 1985, é um dos protocolos mais antigos e ainda utilizados na internet!

A hierarquia e organização do NTP

A hierarquia do NTP é dividida em vários níveis, o conjunto deles é denominado "strata" e cada um deles corresponde a um "stratum". A raiz desse sistema é o denominado "stratum 0" e que corresponde aos relógios nucleares espalhados pelo mundo; aos quais estão conectados os servidores de "stratum 1", ou seja, são eles que fazem o processamento da informação recebida do "stratum 0".

Conectados aos "stratum 1" há o "stratum 2" que, em geral, estão conectados a mais de um servidor de "stratum 1" e determinam de fato qual é a hora padrão com base nos dados recebidos dos "stratum 1" utilizando o algoritmo do NTP.

Os "stratum 2" respondem ao "stratum 3", que respondem ao "stratum 4" e assim por diante até atingir, no máximo, 16 níveis.

A menos que esteja montando um servidor para um servidor para ser um stratum 1, 2 ou 3, nunca devemos utilizar os servidores stratum 1 e 2 para sincronizar o nosso servidor, se for necessário, deve ser usado um servidor stratum 3.

Dessa forma, o acesso aos servidores mais baixos ficam para as máquinas que realmente precisam acessá-los. Vamos continuar com a configuração dos servidores e clientes.

Ajuste manual do horário

Vamos verificar qual é a localização geográfica no CentOS:

# cat/etc/sysconfig/clock

No Debian:

# cat/etc/timezone

Se for constatado que existe fuso horários incorretos, faça a correção com os seguintes comandos:

No Debian e derivados:

# fpkg-reconfigure tzdata

No CentOS, SUSE e derivados:

# rm -rf /etc/localtime
# cd /usr/share/zoneinfo/America
# ln Sao_Paulo /etc/localtime

Ou:

# system-config-data

Depois dos ajustes, vamos verificar a data e hora do sistema e da BIOS:

# date
# hwclock

Configurando o cliente NTP

No Debian e derivados, vamos usar o seguinte comando para instalar o cliente NTP:

# apt-get install ntpdate

No CentOS, o comando ntpdate já vem instalado com o pacote ntp.

Para realizar a sincronização das máquinas da rede que são clientes NTP, use o seguinte comando:

# ntpdate (ip_do_servidor_ntp_rede)

No Debian, caso não tenha um servidor NTP na rede, podemos simplesmente reiniciar o daemon do ntpdate:

# ntpdate - debian

Agora que já foi mostrado como ajustar a hora do sistema e da BIOS, vamos criar a estrutura de servidores e clientes de NTP. Para configurar o servidor NTP, vamos verificar se o pacote ntp está instalado.

No CentOS:

# rpm -q ntp

Se não estiver instalado, vamos usar o seguinte comando para instalar:

# yum install ntp

Vamos agora ao arquivo de configuração do NTP:

# vim /etc/ntp.conf

Vamos precisar dos endereços de servidores oficiais NTP, para isso, vamos acessar o site:
Essa página do projeto NTP tem uma lista de servidores públicos, que é mantido pelo projeto NTP.br.

No arquivo de configuração, devemos localizar a linha de configuração com a qual sincronizaremos a nossa máquina.

# Please consider joining the pool (http://www.pool.ntp.org/join.html).
server 0.centos.pool.ntp.org iburst prefer
server 1.centos.pool.ntp.org iburst
server 2.centos.pool.ntp.org iburst
server 3.centos.pool.ntp.org iburst

Nesse caso, é aconselhável utilizar mais de um servidor. No meu caso, estou utilizando 4 servidores.

Os parâmetros adicionais iburst fazem com que sejam enviados oito pacotes, ao invés de apenas um durante a sincronização inicial. E o parâmetro prefer, faz com que a resposta de um servidor preferido seja descartada se ela diferir muito das respostas dos demais servidores, caso contrário, será utilizado sem qualquer consideração para outras respostas.

Vamos adicionar a linha, especificando quais hosts poderão realizar sincronização com a nossa máquina:

restrict 127.0.0.1
restrict 10.0.0.0 mask 255.255.255.0
disable auth

A primeira restrição está liberando requisições vindas do localhost e a segunda da nossa rede. Foi desabilitada a autenticação por chaves também.

Vamos determinar se a sincronização está funcionando corretamente. Para isso, vamos alterar a hora do sistema e depois iniciar o serviço de NTP:

# date 03050511008
# /etc/init.d/ntpd stop
# /etc/init.d/ntpd start

Agora, verifique a hora do sistema e veja se funcionou:

# date

Vamos configurar o cliente no Debian e sincronizar com o servidor:

# apt-get install ntp

Adicionar a lista de servidores e comentar os demais:

# vim /etc/ntp.conf

#Na linha 15, adicione o servidor e comente os outros.

server  10.0.0.100 iburst prefer

Vamos realizar o mesmo teste:

# date 03050511008
# /etc/init.d/ntpd stop
# /etc/init.d/ntpd start
# date

Pronto!

Conclusão

Servidor NTP e clientes configurados.

Espero que esse artigo ajude a quem precise configurar e manter um servidor de data e hora.

   

Páginas do artigo
   1. Ajustes e configurações
Outros artigos deste autor

Compilação do kernel v3.x no CentOS e Debian

Antergos - Um caminho para conhecer o Arch Linux

Kernel 4.0 no Debian, Linux Mint e Ubuntu - Atualização rápida

Instalação do Deepin 14.1 - Uma distribuição fantástica

Leitura recomendada

FreeRADIUS - Noções básicas - Parte III

Visual Source Safe no Linux

Nagios - Instalando uma nova interface

Configurando o Apache para reconhecer arquivos DWG

Migrando de Red Hat para Debian

  
Comentários
[1] Comentário enviado por albfneto em 06/10/2014 - 20:11h

Bom Artigo. Favoritei e 10.

Gostaria de fazer uns complementos a seu artigo.

De acordo com Antonio Moreiras, (eu conversei aqui no VOL com ele):

http://www.vivaolinux.com.br/perfil/verPerfil.php?login=antonio.moreiras

ele é especialista nisso, trabalha com isso, é o Mantenedor dos Pools e dos Servidores da Hora Oficial Brasileira.

os da NTP.BR, os "a, b e c" , os "sti" etc...

http://www.ntp.br/NTP/MenuNTPLinuxBSD
http://support.ntp.org/bin/view/Servers/WebSearch?search=brazil&scope=all
http://support.ntp.org/bin/view/Users/AntonioMoreiras
http://support.ntp.org/bin/view/Servers/WebHome

Segundo ele, atualmente, se usam mais Pools de servidores, e ainda Stratum4 é obsoleto, Stratum3 quase não existem mais...

a maior parte dos atuais servidores ou Pools atuais são Stratum1 ou Stratum2.

Ainda, ele recomenda que se use o comando "ntpd" (mais preciso no escorregamento da frequência e auto ajustável para compensar a distância física do servidor) :

http://www.vivaolinux.com.br/artigo/Sincronizando-o-Linux-com-a-Hora-Legal-Brasileira-usando-o-NTP.b...
http://www.vivaolinux.com.br/conf/userview.php?login=antonio.moreiras
http://www.ntp.br/NTP/MenuNTPFaq#Quais_s_o_os_servidores_dispon_v
http://www.ntp.br/NTP/MenuNTPEstrutura

e não o antigo comando "ntpdate"

Tanto que eu (também uso NTP) que sempre usava ntpdate:

http://www.vivaolinux.com.br/artigo/Ajustando-a-hora-do-micro-com-extrema-precisao

agora uso "ntpd".

Meu atual arquivo ntp.conf é bem completo:

http://www.vivaolinux.com.br/etc/ntpconf-1

Como trabalho na USP e moro em Ribeirão Preto, eu sincronizo (como servidor principal) com o "ntp.usp.br", Stratum2 da USP, localização física São Paulo,

atualmente, ele é Pool também e acessa vários outros servers, peers e pools (usados auto pelo ntpd) com base no tempo de resposta:

Exemplo eis os Peers dele, no momento:

$ sudo ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
border1.uspnet. .STEP. 16 u 262 256 370 10.748 23.698 3.034
ntp.unicamp.br .STEP. 16 u - 1024 0 0.000 0.000 0.000
200.220.152.62 .STEP. 16 u - 1024 0 0.000 0.000 0.000
srv6.spbrasil.c .STEP. 16 u - 1024 0 0.000 0.000 0.000
a.ntp.br .STEP. 16 u - 1024 0 0.000 0.000 0.000
b.ntp.br .STEP. 16 u - 1024 0 0.000 0.000 0.000
c.ntp.br .STEP. 16 u - 1024 0 0.000 0.000 0.000
+a.st1.ntp.br .ONBR. 1 u 250 256 371 11.138 18.303 3.187
201.49.148.135 .STEP. 16 u - 1024 0 0.000 0.000 0.000
*c.st1.ntp.br .ONBR. 1 u 205 512 373 18.230 20.449 3.173
+d.st1.ntp.br .ONBR. 1 u 254 256 371 18.880 24.736 7.397
gps.ntp.br .STEP. 16 u - 1024 0 0.000 0.000 0.000
ntp.pucpr.br .STEP. 16 u - 1024 0 0.000 0.000 0.000
roma.coe.ufrj.b .STEP. 16 u - 1024 0 0.000 0.000 0.000
+ns2.pads.ufrj.b .GPS. 1 u 254 256 371 18.496 17.161 3.985
esta.sty.hu .STEP. 16 u - 1024 0 0.000 0.000 0.000
ntp2.rdc.puc-ri .STEP. 16 u - 1024 0 0.000 0.000 0.000
titan.cais.rnp. .STEP. 16 u - 1024 0 0.000 0.000 0.000
ntp.on.br .STEP. 16 u - 1024 0 0.000 0.000 0.000
ntp2.on.br .STEP. 16 u - 1024 0 0.000 0.000 0.000

[2] Comentário enviado por fabriciocs em 06/10/2014 - 20:22h

Olá albfneto, obrigado pela contribuição, também não abordei a parte de log, gostei dessas informações, eu ainda uso o método acima para manter os meus servidores funcionando, gostei do complemento.

[3] Comentário enviado por wagnerfs em 07/10/2014 - 21:23h

Gostei do artigo. Bem explicado com diversos comandos úteis até para quem está se preparando para o exame da LPIC 102. Parabéns.

[4] Comentário enviado por diegoBrito em 29/08/2015 - 16:02h

Bom artigo.
Só corrige lá em cima o comando:
# fpkg-reconfigure tzdata

Onde o correto é:
# dpkg-reconfigure tzdata

[5] Comentário enviado por cytron em 03/05/2016 - 09:14h

Tenho uma questão muito interessante e preciso muito que alguém possa me ajudar...

Apesar dos meus "mais de 20 anos" de Linux, ainda não sei explicar o fenômeno que ocorre sobre o ntp na minha vida. De uns tempos para cá (quando saiu a versão 14.1), simplesmente é impossível fazer o sincronismo com o serviço ntp.

Quando tento usar ntpdate:

# ntpdate -u a.ntp.br
3 May 08:25:33 ntpdate[31480]: no server suitable for synchronization found

Ok, se o servidor está off (kkkk, até parece!), então eu tento b, c, br.pool.ntp.org, da USP, UFRJ e tudo quanto existe ao redor do mundo, mas pra minha surpresa... todos estão off também kkkkkkkkkkkkk.
Sei que o ntpdate vai sumir daqui um tempo, mas mesmo tentando com o ntpd... a história é a mesma.
Já segui este artigo, conferi com do Antônio Moreiras também... e com dezenas de outros por aí a fora.

Não é meu Slack-current 64, pois já reinstalei ele mais de 10 vezes (não por causa do ntp kkkkk, foi trocando de notebook, instalando no PC, em outros notebooks da família...) ... mas sempre usando Slack 14.1 64b.... nada de ntp! Atualizo pra currente... nada de ntp!
Na versão 13 funcionava liso.
Já procurei na net sobre esse fenômeno, ninguém conhece ele, só eu... ou seja... não é fenômeno... é maldição! kkkkkkkkkk

Alguém em uma dica aí?

[6] Comentário enviado por kleytonmaia em 13/07/2016 - 14:14h

Cytron consegue pingar o endereço ? quando voce usa o traceroute ele acha o destino ?
sera que pode ter algum firewall entre barrando a porta do ntpd (UDP 123? ?
aqui funciona de boas:

#ping a.ntp.br
PING a.ntp.br (200.160.0.8) 56(84) bytes of data.
64 bytes from a.ntp.br (200.160.0.8): icmp_seq=1 ttl=54 time=5.01 ms
64 bytes from a.ntp.br (200.160.0.8): icmp_seq=2 ttl=54 time=4.54 ms

# traceroute a.ntp.br
traceroute to a.ntp.br (200.160.0.8), 30 hops max, 60 byte packets
1 webreport.moinhopaulista.local (10.100.90.123) 0.507 ms 0.510 ms 0.500 ms
2 145-228-71-201.vipway.net.br (201.71.228.145) 1.260 ms 1.252 ms 1.230 ms
3 172.16.8.33 (172.16.8.33) 4.233 ms 3.075 ms 3.643 ms
4 205-225-71-201.vipway.net.br (201.71.225.205) 5.372 ms 6.097 ms 7.097 ms
5 209-233-71-201.vipway.net.br (201.71.233.209) 4.574 ms 5.006 ms 9.381 ms
6 201-175-104-177.vipway.net.br (177.104.175.201) 8.397 ms 7.426 ms 7.694 ms
7 21-175-104-177.vipway.net.br (177.104.175.21) 8.311 ms 9.002 ms 10.511 ms
8 as22548.saopaulo.sp.ix.br (187.16.217.2) 10.514 ms 9.478 ms 8.909 ms
9 xe-5-1-0-0.core1.nu.registro.br (200.160.0.170) 7.961 ms 8.361 ms 8.163 ms
10 xe-0-0-0.gw.a.dns.br (200.160.0.246) 7.418 ms 9.883 ms 8.444 ms
11 a.ntp.br (200.160.0.8) 8.033 ms 8.836 ms 8.444 ms

#ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
a.st1.ntp.br .POOL. 16 p - 64 0 0.000 0.000 0.000


[7] Comentário enviado por cytron em 13/07/2016 - 14:33h

Esqueci de mencionar isso, mas pinga normal, sem FW e traceroute ok.
Nem esquento mais com esse ntp hehehe, só deixo ele pra lá. Não roda mesmo kkkk.
__________________________
PLANTEC Soluções Sustentáveis


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts