So konfigurieren Sie NTP für die Verwendung im NTP-Pool-Projekt unter CentOS 7

Einführung

Genaue Zeitmessung ist für fast jeden Service oder jede Software von entscheidender Bedeutung. E-Mails, Logger, Ereignissysteme und Scheduler, Benutzerauthentifizierungsmechanismen und Dienste, die auf verteilten Plattformen ausgeführt werden, benötigen genaue Zeitstempel, um Ereignisse in chronologischer Reihenfolge aufzuzeichnen. Diese Dienste verwenden das Network Time Protocol (NTP), um die Systemuhr mit einer vertrauenswürdigen externen Quelle zu synchronisieren. Diese Quelle kann eine Atomuhr, ein GPS-Empfänger oder ein anderer Zeitserver sein, der bereits NTP verwendet.

Hier kommt das ProjektNTP Pool Projectins Spiel. Es handelt sich um ein riesiges weltweites Cluster von Zeitservern, die zig Millionen Kunden auf der ganzen Welt einfachen Zugriff auf die bekannte "gute Zeit" bieten. Dies ist der Standard-Zeitserver für Ubuntu und die meisten anderen wichtigen Linux-Distributionen sowie für viele vernetzte Appliances und Softwareanwendungen.

In diesem Handbuch richten Sie NTP auf Ihrem Server ein und konfigurieren es als Teil des NTP-Pool-Projekts, damit andere Benutzer des NTP-Pool-Projekts genaue Zeitangaben erhalten. Die Bereitstellung Ihrer freien CPU-Zyklen und der nicht genutzten Bandbreite ist eine perfekte Möglichkeit, der Community etwas zurückzugeben.

Die erforderliche Bandbreite ist relativ niedrig und kann abhängig von der Menge, die Sie bereitstellen können, und dem Standort Ihres Servers angepasst werden. Jeder Client sendet nur alle 20 Minuten ein paar UDP-Pakete, sodass die meisten Server nur etwa ein Dutzend NTP-Pakete pro Sekunde empfangen, mit Spitzenwerten von ein paar Mal pro Tag von bis zu einhundert Paketen pro Sekunde. Dies entspricht einer Bandbreitenauslastung von 10 bis 15 KBit / s bei Spitzen von 50 bis 120 KBit / s.

Es gibt drei Grundvoraussetzungen, die Sie erfüllen müssen, bevor Sie dem NTP-Pool-Projekt beitreten können:

  1. Ihr Server muss eine statische IP-Adresse haben.

  2. Ihr Server muss über eine dauerhafte und stabile Internetverbindung verfügen.

  3. Ihre IP-Adresse ändert sich meist nicht oder nur selten (einmal im Jahr oder weniger).

Bei den meisten Cloud-basierten Servern werden die ersten beiden Anforderungen normalerweise automatisch erfüllt. Die dritte Anforderung betont, dass der Beitritt zum NTP-Pool-Projekt eine langfristige Verpflichtung darstellt. Wenn sich Ihre Umstände ändern, ist es natürlich in Ordnung, einen Server aus dem Pool zu entfernen. Es dauert jedoch lange (meist Wochen, manchmal Monate oder sogar Jahre), bis der Datenverkehr vollständig verschwindet.

Voraussetzungen

Um dieses Tutorial abzuschließen, benötigen Sie:

[[Schritt-1 -—- Installation-ntp]] == Schritt 1 - Installation von NTP

Das NTP-Paket wird nicht standardmäßig installiert. Verwenden Sie daher den Paket-Manager, um es zu installieren. Aktualisieren Sie zuerst Ihre Pakete:

sudo yum update

Dann installiere NTP:

sudo yum install ntp

Starten Sie nach Abschluss der Installation den Dienst und konfigurieren Sie ihn so, dass er bei jedem Start des Servers automatisch gestartet wird:

sudo systemctl start ntpd
sudo systemctl enable ntpd

Wenn Sie die Firewall wie in den Voraussetzungen angegeben konfiguriert haben, müssen Sie UDP-Datenverkehr für den NTP-Dienst zulassen, um mit dem NTP-Pool kommunizieren zu können:

sudo firewall-cmd --permanent --add-service=ntp
sudo firewall-cmd --reload

Weitere Informationen zu FirewallD finden Sie unterHow To Set Up a Firewall Using FirewallD on CentOS 7.

NTP ist jetzt installiert, ist jedoch so konfiguriert, dass die Standard-NTP-Pool-Zeitserver verwendet werden. Wählen wir stattdessen einige bestimmte Zeitserver aus.

[[Schritt 2 - Auswahl eines geeigneten Upstream-Servers]] == Schritt 2 - Auswahl eines geeigneten Upstream-Servers

Das NTP-Pool-Projekt fordert Betreiber, die dem Pool beitreten möchten, auf, gute netzwerklokale Zeitserver auszuwählen, anstatt die Standardserverpool.ntp.orgzu verwenden. Dies stellt sicher, dass das NTP-Pool-Projekt zuverlässig, schnell und fehlerfrei bleibt. Wenn Sie Ihre Zeitquelle auswählen, möchten Sie eine stabile Netzwerkverbindung ohne Paketverlust und mit möglichst wenigen Hops zwischen den Servern.

Das mehrschichtige und hierarchische NTP-Protokoll unterteilt die beteiligten Parteien in Primärserver, Sekundärserver und Clients. Die Primärserver heißenStratum 1 und sind direkt mit der Zeitquelle verbunden, dieStratum 0 heißt. Diese Quelle kann eine Atomuhr, ein GPS-Empfänger oder ein Funknavigationssystem sein. Sekundärserver in der Kette heißenStratum 2,Stratum 3 usw.

Jeder Server ist auch ein Client. Ein Stratum 2-Client empfängt Zeit von einem vorgelagerten Stratum 1-Server und stellt Zeit für nachgelagerte Stratum 3-Server oder andere Clients bereit. Damit Mitglieder des NTP-Pool-Projekts ordnungsgemäß funktionieren, müssen für den NTP-Dämon mindestens drei Server konfiguriert sein. Das Projekt empfiehlt mindestens vier und höchstens sieben Quellen.

Das NTP-Pool-Projekt enthält eine Liste der öffentlichen Stratum 1- und Startum 2-Zeitserver. Die Listen bezeichnen die NTP-Zeitserver, die unter festgelegten Einschränkungen für den öffentlichen Zugriff verfügbar sind. Es gibt drei Arten:

  • OpenAccess: Dieser Zeitserver steht jedem Client offen, der den NTP-Poolusage recommendations einhält.

  • RestrictedAccess: Dieser Zeitserver hat zusätzlich zu den Verwendungsempfehlungen für den NTP-Pool einige Zugriffsbeschränkungen.

  • ClosedAccess: Dieser Zeitserver ist geschlossen oder erfordert eine vorherige Vereinbarung.

[.warning] #Warning: Verwenden Sie keine Server, die nicht alsOpenAccess aufgeführt sind, es sei denn, Sie haben die Genehmigung dazu erhalten.
#

Besuchen Sie dieStratum 1 Time Servers list. Sie sehen eine Liste wie die folgende:

Stratum 1 servers

Sortieren Sie die Liste nach der SpalteISO codeund suchen Sie einen oder zwei Server, die sich geografisch in der Nähe des Rechenzentrums Ihres Servers befinden. Wenn in der SpalteAccess Policydes ServersOpenAccess angegeben ist, können Sie sie problemlos verwenden. Wenn "RestrictedAccess" angezeigt wird, klicken Sie, um den Eintrag zu öffnen, und lesen Sie die Anweisungen im FeldAccessDetails. Oft werden Sie feststellen, dassNotificationMessage aufYes eingestellt ist. Dies bedeutet, dass Sie eine informelle E-Mail an die inServerContact angegebene Adresse erstellen müssen, um den Serverbetreiber über Ihren Wunsch zu informieren Verwenden Sie diesen Zeitserver als Zeitquelle für Ihr NTP Pool Project-Mitglied.

Wenn Sie die Server identifiziert haben, die Sie verwenden möchten, klicken Sie auf den Link für jeden Server in der SpalteISOund kopieren Sie dessen Hostnamen oder IP-Adresse. Diese Adressen verwenden Sie in Schritt 3.

Wählen Sie als Nächstes drei oder vier Server aus der ListeStratum 2aus.

Nachdem Sie Ihre Zeitserver ausgewählt haben, müssen Sie Ihren NTP-Client für deren Verwendung konfigurieren.

[[Schritt-3 - Konfigurieren von NTP, um dem Pool beizutreten]] == Schritt 3 - Konfigurieren von NTP für den Beitritt zum Pool

Um Ihren Server mit dem NTP-Pool zu verwenden und Ihre neuen Zeitserver zu konfigurieren, müssen Sie einige Änderungen an der Konfiguration Ihres NTP-Daemons vornehmen. Bearbeiten Sie dazu die Datei/etc/ntp.conf:

sudo vi /etc/ntp.conf

Stellen Sie zunächst sicher, dassdriftfile konfiguriert ist. Eine Driftdatei speichert den Frequenzversatz zwischen der Systemuhr, die bei ihrer Nennfrequenz läuft, und der Frequenz, die erforderlich ist, um mit der korrekten Zeit synchron zu bleiben. Es hilft, eine stabile und genaue Zeit zu erreichen. Sie sollten dies oben in Ihrer Konfigurationsdatei bei einer Standardinstallation finden:

/etc/ntp.conf

# For more information about this file, see the man pages
# ntp.conf(5), ntp_acc(5), ntp_auth(5), ntp_clock(5), ntp_misc(5), ntp_mon(5).

driftfile /var/lib/ntp/drift

...

Entfernen Sie als Nächstes die Standard-Zeitquelleneinträge aus der Konfiguration. Sie suchen nach allen Zeilen mit dem Musterserver 0.centos.pool.ntp.org iburst. Wenn Sie eine Standardkonfiguration verwenden, entfernen Sie die hervorgehobenen Linien wie im folgenden Beispiel gezeigt:

/etc/ntp.conf

...
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
server 0.centos.pool.ntp.org iburst
server 1.centos.pool.ntp.org iburst
server 2.centos.pool.ntp.org iburst
server 3.centos.pool.ntp.org iburst

Ersetzen Sie die Linien, die Sie entfernt haben, durch die handverlesenen Server, die Sie im vorherigen Schritt ausgewählt haben.

/etc/ntp.conf

...
server ntp_server_hostname_1 iburst
server ntp_server_hostname_2 iburst
server ntp_server_hostname_3 iburst
server ntp_server_hostname_4 iburst
server ntp_server_hostname_5 iburst
...

Wir verwenden die Optioniburst für jeden Server gemäß den Empfehlungen des NTP-Pools. Auf diese Weise wird, wenn der Server nicht erreichbar ist, ein Burst von acht Paketen anstelle des üblichen Pakets gesendet. Die Verwendung der Optionburst im NTP-Pool-Projekt wird als Missbrauch angesehen, da diese acht Pakete in jedem Abfrageintervall gesendet werden, währendiburst die acht Pakete nur beim ersten Mal sendet.

Stellen Sie als Nächstes sicher, dass die Standardkonfiguration keine Verwaltungsabfragen zulässt. Wenn Sie dies nicht tun, wird Ihr Server möglicherweise für NTP-Reflektionsangriffe verwendet oder ist anfällig für Abfragen vonntpq undntpdc, die versuchen, den Status des Servers zu ändern. Überprüfen Sie, ob die Optionnoquery zu den Standardzeilen vonrestricthinzugefügt wurde. Stellen Sie außerdem sicher, dass Sie die Optionenkod undlimited hinzufügen, da diese zu eifrig Kunden fragen und die Ratenbegrenzung erzwingen.

/etc/ntp.conf

...
# Permit time synchronization with our time source, but do not
# permit the source to query or modify the service on this system.
restrict default nomodify notrap nopeer noquery kod limited

# Permit all access over the loopback interface.  This could
# be tightened as well, but to do so would effect some of
# the administrative functions.
restrict 127.0.0.1
restrict ::1

Weitere Informationen zu den anderen Optionen finden Sie inofficial documentation.

Ihre NTP-Daemon-Konfigurationsdatei sollte nun wie folgt aussehen, obwohl Ihre Datei möglicherweise zusätzliche Kommentare enthält, die Sie ignorieren können:

/etc/ntp.conf

driftfile /var/lib/ntp/ntp.drift

restrict default nomodify notrap nopeer noquery kod limited

restrict 127.0.0.1
restrict ::1

server ntp_server_hostname_1 iburst
server ntp_server_hostname_2 iburst
server ntp_server_hostname_3 iburst
server ntp_server_hostname_4 iburst
server ntp_server_hostname_5 iburst

Speichern Sie die Datei und beenden Sie den Editor.

Starten Sie nun den NTP-Dienst neu und lassen Sie Ihren Zeitserver seine Uhr mit den Upstream-Servern synchronisieren.

sudo systemctl restart ntpd

Überprüfen Sie nach einigen Minuten den Zustand Ihres Zeitservers mit dem Befehlntpq:

ntpq -p

Die Ausgabe sollte ungefähr so ​​aussehen:

Output     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 mizbeaver.udel. .INIT.          16 u    -   64    0    0.000    0.000   0.000
 montpelier.ilan .GPS.            1 u   25   64    7   55.190    2.121 130.492
+nist1-lnk.binar .ACTS.           1 u   28   64    7   52.728   23.860   3.247
*ntp.okstate.edu .GPS.            1 u   31   64    7   19.708   -8.344   6.853
+ntp.colby.edu   .GPS.            1 u   34   64    7   51.518   -5.914   6.669

In der Spalteremote wird der Hostname der Server angegeben, die der NTP-Dämon verwendet, und in der Spalterefidwird die Quelle angegeben, die die Server verwenden. Bei Stratum 1-Servern sollte im FeldrefidGPS,PPS,ACTS oderPTB angezeigt werden, und bei Stratum 2 und höheren Servern wird die IP angezeigt Adresse des Upstream-Servers. Die Spaltest zeigt die Schicht, unddelay,offset undjitter geben Auskunft über die Qualität der Zeitquelle. Niedrigere Werte sind für diese drei Felder besser.

Ihr Zeitserver kann jetzt der Öffentlichkeit Zeit zur Verfügung stellen. Sie können dies überprüfen, indem Sientpdate von einem anderen Host aus aufrufen:

ntpdate -q your_server_ip

Die Ausgabe sollte ungefähr so ​​aussehen und zeigt an, dass der Zeitserver und der Offset angepasst wurden:

Outputserver your_server_ip, stratum 2, offset 0.001172, delay 0.16428
 2 Mar 23:06:44 ntpdate[18427]: adjust time server your_server_ip offset 0.001172 sec

Sie können Ihren NTP-Server jetzt beim NTP-Pool-Projekt registrieren, damit andere ihn verwenden können.

[[Schritt 4 - Hinzufügen des Servers zum NTP-Pool]] == Schritt 4 - Hinzufügen des Servers zum NTP-Pool

Um Ihren Server hinzuzufügen, damit andere ihn verwenden können, besuchen Siemanage.ntppool.org und melden Sie sich für ein Konto an. Sie erhalten vonNTP Pool [email protected]eine E-Mail mit der Aufforderung, Ihr Konto zu verifizieren. Bestätigen Sie Ihr Konto, indem Sie den Anweisungen in der E-Mail folgen, und melden Sie sich dann beimanage.ntppool.org an.

Sobald Sie angemeldet sind, sehen Sie die einfache Oberfläche zum Hinzufügen von Servern:

Add a server

Geben Sie die IP-Adresse Ihres Servers ein und klicken Sie aufSubmit.

Im nächsten Bildschirm werden Sie aufgefordert, zu überprüfen, ob die Region Ihres Servers identifiziert wurde. Wenn Ihr Server in einer anderen Region als erwartet angezeigt wird, verwenden Sie das FeldComment, um ihn zu informieren.

The verification screen

Wenn Sie zufrieden sind, bestätigen Sie die Eingabe, indem Sie aufYes, this is my server, add it! klicken

Ihr Server ist jetzt Teil des NTP-Pool-Projekts. Besuchen Siehttp://www.pool.ntp.org/scores/your_server_ip, um Informationen zu erhalten, die das Überwachungssystem des NTP-Pools über Ihren Server gesammelt hat. Es überprüft Ihren Server einige Male pro Stunde und zeigt Offsetdaten zusammen mit denscore Ihres Systems an. Solange Ihr Server genügend Zeit hat und erreichbar ist, steigt die Punktzahl auf 20 Punkte. Im Pool werden nur Server mit einer Punktzahl von mehr als 10 verwendet.

Fehlerbehebung bei Verbindungsproblemen

Wenn Sie Probleme haben, Ihren Server zur Synchronisierung zu bringen, ist möglicherweise eine Paket-Firewall vorhanden, die Ihreoutgoing-Pakete auf Port123 ablegt. Schauen Sie sichHow To Set Up a Firewall Using FirewallD on CentOS 7 an, um zu erfahren, wie Sie den Status der Firewall überprüfen.

Wenn die Überwachungsstation des NTP-Pool-Projekts Ihren NTP-Server nicht erreichen kann und Ihre Server-Punktzahl sinkt oder Sie Ihren Server nicht zum Synchronisieren einer anderen Uhr verwenden können, ist möglicherweise eine Paket-Firewall vorhanden, die Ihrincominglöscht. s Verkehr auf Port123. Überprüfen Sie Ihren Firewall-Status.

Wenn Sie sicher sind, dass keine Firewall vorhanden ist oder Sie Port123 sowohl für eingehenden als auch für ausgehenden Datenverkehr geöffnet haben, werden Ihre Pakete möglicherweise von Ihrem Serveranbieter oder einem anderen Transitanbieter verworfen. Wenn Sie nicht über das Wissen verfügen, um diese Probleme selbst zu lösen, wenden Sie sich am besten an die Community und suchen Sie nach Hilfe. DasNTP Pool Projects forum ist ein guter Anfang. Sie können auch diemailing list odersend an emaill mit dem NTP-Pool-Projektoperator verbinden. Stellen Sie nur sicher, dass Sie alle Schritte anzeigen können, mit denen Sie bereits versucht haben, das Problem zu beheben, bevor Sie um Hilfe bitten.

Fazit

In diesem Lernprogramm haben Sie Ihren eigenen Zeitserver erfolgreich eingerichtet und zum Mitglied des NTP-Pool-Projekts gemacht, um der Community Zeit zu geben. Um mit der Zeitnehmergemeinschaft in Kontakt zu bleiben. Verbinden Sie dieNTP Pool Projects forum oder diemailing list. Überwachen Sie unbedingt die Punktzahl Ihres Servers und nehmen Sie die erforderlichen Anpassungen vor.