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
BearbeitenDie 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
BearbeitenDie 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
BearbeitenPlattformen
BearbeitenOpenNTPD 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
BearbeitenKonfigurationsdatei:[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
BearbeitenBücher
BearbeitenEinzelnachweise
Bearbeiten- ↑ Theo de Raadt: OpenBSD dev - tech. In: openbsd-archive.7691.n7.nabble.com. 22. Dezember 2004, abgerufen am 8. Januar 2016.
- ↑ Steven J. Vaughan-Nichols: Serious NTP security holes have appeared and are being exploited | ZDNet. In: ZDNet. Abgerufen am 27. Juli 2016.
- ↑ Four Flaws Expose Critical Network Time-Keeping Servers to Attack. Abgerufen am 27. Juli 2016.
- ↑ Open NTPD zur Zeitsynchronisation nutzen. 19. Juni 2008, abgerufen am 27. Juli 2016 (deutsch).
- ↑ Portable OpenNTPD. In: openntpd.com.
- ↑ The OpenNTPD Project: OpenNTPD Goals. In: The OpenNTPD Project. 22. Dezember 2004, abgerufen am 4. November 2015.
- ↑ The OpenBSD Project: OpenBSD 3.6. In: The OpenBSD Project. 1. November 2004, abgerufen am 4. November 2015.
- ↑ Henning Brauer: OpenNTPD 3.6 released. In: MARC. 2. November 2004, abgerufen am 4. November 2015.
- ↑ Sichere Uhrzeit mit NTP und HTTPS. In: golem.de.
- ↑ heise online: OpenBSD 6.0: Das letzte Mal auf CD. Abgerufen am 3. Dezember 2019.
- ↑ Network Time Security: Sichere Uhrzeit übers Netz - Golem.de. Abgerufen am 1. Dezember 2019 (deutsch).
- ↑ Tobias Eggendorfer: Open SMTPD macht die Mailserver-Konfiguration leicht - Seite 6 von 7. In: Linux-Magazin. Abgerufen am 4. Dezember 2019 (deutsch).
- ↑ Henning Brauer: OpenNTPD Design Goals. In: The OpenBSD Project. September 2004, abgerufen am 17. Dezember 2015.
- ↑ Henning Brauer: OpenNTPD Why? In: The OpenBSD Project. September 2004, abgerufen am 17. Dezember 2015.
- ↑ Understanding and mitigating NTP-based DDoS attacks. 9. Januar 2014, abgerufen am 27. Dezember 2019 (englisch).
- ↑ What is NTP Amplification | DDoS Attack Glossary | Imperva. In: Learning Center. Abgerufen am 27. Dezember 2019 (amerikanisches Englisch).
- ↑ 8 Arten von DDoS-Angriffen. 9. September 2019, abgerufen am 27. Dezember 2019 (koreanisch).
- ↑ ntp.org: OpenNTPD < Support < NTP. In: Network Time Protocol. Februar 2008, abgerufen am 17. Dezember 2015.
- ↑ Vincent Danen: Use OpenNTPD for time synchronization. In: techrepublic. 7. Januar 2008, abgerufen am 24. Juli 2016.
- ↑ OpenNTPD - ArchWiki. Abgerufen am 1. Dezember 2019.
- ↑ Enabling OpenNTPD [Book]. (safaribooksonline.com [abgerufen am 28. Juli 2016]).
- ↑ OpenBSD Projekt: Portable OpenNTPD. In: The OpenNTPD Project. Abgerufen am 17. Dezember 2015.
- ↑ Marc Balmer: Portable OpenNTPD. In: The OpenNTPD Project. 14. September 2007, abgerufen am 4. Januar 2016.
- ↑ Charly Kühnast: Aus dem Alltag eines Sysadmin: OpenNTPD » Linux-Magazin. In: Linux-Magazin. Abgerufen am 27. Juli 2016.
- ↑ Ronald Cohn, Jesse Russel: OpenNTPD. VSD, 1. Januar 2012.
- ↑ 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]]