OpenNTPD

O OpenNTPD é um daemon Unix que implementa o protocolo de sincronização de relógios de servidores NTP. Funciona tanto como cliente quanto como servidor, nas plataformas em que é suportado e integrado com clientes NTP compatíveis.

OpenNTPD
Desenvolvedor Projeto OpenBSD
Lançamento 2 de novembro de 2004 (18 anos)
Versão estável 6.2p3 (30 de outubro de 2017)
Escrito em C
Sistema operacional BSD, Linux, Solaris e OS X[1]
Gênero(s) Sincronização de data e hora
Licença ISC
Estado do desenvolvimento Ativo
Página oficial www.openntpd.org

É desenvolvido primariamente pelo programador Henning Brauer como parte do projeto OpenBSD. Seus objetivos são ser seguro(não-exploitável) de fácil configuração, e preciso o suficiente para a maioria dos usos. Sua versão portátil(portable) como o OpenSSH[2], e é desenvolvido como um projeto a parte(mas subordinado) do OpenBSD, podendo manter a portabilidade de código e versões distintas do mesmo. A versão portátil é desenvolvida por Brent Cook[3]. Os desenvolvedores do projeto recebem ajudas de custo da OpenBSD Foundation.

História

O desenvolvimento do OpenNTPD foi motivado por uma combinação de problemas existentes das implementações atuais de daemons NTP: configuração difícil, alta complexidade para auditar códigos fonte, e licenciamento inadequado[4]. O OpenNTPD foi projetado para resolver estes problemas e tornar a sincronização mais acessível para uma maior base de usuários. Após o período de desenvolvimento, o OpenNTPD apareceu na versão 3.6 do OpenBSD[5]. A primeira versão foi anunciada em 02 de Novembro de 2004[6].

Objetivos

O OpenNTP é uma tentativa do projeto OpenBSD de produzir um serviço de NTP que é seguro, simples de auditar, trivial de configurar e administrar, razoavelmente preciso e leve na utilização de recursos do sistema. Assim, estes são os objetivos do OpenNTP: seguro, fácil de usar e performático[7]. A segurança no OpenNTPD é alcançada através de robustas validações nas entradas de rede, a utilização de operações buffer bounded através do strlcpy, a separação de privilégios para mitigar possíveis efeitos oriundos da exploração de bugs de segurança no daemon relacionados ao escalonamento de privilégios. Para simplificar o uso do NTP, o OpenNTPD implementa um grupo reduzido de funcionalidades se comparado com outros daemons NTP existentes, se comparado com o Projeto Network Time Protocol por exemplo. O objetivo é prover funcionalidades suficientes para satisfazer o uso regular da ferramenta, sem a necessidade de implementar funções "exóticas", utilizadas apenas por um nicho específico de usuários do protocolo NTP. O OpenNTPD é configurado através do arquivo de configuração ntp.conf. Um número mínimo de opções está disponível: Endereço IP ou nome ao qual o OpenNTP deve escutar, sensor timedelta a ser utilizado, e grupo de servidores a ser utilizado como fonte de sincronização. A precisão do OpenNTP é baseada no melhor esforço; o daemon tenta ser o mais preciso possível mas um grau específico de precisão não é garantido pelo serviço.

Exemplo

O OpenNTPD ajusta gradualmente o relógio do sistema, como pode ser visto nesta saída de tela do OpenNTPD rodando em um sistema Linux:

$ grep ntpd /var/log/daemon.log | grep adjusting
Aug  4 03:32:20 nikolai ntpd[4784]: adjusting local clock by -1.162333s
Aug  4 03:36:08 nikolai ntpd[4784]: adjusting local clock by -1.023899s
Aug  4 03:40:02 nikolai ntpd[4784]: adjusting local clock by -0.902637s
Aug  4 03:43:43 nikolai ntpd[4784]: adjusting local clock by -0.789431s
Aug  4 03:47:35 nikolai ntpd[4784]: adjusting local clock by -0.679320s
Aug  4 03:50:45 nikolai ntpd[4784]: adjusting local clock by -0.605858s
Aug  4 03:53:31 nikolai ntpd[4784]: adjusting local clock by -0.529821s

Criticismo

O OpenNTPD foi criticado por ser menos preciso que o daemon NTP produzido pelo Internet Software Consortium (ISC). [8] Internamente, o OpenNTPD não mantem a mesma precisão que varia entre 50-200ms do tempo "real", por omitir alguns algoritmos que aumentam a precisão para manter a simplicidade em seu código-gonte. O projeto OpenNTPD acatou a crítica, mas avisou que a falta de uma precisão em milissegundos fazia parte do escopo do projeto, visto que era uma troca entre sacrificar a precisão em busca da simplicidade e segurança da ferramenta[8].

Um dos objetivos projetados para o OpenNTPD é "atender a uma precisão razoável" sem sacrificar "a segurança do projeto e deixar a precisão de nanosegundo se tornar um caso obscuro a se tratar"[9]

Referências

  1. «OpenNTPD Portátil lançado(em inglês)». OpenBSD. Consultado em 3 de abril de 2016
  2. «openssh/openssh-portable». GitHub. Consultado em 13 de maio de 2016
  3. «openntpd/openntpd-portable». GitHub. Consultado em 13 de maio de 2016
  4. «Objetivos do OpenNTPD(em inglês)». Projeto OpenNTPD. Consultado em 3 de maio de 2016
  5. «OpenBSD 3.6(em inglês)». Projeto OpenBSD. 1 de janeiro de 2004. Consultado em 3 de maio de 2016
  6. «Lançado OpenNTPD 3.6(em inglês)». Henning Brauer. 2 de janeiro de 2004. Consultado em 3 de maio de 2016
  7. «OpenNTPD - Objetivos do Projeto(em inglês)». Henning Brauer. 16 de setembro de 2006. Consultado em 1 de setembro de 2004
  8. «FAQ 6.12.1: 'Mas o OpenNTP não é tão preciso quando o daemon do ntp.org(em inglês)'». The OpenBSD Project. 21 de agosto de 2006. Consultado em 16 de outubro de 2006
  9. «OpenNTPD». OpenNTPD.

Ligações Externas


This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.