Benutzer-Werkzeuge

Webseiten-Werkzeuge


tachtler:time_protocol_centos_7

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
tachtler:time_protocol_centos_7 [2014/09/11 16:46] klaustachtler:time_protocol_centos_7 [2014/10/16 10:49] (aktuell) – [Time Protocol CentOS 7] klaus
Zeile 11: Zeile 11:
 :!: **HINWEIS ** - Nachfolgend soll die Installation eines "Zeitservers" für eine **privates Netzwerk** beschrieben werden! :!: **HINWEIS ** - Nachfolgend soll die Installation eines "Zeitservers" für eine **privates Netzwerk** beschrieben werden!
  
-:!: **HINWEIS** - **Der Einsatz von IPv6 soll __NICHT__ genutzt werden!!!**+:!: **HINWEIS** - **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'': 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'':
Zeile 32: Zeile 32:
 <code> <code>
 # yum install xinetd # yum install xinetd
-Loaded plugins: fastestmirror, priorities+Loaded plugins: fastestmirror
 base                                                     | 3.6 kB     00:00      base                                                     | 3.6 kB     00:00     
 epel                                                     | 4.4 kB     00:00      epel                                                     | 4.4 kB     00:00     
Zeile 38: Zeile 38:
 updates                                                  | 3.4 kB     00:00      updates                                                  | 3.4 kB     00:00     
 Loading mirror speeds from cached hostfile Loading mirror speeds from cached hostfile
-48 packages excluded due to repository priority protections 
 Resolving Dependencies Resolving Dependencies
 --> Running transaction check --> Running transaction check
Zeile 133: Zeile 132:
 <code> <code>
 # yum install rdate # yum install rdate
-Loaded plugins: fastestmirror, priorities+Loaded plugins: fastestmirror
 Loading mirror speeds from cached hostfile Loading mirror speeds from cached hostfile
-48 packages excluded due to repository priority protections 
 Resolving Dependencies Resolving Dependencies
 --> Running transaction check --> Running transaction check
Zeile 204: Zeile 202:
 ===== Konfiguration ===== ===== 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:+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 überprüft werden kann:
 <code> <code>
 +# systemctl is-enabled xinetd
 +enabled
 +</code>
 +* //Die Antwort sollte, wie dargestellt, **''enabled''** / eingeschaltet sein!//
  
 +:!: **HINWEIS** - Falls die Antwort ''disabled'' sein sollte, kann nachfolgender Befehl dies beheben.
 +<code>
 +# systemctl enable xinetd
 +ln -s '/usr/lib/systemd/system/xinetd.service' '/etc/systemd/system/multi-user.target.wants/xinetd.service'
 </code> </code>
  
-Eine Überprüfung, ob beim Neustart des Server der ''xinetd''-Dienst/Deamon wirklich mit gestartet wirdkann mit nachfolgendem Befehl erfolgen und sollte eine Anzeige, wie ebenfalls nachfolgend dargestellt ausgeben:+Der Dienst/Deamon ''xinetd.service'' sollte aktuelle __nicht__ gestartet seinwas mit nachfolgendem Befehl überprüft werden kann:
 <code> <code>
 +# systemctl status xinetd
 +xinetd.service - Xinetd A Powerful Replacement For Inetd
 +   Loaded: loaded (/usr/lib/systemd/system/xinetd.service; enabled)
 +   Active: inactive (dead)
 +
 </code> </code>
 +
 +:!: **HINWEIS** - Ein Start des Dienstes/Deamons ''xinetd.service'', sollte erst nach nachfolgender Konfiguration erfolgen!
  
 ==== /etc/xinetd.d ==== ==== /etc/xinetd.d ====
Zeile 225: Zeile 238:
 <code> <code>
 # ls -l /etc/xinetd.d # ls -l /etc/xinetd.d
 +total 44
 +-rw-------. 1 root root 1157 Jun  9 20:55 chargen-dgram
 +-rw-------. 1 root root 1159 Jun  9 20:55 chargen-stream
 +-rw-------. 1 root root 1157 Jun  9 20:55 daytime-dgram
 +-rw-------. 1 root root 1159 Jun  9 20:55 daytime-stream
 +-rw-------. 1 root root 1157 Jun  9 20:55 discard-dgram
 +-rw-------. 1 root root 1159 Jun  9 20:55 discard-stream
 +-rw-------. 1 root root 1148 Jun  9 20:55 echo-dgram
 +-rw-------. 1 root root 1150 Jun  9 20:55 echo-stream
 +-rw-------. 1 root root 1212 Jun  9 20:55 tcpmux-server
 +-rw-------. 1 root root 1149 Jun  9 20:55 time-dgram
 +-rw-------. 1 root root 1150 Jun  9 20:55 time-stream
 </code> </code>
 sind die beiden Konfigurationsdateien sind die beiden Konfigurationsdateien
Zeile 236: Zeile 261:
 </code> </code>
 gekennzeichnet. gekennzeichnet.
 +
 +=== /etc/xinetd.d/time-dgram ===
 +
 +Nachfolgend dargestellte Änderungen sollten an der Konfigurationsdatei durchgeführt werden (**komplette Konfigurationsdatei**):
 +<code ini>
 +# This is the configuration for the udp/dgram time service. 
 +
 +service time
 +{
 +# This is for quick on or off of the service
 +# Tachtler
 +# default:      disable         = yes
 +        disable         = no
 +
 +# The next attributes are mandatory for all services
 +        id              = time-dgram
 +        type            = INTERNAL
 +        wait            = yes
 +        socket_type     = dgram
 +#       protocol        =  socket type is usually enough
 +
 +# External services must fill out the following
 +#       user            =
 +#       group           =
 +#       server          =
 +#       server_args     =
 +
 +# External services not listed in /etc/services must fill out the next one
 +#       port            =
 +
 +# RPC based services must fill out these
 +#       rpc_version     =
 +#       rpc_number      =
 +
 +# Logging options
 +#       log_type        =
 +#       log_on_success  =
 +#       log_on_failure  =
 +
 +# Networking options
 +# Tachtler
 +# default: #    flags           =
 +        flags           = IPv4
 +#       bind            =
 +#       redirect        =
 +#       v6only          = 
 +
 +# Access restrictions
 +#       only_from       =
 +#       no_access       =
 +#       access_times    =
 +#       cps             = 50 10
 +#       instances       = UNLIMITED
 +#       per_source      = UNLIMITED
 +#       max_load        = 0
 +#       deny_time       = 120
 +#       mdns            = yes 
 +
 +# Environmental options
 +#       env             =
 +#       passenv         =
 +#       nice            = 0
 +#       umask           = 022
 +#       groups          = yes
 +#       rlimit_as       =
 +#       rlimit_cpu      =
 +#       rlimit_data     =
 +#       rlimit_rss      =
 +#       rlimit_stack    =
 +
 +# Banner options. (Banners aren't normally used)
 +#       banner          =
 +#       banner_success  =
 +#       banner_fail     =
 +}
 +
 +</code>
 +
 +=== /etc/xinetd.d/time-stream ===
 +
 +Nachfolgend dargestellte Änderungen sollten an der Konfigurationsdatei durchgeführt werden (**komplette Konfigurationsdatei**):
 +<code ini>
 +# This is the configuration for the tcp/stream time service.
 +
 +service time
 +{
 +# This is for quick on or off of the service
 +# Tachtler
 +# default:      disable         = yes
 +        disable         = no
 +
 +# The next attributes are mandatory for all services
 +        id              = time-stream
 +        type            = INTERNAL
 +        wait            = no
 +        socket_type     = stream
 +#       protocol        =  socket type is usually enough
 +
 +# External services must fill out the following
 +#       user            =
 +#       group           =
 +#       server          =
 +#       server_args     =
 +
 +# External services not listed in /etc/services must fill out the next one
 +#       port            =
 +
 +# RPC based services must fill out these
 +#       rpc_version     =
 +#       rpc_number      =
 +
 +# Logging options
 +#       log_type        =
 +#       log_on_success  =
 +#       log_on_failure  =
 +
 +# Networking options
 +# Tachtler
 +# default: #    flags           =
 +        flags           = IPv4
 +#       bind            = 
 +#       redirect        =
 +#       v6only          = 
 +
 +# Access restrictions
 +#       only_from       =
 +#       no_access       =
 +#       access_times    =
 +#       cps             = 50 10
 +#       instances       = UNLIMITED
 +#       per_source      = UNLIMITED
 +#       max_load        = 0
 +#       deny_time       = 120
 +#       mdns            = yes 
 +
 +# Environmental options
 +#       env             =
 +#       passenv         =
 +#       nice            = 0
 +#       umask           = 022
 +#       groups          = yes
 +#       rlimit_as       =
 +#       rlimit_cpu      =
 +#       rlimit_data     =
 +#       rlimit_rss      =
 +#       rlimit_stack    =
 +
 +# Banner options. (Banners aren't normally used)
 +#       banner          =
 +#       banner_success  =
 +#       banner_fail     =
 +}
 +
 +</code>
 +
 +==== iptables Regel =====
 +
 +:!: **WICHTIG** - **Nur relevant beim Einsatz von ''iptables'' als Firewall!**
 +
 +Damit der "Zeitserver" auch erreichbar ist und nicht die Weitergab der Zeitinformationen via Time Protocol 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:
 +<code>
 +# iptables -L -nv --line-numbers
 +Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 +num   pkts bytes target     prot opt in     out     source               destination
 +1     2420  321K ACCEPT     all  --  *      *       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
 +3        0     0 ACCEPT     all  --  lo           0.0.0.0/           0.0.0.0/0
 +4        1    60 ACCEPT     tcp  --  *      *       0.0.0.0/           0.0.0.0/          state NEW tcp dpt:22
 +5      106  8056 ACCEPT     udp  --  *      *       0.0.0.0/           0.0.0.0/          udp dpt:123
 +6       28   896 REJECT     all  --  *      *       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/          reject-with icmp-host-prohibited
 +
 +Chain OUTPUT (policy ACCEPT 2246 packets, 823K bytes)
 +num   pkts bytes target     prot opt in     out     source               destination
 +</code>
 +
 +Nachfolgende Befehle, fügen folgende ''iptables''-Regeln dem ''iptables''-Regelwerk nach der **Position 4** hinzu, ohne das der Paketfilter angehalten werden muss:
 +  * <code>-A INPUT -p tcp --dport 37 -j ACCEPT</code>
 +  * <code>-A INPUT -p udp --dport 37 -j ACCEPT</code>
 +und hier die Befehle:
 +<code>
 +# iptables -I INPUT 5 -p tcp --dport 37 -j ACCEPT
 +# iptables -I INPUT 5 -p udp --dport 37 -j ACCEPT
 +</code>
 +
 +Ein erneute Abfrage des ''iptables''-Regelwerts, sollte dann nachfolgend dargestellte Ausgabe ergeben, was mit folgendem Befehl durchgeführt werden kann:
 +<code>
 +# iptables -L -nv --line-numbers
 +Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 +num   pkts bytes target     prot opt in     out     source               destination
 +1     2571  334K ACCEPT     all  --  *      *       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
 +3        0     0 ACCEPT     all  --  lo           0.0.0.0/           0.0.0.0/0
 +4        1    60 ACCEPT     tcp  --  *      *       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/          udp dpt:37
 +6        0     0 ACCEPT     tcp  --  *      *       0.0.0.0/           0.0.0.0/          tcp dpt:37
 +7      115  8740 ACCEPT     udp  --  *      *       0.0.0.0/           0.0.0.0/          udp dpt:123
 +8       31   992 REJECT     all  --  *      *       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/          reject-with icmp-host-prohibited
 +
 +Chain OUTPUT (policy ACCEPT 6 packets, 800 bytes)
 +num   pkts bytes target     prot opt in     out     source               destination
 +</code>
 +
 +Die neuen Zeilen sind an **Position 5** und **Postition 6** zu sehen, hier nachfolgend zur Verdeutlichung noch einmal dargestellt (**nur relevanter Ausschnitt**):
 +<code>
 +...
 +5        0     0 ACCEPT     udp  --  *      *       0.0.0.0/           0.0.0.0/          udp dpt:37
 +6        0     0 ACCEPT     tcp  --  *      *       0.0.0.0/           0.0.0.0/          tcp dpt:37
 +...
 +</code>
 +
 +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:
 +<code>
 +# service iptables save
 +iptables: Saving firewall rules to /etc/sysconfig/iptables: OK  ]
 +</code>
 +
 +===== Zeitserver starten =====
 +
 +Um einen "Zeitserver" zu starten muss der ''xinetd''-Dienst/Deamon mit nachfolgendem Befehl gestartete werden:
 +<code>
 +# systemctl start xinetd
 +</code>
 +
 +Ob der "Zeitserver", sprich der ''xinetd''-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!):
 +<code>
 +# ps auxwf | grep xinetd
 +root     25944  0.0  0.0 112640   976 pts/0    S+   17:01   0:00          \_ grep --color=auto xinetd
 +root     25942  0.0  0.0  29768  1008 ?        Ss   17:01   0:00 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid
 +</code>
 +bzw. nachfolgendem Befehl überprüft werden:
 +
 +<code>
 +# systemctl status xinetd
 +xinetd.service - Xinetd A Powerful Replacement For Inetd
 +   Loaded: loaded (/usr/lib/systemd/system/xinetd.service; enabled)
 +   Active: active (running) since Thu 2014-09-11 17:01:40 CEST; 2min 48s ago
 +  Process: 25941 ExecStart=/usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid $EXTRAOPTIONS (code=exited,
 +status=0/SUCCESS)
 + Main PID: 25942 (xinetd)
 +   CGroup: /system.slice/xinetd.service
 +           └─25942 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid
 +
 +Sep 11 17:01:40 centos7.localdomain xinetd[25942]: removing daytime
 +Sep 11 17:01:40 centos7.localdomain xinetd[25942]: removing daytime
 +Sep 11 17:01:40 centos7.localdomain xinetd[25942]: removing discard
 +Sep 11 17:01:40 centos7.localdomain xinetd[25942]: removing discard
 +Sep 11 17:01:40 centos7.localdomain xinetd[25942]: removing echo
 +Sep 11 17:01:40 centos7.localdomain xinetd[25942]: removing echo
 +Sep 11 17:01:40 centos7.localdomain xinetd[25942]: removing tcpmux
 +Sep 11 17:01:40 centos7.localdomain xinetd[25942]: xinetd Version 2.3.15 started with libwrap loadavg labele...
 +Sep 11 17:01:40 centos7.localdomain xinetd[25942]: Started working: 2 available services
 +Sep 11 17:01:40 centos7.localdomain systemd[1]: Started Xinetd A Powerful Replacement For Inetd.
 +</code>
 +
 +Auf welchen Ports der ''chronyd''-Dienst/Deamon auch tatsächlich als Hintergrundprozess lauscht, kann mit nachfolgendem Befehl überprüft werden:
 +<code>
 +# netstat -tulpen | grep xinetd
 +tcp        0      0 0.0.0.0:37              0.0.0.0:   LISTEN      0          1152455814 25942/xinetd        
 +udp        0      0 0.0.0.0:37              0.0.0.0:               0          1152455813 25942/xinetd
 +</code>
 +
 +:!: **HINWEIS** - //Falls der Befehl ''netstat'' nicht zur Verfügung stehen sollte, muss das ''rpm''-Paket **''net-tools''** installiert werden.//
 +
 +Eine weitere Überprüfung, ob auch die entsprechenden //Services// des ''inetd''-Dienstes/Daemon gestartete werden, kann mit nachfolgendem Befehl herausgefunden werden:
 +<code>
 +# chkconfig --list | tail -n 12
 +
 +Note: This output shows SysV services only and does not include native
 +      systemd services. SysV configuration data might be overridden by native
 +      systemd configuration.
 +
 +      If you want to list systemd services use 'systemctl list-unit-files'.
 +      To see services enabled on particular target use
 +      'systemctl list-dependencies [target]'.
 +
 +xinetd based services:
 + chargen-dgram: off
 + chargen-stream: off
 + daytime-dgram: off
 + daytime-stream: off
 + discard-dgram: off
 + discard-stream: off
 + echo-dgram:    off
 + echo-stream:    off
 + tcpmux-server: off
 + time-dgram:    on
 + time-stream:    on
 +</code>
 +
 +===== Zeitserver überprüfen =====
 +
 +Unter Zuhilfenahme des Befehls **''rdate''**, kann überprüft werden, ob der "Zeitserver" zur Auslieferung der Zeit im Stande ist.
 +
 +Nachfolgende Befehle, können auf dem Server auf dem der "Zeitserver" läuft, oder auf einem sich im Netzwerk befindlichen Server durchgeführt werden:
 +
 +Befehl zu Abfrage gegen den Zeitserver via **TCP**:
 +<code>
 +# rdate 192.168.0.20
 +rdate: [192.168.0.20] Thu Sep 11 17:12:07 2014
 +
 +</code>
 +
 +Befehl zu Abfrage gegen den Zeitserver via **UDP**:
 +<code>
 +# rdate -u 192.168.0.20
 +rdate: [192.168.0.20] Thu Sep 11 17:12:24 2014
 +
 +</code>
  
tachtler/time_protocol_centos_7.1410446793.txt.gz · Zuletzt geändert: 2014/09/11 16:46 von klaus