So installieren und konfigurieren Sie OpenNTPd unter FreeBSD 10.2

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.

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.