Unicard-ic/OpenNTPD
Basisdaten

Entwickler Das OpenBSD Projekt
Betriebssystem Multiplatform
Kategorie Network Time
Lizenz BSD-Lizenz, ISC-Lizenz
deutschsprachig nein
www.openntpd.org

OpenNTPD ist ein Unix-Systemdienst, der mit Hilfe des Network Time Protocol (NTP) die Uhr eines Computersysteme mit einer zuverlässigen und genauen entfernten Zeitquelle bzw. Zeitserver synchronisiert.

OpenNTPD wird als Teil des OpenBSD-Projektes von Henning Brauer[1] entwickelt. Die Designziele beinhalten, dass es sicher vor einem Exploit[2][3], einfach zu konfigurieren[4] und präzise genug für die meisten Zwecke ist, und mit Quelltext, der unter der BSD-Lizenz steht, weitergegeben werden kann.

Die portable Version für andere Betriebssysteme[5] wird, wie bei OpenSSH, als Unterprojekt gepflegt, der Quelltext mit den notwendigen Änderungen ergänzt und separat veröffentlicht. Die portable Version wird von Brent Cook gepflegt.

Geschichte Bearbeiten

Die Entwicklung von OpenNTPD wurde durch eine Kombination von Problemen mit anderen NTP Diensten beeinflusst: schwierige Konfiguration, kompliziert, ungenügende Lizenzierung und schwer auditierbarer Quelltext[6]. OpenNTPD wurde entwickelt um diese Probleme zu lösen und Zeitsynchronisation für alle Benutzer verfügbar zu machen. Nach einiger Entwicklungszeit erschien OpenNTPD erstmals in OpenBSD 3.6.[7] Die erste Version wurde am 2. November 2004 veröffentlicht.[8]

Nach den im Jahr 2015 aufgedeckten Sicherheitslücken im NTP Protokoll, wurden als zusätzliche Absicherung "Constraints" in OpenNTPD implementiert.[9] Mit Hilfe des HTTPS Protokolls werden Zeitangaben auf Plausibilität überprüft, bzw. der SSL-Host verifiziert.[10]

Da in den vorhandenen Implementierungen eine Manipulation der Zeitstempel möglich wäre implementierten, die Entwickler als Lösung eine Kombination in der die Zeitstempel in HTTPs und ntp abgeglichen werden.[11]

Den vollen Umfang der Funktionalität wird durch die Nutzung von OpenBSD als Betriebssystem ermöglicht, sollte ein Linux als Plattform genutzt werden ist ein höherer Konfigurationsaufwand notwendig.[12]

Softwaredesign Ziele Bearbeiten

Die Ziele des Softwaredesigns von OpenNTPD lauten Sicherheit, einfache Handhabung und Leistung.[13] Die Ziele ergaben sich daraus, dass die vorhandene Software xntpd unter einer "fragwürdigen" Lizenz läuft, ein sehr großes Softwarepaket, komplex in der Konfiguration ist und mit den root-Rechten ausgeführt wird.[14]

Ein sehr gutes Beispiel für eine NTP-basierte DDoS der ursprüngliche ntpd-Software von ntp.org, enthielt bis zur Version 4.2.7p26 einen Software Fehler, in welcher der den Befehl monlist (MON_GETLIST) missbrauchen konnte.[15][16] OpenNTPD enthält diese Funktion nicht und war deshalb sicher.[17]

Einschränkungen Bearbeiten

  • keine Genauigkeit im Mikrosekundenbereich
  • nur Unicast Kommunikation
  • Unterstützt keine NTP Authentifizierung
  • Unterstützt nicht alle Referenz Uhren (DCF77- Funkuhren am Computer selbst)[18]

Plattformen Bearbeiten

OpenNTPD wird zur Zeit für folgende Plattformen angeboten:

folgende Systemaufrufe sind Voraussetzungen auf der jeweiligen Plattform:

  • adjtime und settimeofday Systemaufrufe oder ähnliche
  • adjfreq oder ähnlich mit gleicher Funktionalität
  • daemon, setresgid, setresuid oder ähnlich
  • arc4random oder getentropy

Die Original Version ist Teil des OpenBSD Betriebssystem. Auf github wird die Protable Version angeboten, diese lässt sich unter anderen Betriebssystemen anpassen und kompilieren.[22]

Unterstützte Hardware Uhren Bearbeiten

  • GPS Chips in USB Mäusen
  • PCI z.B. von Meinberg [23]
  • Seriell wenn ein Treiber vorhanden ist

Beispiel unter OpenBSD Bearbeiten

Konfigurationsdatei:[24]

# $OpenBSD: ntpd.conf,v 1.3 2015/05/18 11:10:03 dtucker Exp $
# sample ntpd configuration file, see ntpd.conf(5)

# Addresses to listen on (ntpd does not listen by default)
#listen on *

# sync to a single server
#server ntp.example.org

# use a random selection of NTP Pool Time Servers
# see http://support.ntp.org/bin/view/Servers/NTPPoolServers
servers pool.ntp.org

# use a specific local timedelta sensor (radio clock, etc)
#sensor nmea0

# use all detected timedelta sensors
#sensor *

# get the time constraint from a well-known HTTPS site
#constraints from "https://www.google.com/"


Statusabfrage:

# ntpctl -s all
3/3 peers valid, constraint offset -1s, clock synced, stratum 3

peer
   wt tl st  next  poll          offset       delay      jitter
108.61.73.243 1.time.constant.com
    1 10  2  703s 1537s        -1.337ms    85.136ms     1.136ms
108.61.73.244 2.time.constant.com
    1 10  2 1394s 1509s         2.272ms    85.766ms     0.164ms
108.61.56.35 3.time.constant.com
 *  1 10  2 1085s 1598s         0.033ms    87.584ms     0.115ms

Ausgabe in /var/log/daemon:

ntpd[12626]: ntp engine ready
ntpd[12626]: constraint reply from 2a00:1450:4001:80b::2004: offset 0.381403
ntpd[12626]: constraint reply from 172.217.18.164: offset 0.340371
ntpd[12626]: cancel settime because offset is negative or close enough
ntpd[12626]: peer 108.61.73.243 now valid
ntpd[12626]: peer 108.61.56.35 now valid
ntpd[12626]: peer 108.61.73.244 now valid

Weblinks Bearbeiten

Bücher Bearbeiten

  • OpenNTPD [25]
  • Absolute OpenBSD, 2nd Edition: UNIX for the Practical Paranoid von Michael W. Lucas[26]
  • Büchersuche von Google[1]

Einzelnachweise Bearbeiten

  1. Theo de Raadt: OpenBSD dev - tech. In: openbsd-archive.7691.n7.nabble.com. 22. Dezember 2004, abgerufen am 8. Januar 2016.
  2. Steven J. Vaughan-Nichols: ​Serious NTP security holes have appeared and are being exploited | ZDNet. In: ZDNet. Abgerufen am 27. Juli 2016.
  3. Four Flaws Expose Critical Network Time-Keeping Servers to Attack. Abgerufen am 27. Juli 2016.
  4. Open NTPD zur Zeitsynchronisation nutzen. 19. Juni 2008, abgerufen am 27. Juli 2016 (deutsch).
  5. Portable OpenNTPD. In: openntpd.com.
  6. The OpenNTPD Project: OpenNTPD Goals. In: The OpenNTPD Project. 22. Dezember 2004, abgerufen am 4. November 2015.
  7. The OpenBSD Project: OpenBSD 3.6. In: The OpenBSD Project. 1. November 2004, abgerufen am 4. November 2015.
  8. Henning Brauer: OpenNTPD 3.6 released. In: MARC. 2. November 2004, abgerufen am 4. November 2015.
  9. Sichere Uhrzeit mit NTP und HTTPS. In: golem.de.
  10. heise online: OpenBSD 6.0: Das letzte Mal auf CD. Abgerufen am 3. Dezember 2019.
  11. Network Time Security: Sichere Uhrzeit übers Netz - Golem.de. Abgerufen am 1. Dezember 2019 (deutsch).
  12. Tobias Eggendorfer: Open SMTPD macht die Mailserver-Konfiguration leicht - Seite 6 von 7. In: Linux-Magazin. Abgerufen am 4. Dezember 2019 (deutsch).
  13. Henning Brauer: OpenNTPD Design Goals. In: The OpenBSD Project. September 2004, abgerufen am 17. Dezember 2015.
  14. Henning Brauer: OpenNTPD Why? In: The OpenBSD Project. September 2004, abgerufen am 17. Dezember 2015.
  15. Understanding and mitigating NTP-based DDoS attacks. 9. Januar 2014, abgerufen am 27. Dezember 2019 (englisch).
  16. What is NTP Amplification | DDoS Attack Glossary | Imperva. In: Learning Center. Abgerufen am 27. Dezember 2019 (amerikanisches Englisch).
  17. 8 Arten von DDoS-Angriffen. 9. September 2019, abgerufen am 27. Dezember 2019 (koreanisch).
  18. ntp.org: OpenNTPD < Support < NTP. In: Network Time Protocol. Februar 2008, abgerufen am 17. Dezember 2015.
  19. Vincent Danen: Use OpenNTPD for time synchronization. In: techrepublic. 7. Januar 2008, abgerufen am 24. Juli 2016.
  20. OpenNTPD - ArchWiki. Abgerufen am 1. Dezember 2019.
  21. Enabling OpenNTPD [Book]. (safaribooksonline.com [abgerufen am 28. Juli 2016]).
  22. OpenBSD Projekt: Portable OpenNTPD. In: The OpenNTPD Project. Abgerufen am 17. Dezember 2015.
  23. Marc Balmer: Portable OpenNTPD. In: The OpenNTPD Project. 14. September 2007, abgerufen am 4. Januar 2016.
  24. Charly Kühnast: Aus dem Alltag eines Sysadmin: OpenNTPD » Linux-Magazin. In: Linux-Magazin. Abgerufen am 27. Juli 2016.
  25. Ronald Cohn, Jesse Russel: OpenNTPD. VSD, 1. Januar 2012.
  26. Michael W. Lucas: Absolute OpenBSD, 2nd Edition: UNIX for the Practical Paranoid. 2. Auflage. No Starch Press, 2013, ISBN 978-1-59327-476-4, S. 536.

{{SORTIERUNG:Openntpd}} [[Kategorie:Freie Systemsoftware]] [[Kategorie:Unix-Software]] [[Kategorie:BSD-Software]] [[Kategorie:OpenBSD]] [[Kategorie:Netzwerk-Zeitübertragung]]