Articulo de referencia

OpenNTPD

{{Cite web|url=http://www.openntpd.org/|access-date=9 December 2020|title=OpenNTPD}} "},"latest preview version":{"wt":""},"latest preview date":{"wt":""},"programming language"...

OpenNTPD (también conocido como OpenBSD NTP Daemon ) es un demonio de Unix que implementa el Protocolo de Tiempo de Red (NTP) para sincronizar el reloj local de un sistema informático con servidores NTP remotos. También puede funcionar como servidor NTP para clientes compatibles con NTP.

El demonio NTP de OpenBSD fue desarrollado inicialmente por Alexander Guy y Henning Brauer como parte del proyecto OpenBSD , con la colaboración de muchos otros autores. Sus objetivos de diseño incluyen ser seguro ( no vulnerable a ataques ), fácil de configurar y suficientemente preciso para la mayoría de los propósitos. Su versión portátil , al igual que la de OpenSSH , [ 3 ] se desarrolla como un proyecto hijo que añade el código de portabilidad a la versión de OpenBSD y la publica por separado. La versión portátil es desarrollada por Brent Cook. [ 4 ] Los desarrolladores del proyecto reciben financiación de la Fundación OpenBSD .

Historia

El desarrollo de OpenNTPD fue motivado por una combinación de problemas con los demonios NTP actuales: configuración difícil, código complicado y difícil de auditar, y licencia inadecuada. [ 5 ] OpenNTPD fue diseñado para resolver estos problemas y hacer que la sincronización horaria fuera accesible a una base de usuarios más amplia. Después de un período de desarrollo, OpenNTPD apareció por primera vez en OpenBSD 3.6. [ 6 ] Su primera versión se anunció el 2 de noviembre de 2004. [ 7 ]

Objetivos

OpenNTPD es un intento del equipo de OpenBSD de producir una implementación de demonio NTP que sea segura, fácil de auditar , trivial de configurar y administrar, razonablemente precisa y ligera en recursos del sistema. Por lo tanto, los objetivos de diseño para OpenNTPD son: seguridad, facilidad de uso y rendimiento. [ 8 ] La seguridad en OpenNTPD se logra mediante una comprobación de validez robusta en la ruta de entrada de red, el uso de operaciones de búfer limitado a través de strlcpy y la separación de privilegios para mitigar los efectos de posibles fallos de seguridad que explotan el demonio a través de la escalada de privilegios . Para simplificar el uso de NTP, OpenNTPD implementa un conjunto más pequeño de funcionalidades que las disponibles en otros demonios NTP, como el proporcionado por el Network Time Protocol Project. El objetivo es proporcionar suficientes características para satisfacer el uso típico a riesgo de no ser adecuado para requisitos esotéricos o de nicho. OpenNTPD se configura a través del archivo de configuración, ntpd.conf . [ 9 ] Se ofrecen un número mínimo de opciones: dirección IP o nombre de host en el que OpenNTPD debe escuchar, un dispositivo sensor de diferencia horaria que se utilizará y el conjunto de servidores desde los que se sincronizará la hora. La precisión de OpenNTPD es de mejor esfuerzo; el demonio intenta ser lo más preciso posible, pero no se garantiza una precisión específica.

Ejemplo

OpenNTPD ajusta gradualmente el reloj del sistema, como se puede ver aquí en la salida de OpenNTPD ejecutándose en un sistema Linux :

$ grep ntpd /var/log/daemon.log | grep adjusting 4 de agosto 03:32:20 nikolai ntpd[4784]: ajustando el reloj local en -1.162333s 4 de agosto 03:36:08 nikolai ntpd[4784]: ajustando el reloj local en -1.023899s 4 de agosto 03:40:02 nikolai ntpd[4784]: ajustando el reloj local en -0,902637 s 4 de agosto 03:43:43 nikolai ntpd[4784]: ajustando el reloj local en -0,789431 s 4 de agosto 03:47:35 nikolai ntpd[4784]: ajustando el reloj local en -0,679320 s 4 de agosto 03:50:45 nikolai ntpd[4784]: ajustando el reloj local en -0,605858 s 4 de agosto 03:53:31 nikolai ntpd[4784]: ajustando el reloj local en -0,529821 s 

Crítica

OpenNTPD ha sido criticado por ser menos preciso que el demonio NTP producido por el Proyecto NTP (ntp.org). [ 10 ] Internamente, OpenNTPD no mantiene una precisión de milisegundos y puede variar entre 50 y 200 ms con respecto al tiempo "real" porque omite varios algoritmos que aumentan la precisión en favor de la simplicidad del código. El proyecto OpenNTPD reconoció la crítica, pero afirmó que la falta de precisión de microsegundos era una compensación de diseño que beneficiaba la simplicidad y la seguridad. [ 10 ] Los objetivos de diseño de OpenNTPD establecen que la intención del proyecto es "[l]ar una precisión razonable" sin sacrificar "un diseño seguro para obtener ese último nanosegundo o un caso límite oscuro". [ 11 ]

En septiembre de 2004, poco después del lanzamiento de OpenNTPD 3.6, Brad Knowles, colaborador de ntp.org, publicó un artículo titulado OpenNTPD considerado perjudicial [ 12 ] en el que criticaba varios aspectos de la implementación del protocolo NTP por parte de OpenNTPD, así como el modelo de desarrollo dividido que emplea el proyecto, el cual también se utiliza en el desarrollo de OpenSSH y OpenBGPD . En diciembre de 2004, Darren Tucker, desarrollador principal de la rama portátil de OpenNTPD, escribió una respuesta detallada a Knowles, reconociendo la validez de algunos problemas, rechazando otros por considerarlos injustificados y considerando otros más como engañosos. [ 13 ] Entre los problemas más serios planteados por Knowles se encontraba el hecho de que los servidores de OpenNTPD afirmaban ser servidores de estrato 1. Sin embargo, este problema ya se había solucionado para cuando Tucker respondió. En marzo de 2005, Knowles reconoció la respuesta de Tucker y declaró que haría todo lo posible para colaborar con él y resolver cualquier problema pendiente. [ 14 ] Además, las preguntas frecuentes sobre redes de OpenBSD se ampliaron con una respuesta a la crítica inicial de Knowles. [ 15 ]

La afirmación actual sobre la precisión de OpenNTPD es, según la presentación 21C3 de 2004, "típicamente 50  ms". [ 16 ]

Segundos intercalares

OpenNTPD (y el núcleo de OpenBSD ) ignoran los segundos intercalares . [ 17 ] Se debe tener cuidado al usar OpenNTPD como fuente de nivel superior para otros servidores ntpd, o con requisitos de tiempo de alta resolución que hagan referencia al Tiempo Universal Coordinado . Los segundos intercalares se usan en el Tiempo Universal Coordinado, pero no en el Tiempo Atómico Internacional ni en las señales de tiempo del Sistema de Posicionamiento Global . La precisión de 50 ms tampoco es típica de una fuente de nivel superior.

El Observatorio Naval de los Estados Unidos y la Oficina Internacional de Pesas y Medidas recomiendan que los sistemas que no implementan segundos intercalares se referencien al Tiempo Atómico Internacional o directamente a las señales horarias GPS. [ 18 ] Sin embargo, ninguna versión actual de NTP ( a partir de 2023) admite escalas de tiempo distintas a la UTC.

Referencias

  1. "OpenNTPD" . Consultado el 9 de diciembre de 2020 .
  2. "Versión portátil de OpenNTPD" . OpenBSD . Consultado el 3 de abril de 2016 .
  3. "openssh/openssh-portable" . GitHub . Consultado el 13 de mayo de 2016 .
  4. "openntpd-portable/openntpd-portable" . GitHub . Consultado el 13 de mayo de 2016 .
  5. El proyecto OpenNTPD. "Objetivos de OpenNTPD" . El proyecto OpenNTPD . Consultado el 3 de abril de 2016 .
  6. El proyecto OpenBSD (1 de noviembre de 2004). "OpenBSD 3.6" . El proyecto OpenBSD . Consultado el 3 de abril de 2016 .
  7. Brauer, Henning (2 de noviembre de 2004). "OpenNTPD 3.6 lanzado" . openbsd-announce (Lista de correo). MARC . Recuperado el 7 de junio de 2014 .
  8. Brauer, Henning (septiembre de 2004). "Página 3: OpenNTPD – Objetivos de diseño" . El proyecto OpenBSD . Recuperado el 16 de septiembre de 2006 .
  9. Manual de formatos de archivo de OpenBSD . 26 de mayo de 2006. Consultado el 16 de septiembre de 2006.ntpd.conf(5)  
  10. 1 2 El proyecto OpenBSD (21 de agosto de 2006). "Pregunta frecuente 6.12.1: '¡Pero OpenNTPD no es tan preciso como el demonio ntp.org!'"" . El proyecto OpenBSD . Archivado del original el 5 de febrero de 2016 . Recuperado el 14 de mayo de 2020 .
  11. Autores de OpenNTPD (2004), "Objetivos" , OpenNTPD , proyecto OpenNTPD.
  12. Knowles, Brad (22 de septiembre de 2004). "OpenNTPd considerado perjudicial" . Considerado perjudicial . Archivado del original el 4 de marzo de 2005. Recuperado el 16 de septiembre de 2006 .
  13. ^ Tucker, Darren (12 de diciembre de 2004). "Respuesta a OpenNTPd considerada dañina" . Advogato: Blog para dtucker . Consultado el 16 de septiembre de 2006 .
  14. Knowles, Brad (12 de marzo de 2005). "Actualización: OpenNTPd..." Considerado dañino . Archivado del original el 25 de mayo de 2006. Recuperado el 16 de septiembre de 2006 .
  15. El proyecto OpenBSD (21 de agosto de 2006). "Preguntas frecuentes: 6.12.2: '¡Alguien ha afirmado que OpenNTPD es 'perjudicial'!'"" . El proyecto OpenBSD . Archivado del original el 24 de septiembre de 2006 . Recuperado el 16 de septiembre de 2006 .
  16. Brauer, Henning. "OpenBGPD y OpenNTPD" . quigon.bsws.de .
  17. "Manejo de segundos intercalares al estilo OpenBSD" . OpenBSD Journal . 28 de junio de 2015. Consultado el 9 de octubre de 2018 .
  18. "Segundos intercalares" . Observatorio Naval de los Estados Unidos . Archivado del original el 24 de diciembre de 2017. Consultado el 27 de febrero de 2019 .
  • ntpd(8) Manual del administrador del sistema OpenBSD 
  • Un artículo que explica OpenNTPD de Henning Brauer
  • Preguntas frecuentes sobre OpenBSD: Uso de OpenNTPD