Einführung
NTP, das Network Time Protocol, ist ein standardisiertes Protokoll, mit dem die Uhrzeit auf verschiedenen Betriebssystemen synchronisiert werden kann. http://openntpd.org [OpenNTPd] ist eine kostenlose und benutzerfreundliche Implementierung des Network Time Protocol (NTP), das ursprünglich im Rahmen des http://openbsd.org [OpenBSD] -Projekts entwickelt wurde. Es bietet die Möglichkeit, die lokale Uhr von entfernten NTP-Servern aus zu synchronisieren und kann auch selbst als Server fungieren.
Dieses Tutorial zeigt Ihnen, wie Sie OpenNTPd unter FreeBSD installieren.
Voraussetzungen
Um diesem Tutorial folgen zu können, benötigen Sie:
-
Ein FreeBSD 10.2-Droplet mit einem * root * -Benutzer; Der Standardbenutzer * freebsd * bei DigitalOcean ist in Ordnung.
Ein FreeBSD-Droplet benötigt einen SSH-Schlüssel für den Fernzugriff. Hilfe zum Einrichten eines SSH-Schlüssels finden Sie unter How To Configure SSH Schlüsselbasierte Authentifizierung auf einem FreeBSD-Server. Weitere Informationen zum Anmelden bei FreeBSD Droplet und zur grundlegenden Verwaltung finden Sie in der Tutorialserie https://www.digitalocean.com/community/tutorial_series/getting-started-with-freebsd[Getting Started with FreeBSD.
Schritt 1 - Installieren von OpenNTPd
Aktualisieren Sie vor der Installation von OpenNTPd die Repository-Informationen, die von "+ pkg +" verwendet werden:
sudo pkg update
Dann installieren Sie das OpenNTPd-Paket:
sudo pkg install openntpd
Die Standard-OpenNTPd-Konfiguration verwendet "+ pool.ntp.org +" als Standard-Zeitserver und ist so konfiguriert, dass sie nur als Client-Computer funktioniert. Der Rest dieses Tutorials zeigt, wie Sie den verwendeten Zeitserver ändern und OpenNTPd als Zeitserver konfigurieren.
Schritt 2 - Ändern des Zeitservers ((Optional)
In den nächsten Schritten wird die Standardkonfigurationsdatei "+ / usr / local / etc / ntpd.conf " bearbeitet. Verwenden Sie " ee ", " vi +" oder Ihren bevorzugten Texteditor, um die Konfigurationsdatei zu bearbeiten.
sudo ee /usr/local/etc/ntpd.conf
Unterstützt von Ask Bjørn Hansens GeoDNS gibt + pool.ntp.org +
normalerweise IP-Adressen für Server in oder in der Nähe Ihres Landes zurück. Für die meisten Benutzer ergibt dies die besten Ergebnisse.
Alternativ können Sie auch ein Land Zone wie + verwenden br.pool.ntp.org id.pool.ntp.org
oder` + ru.pool.ntp.org + `an Kraft / Limit Ergebnisse in Ihren persönlichen Bedürfnissen anzupassen . Weitere Informationen zum NTP-Pool-Projekt finden Sie unter http://www.pool.ntp.org [pool.ntp.org].
Für das Beispiel in diesem Tutorial verwenden wir http://ntp.br [NTP.br], ein Projekt in Brasilien, das die gesetzliche Zeit auf brasilianischem Territorium beibehält und verteilt. Wenn Sie nicht in Brasilien sind, verwenden Sie ein ähnliches Projekt in Ihrem Land oder Ihrer Region.
Definieren Sie Ihren gewünschten Zeitserver wie folgt und ersetzen Sie + pool.ntp.br +
durch den von Ihnen gewählten Zeitserver.
/usr/local/etc/ntpd.conf
# $OpenBSD: ntpd.conf,v 1.2 2015/02/10 06:40:08 reyk 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
# 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/search?q=openntpd"
Schritt 3 - Ändern der Einschränkungen
Ein benutzerdefiniertes Client-Setup kann auch Einschränkungen unterstützen, sodass "+ ntpd " die " Date: +" - Header von vertrauenswürdigen HTTPS-Servern über TLS abfragen kann.
In der Hilfeseite + ntpd.conf (5) +
heißt es: "Empfangene NTP-Pakete mit Zeitangaben, die außerhalb eines Bereichs in der Nähe der Einschränkung liegen, werden verworfen und solche NTP-Server werden als ungültig markiert." Dies verhindert einige MITM-Angriffe, während die Genauigkeit der Uhr erhalten bleibt.
Fügen Sie die Einschränkungen zu + / usr / local / etc / ntpd.conf +
hinzu. Stellen Sie sicher, dass Sie eine oder mehrere zuverlässige, bekannte HTTPS-Sites verwenden. Sie können die in der Datei enthaltene Beispielzeile auskommentieren, indem Sie das erste, unten hervorgehobene "+ # +" - Zeichen löschen:
/usr/local/etc/ntpd.conf
# $OpenBSD: ntpd.conf,v 1.2 2015/02/10 06:40:08 reyk 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
# 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/search?q=openntpd"
Schritt 4 - OpenNTPd als Zeitserver konfigurieren
In diesem Abschnitt erfahren Sie, wie Sie das Standardverhalten von OpenNTPd ändern und FreeBSD auf einen NTP-Server umstellen, der Zeit über IPv4 und IPv6 liefern kann.
Das endgültige Ergebnis für eine Serverkonfiguration sollte folgendermaßen aussehen: "++" wird durch die IPv4- oder IPv6-Adresse Ihres Servers ersetzt.
/usr/local/etc/ntpd.conf
# $OpenBSD: ntpd.conf,v 1.2 2015/02/10 06:40:08 reyk Exp $
# sample ntpd configuration file, see ntpd.conf(5)
# Addresses to listen on (ntpd does not listen by default)
# 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.br
# 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/search?q=openntpd"
Schritt 5 - OpenNTPd beim Booten starten
Die Standarddienstkonfiguration für OpenNTPd startet den Daemon während des FreeBSD-Startvorgangs nicht. Führen Sie die folgenden Schritte aus, um den von + ntpd +
unter FreeBSD bereitgestellten NTP-Dienst hinzuzufügen:
sudo sysrc openntpd_enable="YES"
Die Ausgabe sollte sein:
Outputopenntpd_enable: -> YES
Wenn Sie die Zeit sofort beim Start einstellen möchten, fügen Sie "+ -s " zu " openntpd_flags " hinzu. ` -v ` kann auch verwendet werden, damit alle Aufrufe von ` adjtime ` protokolliert werden. Wenn Sie " -s " an " ntpd +" übergeben, wird der Dämon veranlasst, dass einer der konfigurierten NTP-Server antwortet. Dies ist und ein benutzerdefiniertes Setup wie dieses sollte folgendermaßen konfiguriert werden:
sudo sysrc openntpd_flags="-s -v"
Die Ausgabe sollte sein:
Outputopenntpd_flags: -> -s -v
Schritt 6 - Verwalten des OpenNTPd-Dienstes
Nachdem Sie die Konfigurationsdatei bearbeitet und an Ihre Bedürfnisse angepasst haben, können Sie den von OpenNTPd bereitgestellten Dienst starten.
So starten Sie den Dienst:
sudo service openntpd start
Wenn es erfolgreich gestartet wird, sehen Sie:
OutputStarting openntpd.
Wenn die Flags des OpenNTPd-Daemons so konfiguriert sind, dass Debug-Informationen protokolliert werden, sollte das Starten der Ausgabe folgendermaßen aussehen:
OutputStarting openntpd.
constraint certificate verification turned off
ntp_adjtime returns frequency of 8.643158ppm
Sie können den OpenNTPd-Dienst mit den üblichen Befehlen verwalten: + status +
, + restart +
, usw.
Schritt 7 - Fehlerbehebung (optional)
OpenNTPd verwendet zwei Binärdateien: + ntpd +
und + ntpctl +
. Der erste ist der Daemon selbst und ist für den NTP-Dienst verantwortlich, der dem Client- oder Server-Computer bereitgestellt wird. Der zweite wird verwendet, um Informationen zum laufenden Dämon anzuzeigen.
In diesem Abschnitt erfahren Sie, wie Sie mit + ntpctl +
, + nc +
und + sockstat +
Probleme mit dem von OpenNTPd und seinem Daemon bereitgestellten NTP-Dienst beheben können. Wenn Sie einen Dienst ausführen oder nur auf andere Weise überprüfen möchten, ob Ihr Dienst ausgeführt wird, verwenden Sie diesen Abschnitt.
Status und Peers abrufen
Das + ntpctl +
von OpenNTPd verwendet einen lokalen Socket für die Kommunikation mit dem OpenNTPd-Dämon. Die Standardeinstellung lautet "+ / var / run / ntpd.sock ". Dieses Tutorial behandelt zwei Arten von Abfragen, die Sie mit ` ntpctl` ausführen können:` + status` und + peers
.
+ status +
zeigt den Status von Peers und Sensoren sowie an, ob die Systemuhr synchronisiert ist. Wenn die Systemuhr synchronisiert ist, wird die Schicht angezeigt. Wenn die Systemuhr nicht synchronisiert ist, wird der Versatz der Systemuhr angezeigt, der durch den Systemaufruf "+ adjtime +" gemeldet wird. Wenn die Medianbedingung festgelegt ist, wird der Versatz zur Ortszeit angezeigt.
So zeigen Sie den Status mit ntpctl an:
sudo ntpctl -s status
Die Ausgabe sollte ungefähr so aussehen:
Ausgabe
8/8 peers valid, clock synced, stratum 2
+ peers +
zeigt die folgenden Informationen zu jedem Peer an: weight (wt), trustlevel (tl), stratum (st) und die Anzahl der Sekunden bis zur nächsten Aktualisierung des Peers (nächste Umfrage). Der Offset, die Netzwerkverzögerung und der Netzwerk-Jitter werden in Millisekunden angegeben. Wenn die Systemuhr mit einem Peer synchronisiert ist, wird links neben der Gewichtungsspalte für diesen Peer ein Sternchen (*) angezeigt.
So zeigen Sie Peers-Informationen mit + ntpctl +
an:
sudo ntpctl -s peers
In der folgenden Ausgabe werden die Informationen angezeigt, die OpenNTPd ausführt und mit dem Server von Schicht 1 synchronisiert, der als "200.160.7.193" (aufgelöst von pool.ntp.br) antwortet. Ihr OpenNTPd-Dämon aktualisiert die Zeit in 31 Sekunden über NTP:
Output peer
wt tl st next poll offset delay jitter
200.160.0.8 from pool pool.ntp.br
1 10 2 8s 30s -0.005ms 44.814ms 0.023ms
200.20.186.76 from pool pool.ntp.br
1 10 1 18s 31s 0.023ms 37.481ms 0.031ms
. . .
Hörbuchsen
Sie können "+ sockstat +" verwenden, um offene IPv4-, IPv6- und UNIX-Domain-Sockets aufzulisten. So listen Sie die mit NTP über IPv4 und IPv6 verbundenen Listening-Sockets auf:
sudo sockstat -4 -6 -p 123
Ausgabe
USER COMMAND PID FD PROTO LOCAL ADDRESS FOREIGN ADDRESS
_ntp ntpd 44208 7 udp4 203.0.113.123:16987 200.160.0.8:123
_ntp ntpd 44208 8 udp4 203.0.113.123:38739 200.160.7.193:123
. . .
Wenn Sie OpenNTPd ausführen, um Zeit über das Netzwerk bereitzustellen, wird in der Spalte "+ LOKALE ADRESSE " eine Zeile mit Ihren IP-Adressen angezeigt. `: 123 `, das den IPv4-Socket darstellt, und `: 123 +`, das einen abhörenden IPv6-Socket darstellt.
Verbindung zum Internet herstellen
Verwenden Sie + nc +
, um nicht nur NTP, sondern auch viele Netzwerk-Daemons und deren Sockets (UNIX, TCP oder UDP) zu beheben. Die Manpage sagt: "Im Gegensatz zu" + telnet + "skriptet" netcat "gut und trennt Fehlermeldungen nach Standardfehlern, anstatt sie an die Standardausgabe zu senden, wie es" + telnet + "bei einigen tut".
So überprüfen Sie, ob Sie einen NTP-Server oder Pool-Host über IPv4 erreichen können:
sudo nc pool.ntp.br 123 -z -u -v
OutputConnection to pool.ntp.br 123 port [udp/ntp] succeeded!
So überprüfen Sie, ob Sie über IPv6 einen NTP-Server oder einen Pool-Host erreichen können:
sudo nc pool.ntp.br 123 -z -u -v
OutputConnection to pool.ntp.br 123 port [udp/ntp] succeeded!
Ntpdate verwenden
Verwenden Sie + ntpdate +
, um einige der Server zu beheben, die Sie möglicherweise verwenden möchten. Sie können einige Informationen über den Rechner erhalten, auf dem der NTP-Dienst ausgeführt wird: "+ stratum", "+ offset" und "+ delay".
sudo ntpdate -q ntp.cais.rnp.br
Die Ausgabe sieht ungefähr so aus:
Outputserver 200.144.121.33, stratum 3, offset -0.000049, delay 0.09001
1 Sep 17:28:54 ntpdate[66740]: adjust time server 200.144.121.33 offset -0.000049 sec
Beachten Sie, dass die Funktionalität von + ntpdate +
jetzt im FreeBSD-Programm + ntpd +
verfügbar ist. Siehe die + -q +
Befehlszeilenoption in der FreeBSD-Hilfeseite + ntpd +
oder verwenden Sie + ntpq +
.
Handbuchseiten lesen
OpenNTPds + ntpd +
, + ntpd.conf +
und + ntpctl +
sind nicht Teil des FreeBSD-Basissystems, daher gehören die Manualpages auch nicht zum Standard-+ MANPATH +
des Betriebssystems. Um sicherzugehen, dass Sie die Handbuchseiten von OpenNTPd lesen, sollten Sie "+ man " mit " -M / usr / local / man " ausführen. Nicht zu verwechseln mit der FreeBSD-Standard-Hilfeseite ` ntpd (8) +`.
man -M /usr/local/man ntpd
Wiederholen Sie diesen Vorgang, um die Hilfeseite von OpenNTPd zu lesen: + ntpctl (8) +
oder + ntpd.conf (5) +
.
Fazit
Zeit ist für die Funktion von Arbeitsstationen, Servern, Routern und Netzwerken von Natur aus wichtig. Ohne synchronisierte Zeit wird die genaue Korrelation von Informationen zwischen Geräten schwierig, wenn nicht unmöglich. Wenn Sie in Bezug auf die Sicherheit die Protokolle zwischen jedem Ihrer Router und allen Ihren Netzwerkservern nicht erfolgreich vergleichen können, ist es sehr schwierig, ein zuverlässiges Bild eines Vorfalls zu erstellen.