Guias avançados: Guia Linux/BSD
Instalação para GNU/Linux e outros sistemas baseados em Unix (Assista aos vídeos)
Instalação do NTP à partir dos fontes (Assista aos vídeos)
Alternativas ao NTP padrão
Ferramentas de Monitoramento (Assista ao vídeo)
Instalação para GNU/Linux e outros sistemas baseados em Unix.
Atenção: Este tutorial foi realizado em um sistema Ubuntu 14.04 e outras distribuições podem ter processo de configuração diferente.
Para GNU/Linux, FreeBSD, OpenBSD e outros sistemas baseados em Unix, utilize o método de instalação apropriado para sua distribuição. Para alguns sistemas operacionais, a tabela abaixo indica possíveis formas de instalação. Podem haver métodos alternativos para a instalação, por isso é recomendável consultar a documentação da sua distribuição.
1. Pode-se também realizar a instalação manual, baseada nos fontes. Se você estiver instalando o ntp com a finalidade de ser um servidor de tempo para sua rede, é recomendável fazer a instalação à partir dos fontes, porém a mesma deve ser atualizada manualmente sempre que uma nova versão for liberada pelos responsáveis pela aplicação. Sendo um super usuário, utilize o comando referente ao seu sistema operacional.
Debian GNU/Linux e sistemas que usam apt (Ubuntu, Kurumin, Conectiva, etc) # apt-get update
RedHat GNU/Linux e sistemas que usam rpm (Fedora, etc): # yum install ntp
Gentoo GNU/Linux: # emerge sync
Slackware GNU/Linux: # slackpkg update
# slackpkg install ntp
FreeBSD e OpenBSD # cd /usr/ports/net/ntp
2. Após instalar o ntp, crie o arquivo ntp.drift com o comando:
sudo touch /etc/ntp.drift
3. Se a hora de seu computador estiver com um erro maior do que 16 segundos, o ntp pode não funcionar. Caso isso aconteça, ajuste a hora manualmente, antes de iniciar o ntpd ou então realize os seguintes ajustes, para depois iniciar o serviço:
4. Substitua o conteúdo do arquivo de configuração padrão /etc/ntp.conf pela configuração abaixo.
# estatisticas do ntp que permitem verificar o histórico
# desabilitar comando monlist
É importante ressaltar que a linha disable monitor não deve ser comentada. Ela desabilita o comando monlist, que pode ser explorado para gerar ataques amplificados de negação de serviço.
5. Após modificar a configuração é preciso reiniciar o ntpd com o comando:
Pronto! Seu NTP já está funcionando e atualizando seu relógio de acordo com a Hora Legal Brasileira.
O mini tutorial em forma de video a seguir, demonstra como configurar seu NTPD através do repositório do Ubuntu:
Assista a um mini tutorial em vídeo feito em um sistema operacional Linux, mostrando como instalar o NTPD através do repositório do Ubuntu, fazendo-o funcionar como um cliente:
Instalação do NTP à partir dos fontes
A instalação à partir dos fontes permite trabalhar com a última versão do ntp. Permite também ter certeza de que se está rodando o software padrão, sem modificações de terceiros. Verifique no site do NTP https://www.ntp.org/downloads.html qual o link para o download da versão mais recente. No desenvolvimento desse tutorial, a versão mais recente era a 4.2.8p2. Tenha em mente que ele deve ser atualizado manualmente sempre que uma nova versão for liberada.
1. Faça o download do arquivo, descompacte-o, entre na pasta criada e então rode o script de configuração, compile e instale:
wget https://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-4.2/ntp-4.2.8p2.tar.gz
tar zxvf ntp-4.2.8p2.tar.gz
2. Será necessário parar o serviço, o que pode ser feito com o comando:
3. Agora será necessário criar o arquivo ntp.conf no diretório etc:
4. Logo após, edite o arquivo ntp.conf sendo um super usuário, utilizando o editor de texto de sua preferência, como o nano ou o vi, e adicione a configuração abaixo:
5. A hora do seu computador pode ser ajustada inicialmente com o comando a seguir, o qual permitirá o ajuste do relógio, mesmo que ele esteja com um atraso de tempo muito alto (maior que 16 segundos):
sudo /usr/local/bin/ntpd -q -g
6. O daemon ntp poderá então ser executado com o seguinte comando:
7. Arquivos de inicialização apropriados podem ser criados conforme o padrão de sua distribuição.
Assista a um mini tutorial em video demonstrando como instalá-lo através de seus arquivos fontes, fazendo-o funcionar como um servidor:
Neste outro tutorial, demonstramos como configurar o NTPD através de seus arquivos fontes para que ele funcione como um cliente:
Alternativas ao NTP
O Chrony é uma implementação do protocolo NTP, que pode trabalhar como cliente ou servidor, atualizando o mesmo estando com problemas de rede (caso consiga fazer algumas conexões periódicas). Ele está disponível para distribuições Linux, FreeBSD, NetBSD e Solaris.
1. O Chrony pode ser instalado tanto pelos seus arquivos fontes quanto pelo repositório de sua distribuição do Linux, porém, atualmente os fontes disponibilizados pelos responsáveis não estão funcionando em algumas distribuições, como o Ubuntu. Recomendamos então instalá-lo através do repositório do Ubuntu, utilizando o seguinte comando:
2. Pare o serviço Chrony com o comando:
sudo service chrony stop
3. Após sua instalação, o arquivo chrony.conf deve ser alterado, onde devem ser adicionados os servidores do NTP.br e algumas outras configurações:
#lista dos servidores públicos do ntp.br.
#arquivo que contém a senha para o chronyc.
#comando que define como o script irá obter a senha.
#arquivo usado para mostrar o quanto seu relógio atrasa diariamente
#devido a flutuação da frequência do relógio, fazendo com que
#o cristal de quartzo da placa mãe oscile (medido em ppm - partes por milhão).
#altera o clock da máquina.
#apaga as medições quando o daemon é interrompido.
#especifica em qual diretório deve apagar as medições.
#esse comando diz ao chrony para regular o relógio em tempo real e
#onde armazenar os dados relacionados a essa operação.
rtcfile /var/lib/chrony/chrony.rtc
Após tais configurações, o chrony já poderá ser iniciado, fazendo com que o relógio seja corrigido continuamente, de modo que o tempo do relógio corra mais rápido.
4. Para inicializa-lo, utilize o seguinte comando:
5. Para monitorar a correção do tempo, o comando a seguir pode ser utilizado:
6. As seguintes linhas de dados serão exibidas:
Reference ID   : 68.47.202.140 (servidor.ntp.br)
Stratum             : 2
Ref time (UTC)  : Tue May 12 22:08:45 2015
System time     : 1.764886260 seconds slow of NTP time
Frequency       : 26.186 ppm fast
Residual freq   : -1.765 ppm
Skew            : 2.196 ppm
Root delay      : 0.000821 seconds
Root dispersion : 0.001235 seconds
O Ntimed é um projeto em fase de desenvolvimento, criado para substituir a implementação padrão do NTP no linux.
Caso queira testá-lo, ele deve ser baixado clicando aqui.
Sua execução é simples, porém ele não pode ser executado em background, fazendo com que ele não seja uma alternativa viável no momento.
Significa que o serviço ntp não está funcionando. Uma reposta normal se parece com essa:
Pode-se ver os 3 servidores do projeto ntp.br:
O * em c.ntp.br significa que ele foi escolhido como system peer, ou seja, a principal referência na sincronização do sistema. Os + em a.ntp.br e b.ntp.br, significa que eles também estão sendo usados, mas com peso menor, para obter a hora certa.
Pode-se observar também o offset, ou deslocamento, delay, ou atraso, e o jitter, ou variação, todos em milisegundos:
O atraso significa o tempo de ida e volta dos pacotes. O valor do atraso não é tão importante, mas o ntp é sensível à simetria da rede. Ou seja, o ntp espera que o tempo de ida dos pacotes seja igual ao da volta. Isso geralmente está relacionado a atrasos pequenos.
O deslocamento significa o quanto o relógio local tem de ser adiantado ou atrasado para se igualar ao relógio do servidor. Quanto menor o valor, melhor. Valores de alguns milisegundos podem ser considerados normais.
A variação é calculada à partir de diversas medidas de deslocamento. Representa o quanto essas medidas variam entre si. Valores pequenos são melhores. Valores grandes podem indicar problemas de conectividade.
A variável reach é um número octal que indica o resultado das últimas 8 tentativas de acesso ao servidor.
O valor 377 indica que as últimas 8 consultas ao servidor obtiveram sucesso. Outros valores indicam falhas.
associd=0 status=c011 leap_alarm, sync_unspec, 1 event, freq_not_set,
processor="x86_64", system="Linux/3.13.0-36-generic"
reftime=cb30d5b2.559c02d8  Tue, Jun 23 2015 15:34:42.334, poll=7,
clock=cb30d6d8.ee2e88ee  Tue, Jun 23 2015 15:39:36.930, state=4,
Dentre as várias informações obtidas, pode-se destacar a versão do ntp, em verde; o estrato, em vermelho (3 é o nível esperado, já que os servidores públicos do ntp.br são estrato 2); e o deslocamento, em milisegundos, em azul, que indica quanto o relógio local tem de ser adiantado ou atrasado para chegar à hora certa.
O video tutorial a seguir demonstra como monitorar o NTP da sua máquina através de ferramentas de monitoramento: