O NTP ( Network Time Protocol) é um protocolo para sincronização dos relógios dos servidores, com o NTP é possível manter o relógio de um computador com a hora sempre certa e com grande exatidão. O NTP opera na porta 123 em UDP e TCP.
Manter os dispositivos nas redes e na Internet com a hora certa é muito importante. Isso vale para servidores, roteadores, notebooks e desktops. Muitas aplicações dependem disso para funcionar bem. Incidentes de segurança e até crimes cibernéticos só podem ser investigados se os logs dos dispositivos envolvidos estiverem em sincronismo.
O NTP sempre trabalha na escala UTC e não é afetado pela mudança, nem interfere nos ajustes, do fuso horário ou horário de verão. O tratamento do horário local e horário de verão são funções dos Sistemas Operacionais (Windows, Linux, BSDs, Mac OS, etc).
Diferentes softwares e aplicações podem ser sensíveis a problemas relativos à sincronização do tempo de formas diversas. Como exemplos de aplicações afetadas pelo tempo pode-se citar: Sistemas de distribuição de conteúdo (www, usenet news, etc); Sistemas de arquivos (filesystems); Agendadores de eventos como o cron e o at dos sistemas unix; Criptografia; Protocolos de comunicação e aplicações de tempo real; Sistemas transacionais e bancos de dados distribuidos.
O NTP, se corretamente utilizado, é capaz de garantir as propriedades necessárias ao relógio do computador para o bom funcionamento das aplicações.
# yum search ntp
ntp.i686 : The NTP daemon and utilities
ntp-doc.noarch : NTP documentation
ntpdate.i686 : Utility to set the date and time via NTP
Vamos instalar o daemon do NTP, o ntpd, a sua documentação e o ntpdate.
# yum install -y ntp.i686 ntp-doc.noarch ntpdate.i686
Agora vamos configurar o /etc/ntp.conf. E alterar a diretiva “server”, que são os servidores de hora que o protocolo irá utilizar para fazer o sincronismo. Nesse artigo vou utilizar os servidores ntp do projeto http://ntp.br/
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
server a.st1.ntp.br
server b.st1.ntp.br
server c.st1.ntp.br
server d.st1.ntp.br
server a.ntp.br
server b.ntp.br
server c.ntp.br
server gos.ntp.br
Se esse for o servidor NTP da rede é interessante descomentar essa linha:
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
Essa linha permite que somente os clientes da rede, no meu exemplo a rede interna (192.168.1.0), tenham acesso a esse servidor, e a opção nomodify notrap não permite que os clientes façam alterações no serviço.
# service ntpd start
Caso apareça alguma mensagem de erro “the NTP socket is in use, exiting”, pare o daemon ntpd e execute o comando ntpdate.
# service ntpd stop && ntpdate -b -v a.st1.ntp.br
# service ntpd start
E colocar o serviço para bootar com o sistema:
# chkconfig ntpd on
# chkconfig ntpdate on
No arquivo /etc/sysconfig/ntpdate setamos a hora ntp para o hardware do servidor:
SYNC_HWCLOCK=yes
Agora estamos com a hora do servidor atualizada, podemos ajustar a hora do sistema com a do hardware (BIOS) de uma outra maneira também com o comando:
# hwclock -w
# hwclock –systohc
Não podemos esquecer de liberar o serviço no firewall:
# iptables -A INPUT -p udp –sport 123 -j ACCEPT
# iptables -A OUTPUT -p udp –dport 123 -j ACCEPT
# service iptables save
Sempre configure o serviço NTP antes de subir o serviço de DNS-Bind, os servidores DNS funcionam em sincronia com o horário dos servidores NTP, se o Bind for configurado e o sistema estiver com a hora errada com o dos servidores NTP o Bind apresentará erro e não funcionará.
Referências:
http://ntp.br/http://pt.wikipedia.org/wiki/Network_Time_Protocol