Benutzer-Werkzeuge

Webseiten-Werkzeuge


tachtler:ntp_centos_6

ntp CentOS 6

Das NTP (Network Time Protocol) ist ein Protokoll, entwickelt um die einzelnen Uhren jedes an ein Netzwerk angeschlossenen Computers, synchron zu halten. Alle in diesem Netzwerk befindlichen Computer, haben dann eine einheitliche Zeit, wenn diese an der Verteilung der Zeitinformationen eines sogenannten „Zeitservers“, teilnehmen.

Es kann unter Umständen sehr wichtig sein, das alle Computer in einem Netzwerk die selbe Zeit zur Verfügung haben, da sonst z.B. der Austausch von DNS Informationen, bei einer zu hoher Zeitabweichung der einzelnen am DNS beteiligten Computer, nicht durchgeführt werden kann.

:!: HINWEIS - Nachfolgend soll die Installation eines „Zeitservers“ für eine privates Netzwerk beschrieben werden!

:!: HINWEIS - Der Einsatz von IPv6 soll NICHT genutzt werden!!!

Ab hier werden zur Ausführung nachfolgender Befehle root-Rechte benötigt. Um der Benutzer root zu werden, melden Sie sich bitte als root-Benutzer am System an, oder wechseln mit nachfolgendem Befehl zum Benutzer root:

$ su -
Password:

Installation

Zur Installation eines „Zeitservers“ werden nachfolgende Pakete benötigt:

  • ntp - ist im base-Repository von CentOS enthalten
  • ntpdate - ist ebenfalls im base-Repository von CentOS enthalten und würde als Abhängigkeit zum Paket ntp sowieso installiert werden.

Es sind noch weitere Pakete zu ntp verfügbar, welche nicht zum Betrieb eines „Zeitservers“ zwingend erforderlich sind.

Mit nachfolgendem Befehl, werden die benötigten Pakete installiert:

# yum install ntp
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp.plusline.de
 * extras: ftp.plusline.de
 * updates: ftp.plusline.de
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package ntp.x86_64 0:4.2.4p8-2.el6 set to be updated
--> Processing Dependency: ntpdate = 4.2.4p8-2.el6 for package: ntp-4.2.4p8-2.el6.x86_64
--> Running transaction check
---> Package ntpdate.x86_64 0:4.2.4p8-2.el6 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

===========================================================================================
 Package             Arch               Version                     Repository        Size
===========================================================================================
Installing:
 ntp                 x86_64             4.2.4p8-2.el6               base             445 k
Installing for dependencies:
 ntpdate             x86_64             4.2.4p8-2.el6               base              58 k

Transaction Summary
===========================================================================================
Install       2 Package(s)
Upgrade       0 Package(s)

Total download size: 503 k
Installed size: 1.2 M
Is this ok [y/N]: y
Downloading Packages:
(1/2): ntp-4.2.4p8-2.el6.x86_64.rpm                                 | 445 kB     00:00     
(2/2): ntpdate-4.2.4p8-2.el6.x86_64.rpm                             |  58 kB     00:00     
-------------------------------------------------------------------------------------------
Total                                                      567 kB/s | 503 kB     00:00     
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing     : ntpdate-4.2.4p8-2.el6.x86_64                                        1/2 
  Installing     : ntp-4.2.4p8-2.el6.x86_64                                            2/2 

Installed:
  ntp.x86_64 0:4.2.4p8-2.el6                                                               

Dependency Installed:
  ntpdate.x86_64 0:4.2.4p8-2.el6                                                           

Complete!

Mit nachfolgenden Befehlen kann überprüft werden, welche Inhalte mit den Paketen installiert wurden.

Paket ntp:

# rpm -qil ntp
Name        : ntp                          Relocations: (not relocatable)
Version     : 4.2.4p8                           Vendor: CentOS
Release     : 2.el6                         Build Date: Wed 25 Aug 2010 03:55:14 PM CEST
Install Date: Fri 05 Aug 2011 12:01:20 PM CEST      Build Host: c6b2.bsys.dev.centos.org
Group       : System Environment/Daemons    Source RPM: ntp-4.2.4p8-2.el6.src.rpm
Size        : 1224970                          License: (MIT and BSD and BSD with advertising) and GPLv2
Signature   : RSA/8, Sun 03 Jul 2011 06:48:05 AM CEST, Key ID 0946fca2c105b9de
Packager    : CentOS BuildSystem <http://bugs.centos.org>
URL         : http://www.ntp.org
Summary     : The NTP daemon and utilities
Description :
The Network Time Protocol (NTP) is used to synchronize a computer's
time with another reference time source. This package includes ntpd
(a daemon which continuously adjusts system time) and utilities used
to query and configure the ntpd daemon.

Perl scripts ntp-wait and ntptrace are in the ntp-perl package and
the ntpdate program is in the ntpdate package. The documentation is
in the ntp-doc package.
/etc/dhcp/dhclient.d
/etc/dhcp/dhclient.d/ntp.sh
/etc/ntp.conf
/etc/ntp/crypto
/etc/ntp/crypto/pw
/etc/rc.d/init.d/ntpd
/etc/sysconfig/ntpd
/usr/bin/ntpstat
/usr/sbin/ntp-keygen
/usr/sbin/ntpd
/usr/sbin/ntpdc
/usr/sbin/ntpq
/usr/sbin/ntptime
/usr/sbin/tickadj
/usr/share/doc/ntp-4.2.4p8
/usr/share/doc/ntp-4.2.4p8/COPYRIGHT
/usr/share/doc/ntp-4.2.4p8/ChangeLog
/usr/share/doc/ntp-4.2.4p8/NEWS
/usr/share/man/man5/ntp.conf.5.gz
/usr/share/man/man5/ntp_acc.5.gz
/usr/share/man/man5/ntp_auth.5.gz
/usr/share/man/man5/ntp_clock.5.gz
/usr/share/man/man5/ntp_misc.5.gz
/usr/share/man/man5/ntp_mon.5.gz
/usr/share/man/man8/ntp-keygen.8.gz
/usr/share/man/man8/ntpd.8.gz
/usr/share/man/man8/ntpdc.8.gz
/usr/share/man/man8/ntpq.8.gz
/usr/share/man/man8/ntpstat.8.gz
/usr/share/man/man8/ntptime.8.gz
/usr/share/man/man8/tickadj.8.gz
/var/lib/ntp
/var/lib/ntp/drift
/var/log/ntpstats

Paket ntpdate:

# rpm -qil ntpdate
Name        : ntpdate                      Relocations: (not relocatable)
Version     : 4.2.4p8                           Vendor: CentOS
Release     : 2.el6                         Build Date: Wed 25 Aug 2010 03:55:14 PM CEST
Install Date: Fri 05 Aug 2011 12:01:18 PM CEST      Build Host: c6b2.bsys.dev.centos.org
Group       : Applications/System           Source RPM: ntp-4.2.4p8-2.el6.src.rpm
Size        : 75889                            License: (MIT and BSD and BSD with advertising) and GPLv2
Signature   : RSA/8, Sun 03 Jul 2011 06:48:06 AM CEST, Key ID 0946fca2c105b9de
Packager    : CentOS BuildSystem <http://bugs.centos.org>
URL         : http://www.ntp.org
Summary     : Utility to set the date and time via NTP
Description :
ntpdate is a program for retrieving the date and time from
NTP servers.
/etc/ntp
/etc/ntp/keys
/etc/ntp/step-tickers
/etc/rc.d/init.d/ntpdate
/etc/sysconfig/ntpdate
/usr/sbin/ntpdate
/usr/share/man/man8/ntpdate.8.gz

Konfiguration

Um einen „Zeitserver“, welcher als Dienst/Deamon als Hintergrundprozess läuft, auch nach einem Neustart des Servers zur Verfügung zu haben, soll der Dienst/Daemon mit dem Server mit gestartet werden, was mit nachfolgendem Befehl realisiert werden kann:

# chkconfig ntpd on

Eine Überprüfung, ob beim Neustart des Server der ntpd-Dienst/Deamon wirklich mit gestartet wird, kann mit nachfolgendem Befehl erfolgen und sollte eine Anzeige, wie ebenfalls nachfolgend dargestellt ausgeben:

# chkconfig --list | grep ntpd
ntpd            0:off   1:off   2:on    3:on    4:on    5:on    6:off
ntpdate         0:off   1:off   2:off   3:off   4:off   5:off   6:off

/etc/ntp.conf

In der Konfigurationsdatei

  • /etc/ntp.conf

wird der ntpd-Dienst/Daemon konfiguriert.

Änderungen und persönliche Anpassungen sind mit einem voranstehenden Kommentar, welche wie nachfolgend dargestellt aussieht

# Tachtler
gekennzeichnet.

Hier die komplette Konfigurationsdatei /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
 
# Permit time synchronization with our time source, but do not
# permit the source to query or modify the service on this system.
restrict default kod nomodify notrap nopeer noquery
# Tachtler
# default: restrict -6 default kod nomodify notrap nopeer noquery
# restrict -6 default kod nomodify notrap nopeer noquery
 
# 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 
# Tachtler
# default: restrict -6 ::1
# restrict -6 ::1
 
# Hosts on local network are less restricted.
# Tachtler
# default: #restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
restrict 192.168.0.0 mask 255.255.255.0 kod nomodify notrap nopeer
restrict 192.168.1.0 mask 255.255.255.0 kod nomodify notrap nopeer
# Tachtler
#restrict 0.rhel.pool.ntp.org mask 255.255.255.255 kod nomodify notrap nopeer noquery
#restrict 1.rhel.pool.ntp.org mask 255.255.255.255 kod nomodify notrap nopeer noquery
#restrict 2.rhel.pool.ntp.org mask 255.255.255.255 kod nomodify notrap nopeer noquery
# Tachtler - near local servers
restrict 0.de.pool.ntp.org mask 255.255.255.255 kod nomodify notrap nopeer noquery
restrict 1.de.pool.ntp.org mask 255.255.255.255 kod nomodify notrap nopeer noquery
restrict 2.de.pool.ntp.org mask 255.255.255.255 kod nomodify notrap nopeer noquery
restrict 3.de.pool.ntp.org mask 255.255.255.255 kod nomodify notrap nopeer noquery
 
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
#server 0.rhel.pool.ntp.org
#server 1.rhel.pool.ntp.org
#server 2.rhel.pool.ntp.org
# Tachtler - near local servers
server 0.de.pool.ntp.org
server 1.de.pool.ntp.org
server 2.de.pool.ntp.org
server 3.de.pool.ntp.org
 
#broadcast 192.168.1.255 autokey        # broadcast server
#broadcastclient                        # broadcast client
#broadcast 224.0.1.1 autokey            # multicast server
#multicastclient 224.0.1.1              # multicast client
#manycastserver 239.255.254.254         # manycast server
#manycastclient 239.255.254.254 autokey # manycast client
 
# Undisciplined Local Clock. This is a fake driver intended for backup
# and when no outside source of synchronized time is available. 
# tachtler
# default: #server      127.127.1.0     # local clock
# default #fudge        127.127.1.0 stratum 10
server  127.127.1.0     # local clock
fudge   127.127.1.0 stratum 10
 
# Enable public key cryptography.
#crypto
 
includefile /etc/ntp/crypto/pw
 
# Key file containing the keys and key identifiers used when operating
# with symmetric key cryptography. 
keys /etc/ntp/keys
 
# Specify the key identifiers which are trusted.
#trustedkey 4 8 42
 
# Specify the key identifier to use with the ntpdc utility.
#requestkey 8
 
# Specify the key identifier to use with the ntpq utility.
#controlkey 8
 
# Enable writing of statistics records.
#statistics clockstats cryptostats loopstats peerstats
 
# Tachtler - less logging
logconfig=allsync +allclock

/etc/sysconfig/ntp

Da der Einsatz von IPv6 nicht durchgeführt werden soll, kann mit nachfolgenden Änderungen die Unterstützung für IPv6 deaktiviert werden und ein „lauschen“ auf ggf. definierten IPv6-Adressen findet nicht statt:

VOR - der Ergänzung, mit IPv6-Unterstützung:

# Drop root to id 'ntp:ntp' by default.
OPTIONS="-u ntp:ntp -p /var/run/ntpd.pid -g"

NACH - der Ergänzung, ohne IPv6-Unterstützung:

# Drop root to id 'ntp:ntp' by default.
OPTIONS="-4 -u ntp:ntp -p /var/run/ntpd.pid -g"

:!: HINWEIS - Als einzige Änderung wird hier die Zeichenfolge -4 nach der Bezeichnung OPTIONS= ergänzt!!!

:!: WICHTIG - Diese Änderung ist NICHT ausreichend um IPv6 zu deaktivieren!!!

Nachfolgende Beschreibung zur Deaktivierung von IPv6 unter CentOS muss durchgeführt werden:

iptables Regel

Damit der „Zeitserver“ auch erreichbar ist und nicht die Weitergab der Zeitinformationen via NTP vom Paketfilter iptables blockiert wird, muss nachfolgende Regel zum iptables-Regelwerk hinzugefügt werden.

Um die aktuellen iptables-Regeln erweitern zu können, sollten diese erst einmal aufgelistet werden, was mit nachfolgendem Befehl durchgeführt werden kann:

# iptables -L -nv --line-numbers
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1      141 10524 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED 
2        0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           
3        0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0           
4        0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22 
5        1    32 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1        0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 

Chain OUTPUT (policy ACCEPT 79 packets, 9140 bytes)
num   pkts bytes target     prot opt in     out     source               destination

Nachfolgender Befehl, fügt folgende iptables-Regel dem iptables-Regelwerk nach der Position 4 hinzu, ohne das der Paketfilter angehalten werden muss:

  • -A INPUT -p udp --dport 123 -j ACCEPT

und hier der Befehl:

# iptables -I INPUT 5 -p udp --dport 123 -j ACCEPT

Ein erneute Abfrage des iptables-Regelwerts, sollte dann nachfolgend dargestellte Ausgabe ergeben, was mit folgendem Befehl durchgeführt werden kann:

# iptables -L -nv --line-numbers
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1      435 32812 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED 
2        0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           
3        0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0           
4        0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22 
5        0     0 ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0           udp dpt:123 
6        4   128 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1        0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 

Chain OUTPUT (policy ACCEPT 12 packets, 1320 bytes)
num   pkts bytes target     prot opt in     out     source               destination

Die neue Zeile ist an Position 5 zu sehen, hier nachfolgend zur Verdeutlichung noch einmal dargestellt (nur relevanter Ausschnitt):

...
5        0     0 ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0           udp dpt:123
...

Um diese iptables-Regel dauerhaft, auch nach einem Neustart des Server, weiterhin im iptables-Regelwerk zu speichern, muss nachfolgend dargestellter Befehl abschließend noch ausgeführt werden:

# service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[  OK  ]

Zeitserver starten

Um einen „Zeitserver“ zu starten muss der ntpd-Dienst/Deamon mit nachfolgendem Befehl gestartete werden:

# service ntpd start
Starting ntpd:                                             [  OK  ]

Ob der „Zeitserver“, sprich der ntpd-Dienst/Deamon auch tatsächlich als Hintergrundprozess läuft, kann mit nachfolgendem Befehl überprüft werden (Es sollte eine Ausgabe wie nachfolgend dargestellt, erfolgen - es kommt auf die zweite Zeile an!):

# ps auxwwwf | grep ntpd
root      2352  0.0  0.1 103148   824 pts/0    S+   13:12   0:00                      \_ grep ntpd
ntp       2343  0.0  0.3  30048  1544 ?        Ss   13:10   0:00 ntpd -u ntp:ntp -p /var/run/ntpd.pid -g

Zeitserver Status

Um zu überprüfen in wie weit der offset bzw. die Abweichung zur aktuell gültigen Zeit ist, kann nachfolgende Abfrage genutzt werden:

# ntpq -np4
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
+83.169.43.165   192.53.103.108   2 u   12   64   37   39.836  4012839  30.211
+79.143.177.46   129.69.1.153     2 u   19   64   37   29.247  4012857  23.719
*188.40.33.81    131.234.137.24   2 u   20   64   37   34.034  4012856  23.537
+141.30.228.4    85.214.23.162    3 u   16   64   37   52.294  4012856  24.775
+178.63.73.246   129.70.132.33    3 u   15   64   37   34.696  4012860  25.941
+129.70.132.32   129.70.130.70    2 u   19   64   37   68.668  4012859  23.887
 127.127.1.0     .LOCL.          10 l   21   64   37    0.000    0.000   0.000

Zeitserver optimieren

Falls der offset, wie in obigen Beispiel sehr hoch ist, würde eine Synchronisierung rein durch den ntpd-Dienst/Deamon relativ lange dauern, die kann durch nachfolgende Befehle kurzum bereinigt werden, damit der offset relativ gering ist, zum Teil auch je nach Bandbreite der zur Verfügung stehenden Internet Anbindung.

Zuerst muss der ntpd-Dienst/Deamon mit nachfolgendem Befehl gestoppt werden:

# service ntpd stop
Shutting down ntpd:                                        [  OK  ]

Anschließend wird die Zeit mit einem der unter dem Befehl nbtpq -np aufgelisteten Zeitserver synchronisiert, was mit nachfolgendem Befehl realsiert werden kann:

# ntpdate 131.188.3.220
 5 Aug 15:02:07 ntpdate[2517]: adjust time server 131.188.3.220 offset 0.145769 sec
Anschließend wird der ntpd-Dienst/Deamon mit nachfolgendem Befehl wieder gestartet:
# service ntpd start
Starting ntpd:                                             [  OK  ]

:!: HINWEIS - Warten Sie ca. 10 Minuten, bevor nachfolgende Abfrage durchgeführt wird !!!

Abschließend wir der Befehl zu überprüfen, in wie weit der offset bzw. die Abweichung zur aktuell gültigen Zeit ist, noch einmal ausgeführt:

# ntpq -np4
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
+46.4.54.78      129.69.1.153     2 u   19   64  377   36.111   28.293  24.654
*131.234.137.24  .DCF.            1 u   12   64  377   43.241   24.100  32.154
+141.40.103.103  129.69.1.153     2 u   11   64  377   46.183   25.988  30.931
+78.47.136.228   141.24.7.240     2 u   10   64  377   32.121   25.555  30.914
+95.89.157.176   192.168.100.122  2 u   13   64  377   61.341   28.482  35.455
+213.95.21.43    131.76.36.210    2 u    8   64  377   31.485   26.107  27.892
+213.9.73.106    134.34.3.18      2 u    7   64  377   39.795   26.240  25.152
 127.127.1.0     .LOCL.          10 l    3   64  377    0.000    0.000   0.000

Zeitserver und NetworkManager

Falls der NetworkManager auf dem Server mit dem „Zeitserver“ zum Einsatz kommt, kann es mit der Standard-Implementierung des NetworkManagers zu Problemen kommen. In diesem Falls ist in der Konfigurationsdatei:

  • /etc/sysconfig/network

nachfolgender Eintrag zu ergänzen (nur relevanter Ausschnitt):

...
NETWORKWAIT=1

Cookies helfen bei der Bereitstellung von Inhalten. Durch die Nutzung dieser Seiten erklären Sie sich damit einverstanden, dass Cookies auf Ihrem Rechner gespeichert werden. Weitere Information
tachtler/ntp_centos_6.txt · Zuletzt geändert: 2014/09/11 10:05 von klaus