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