NTP – CentOS 6.5

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