Inhaltsverzeichnis
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:
ntpdate
- ist ebenfalls imbase
-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