Was, schon so spät? Stimmt das auch?
Die Zeit spielt in einem Netzwerk eine mitunter sehr wichtige Rolle. Der Rechner nimmt einen gewissen „drift“, also Zeitunterschied zwischen den Systemen im Netz hin, aber wenn es ihm zu bunt wird mit den Nachrichten aus der „Zukunft“, machen manche Dienste die „Schotten“ dicht. Richtig pingelig sind z.B. VoIP Dienste und beschäftigen alleine dafür schon eigene „Aufpasser“, Kerberos stellt Tickets aus die nur kurze Laufzeiten haben, stimmt da die Synchronität nicht, werden Anmeldungen unmöglich, usw…
Dem beugt NTP (Network Time Protokoll) vor, indem es dafür sorgt, daß alle im Netz die gleiche Zeit sprechen.
Am Beginn der Installation haben wir unseren Rechner auf unsere Zeitzone eingestellt, Uhrzeit und Datum werden synchronisiert.
gateway: ~ #timedatectl status zeigt den aktuellen Zustand
Local time: Do 2019-10-24 11:05:19 CEST
Universal time: Do 2019-10-24 09:05:19 UTC
RTC time: Do 2019-10-24 09:05:19
Time zone: Europe/Berlin (CEST, +0200)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
gateway: ~ #date nur Datum und Uhrzeit
Do 24. Okt 11:08:01 CEST 2019
gateway: ~ #hwclock die zweite Uhr im Rechner, auf dem Mainbord (hardware)
Diese Uhrzeit sollte sehr nah an identisch sein, sonst sollte man das nachjustieren:
gateway: ~ #hwclock –systohc –update-drift lasse –update-drift weg, wenn das fehlschlägt….siehe man hwclock, allerdings darf das auch langsam gehen, damit die Prozesse nicht verärgert werden.
Wo auch immer unser Rechner seine Zeit herholt, wir übernehmen jetzt hier das Ruder und installieren einen Server-Dienst für ntp.
Debian kommt mit dem Systemd eigenen systemd-timesync daher und holt seine Zeit zunächst mal aus einem voreingestellten Pool, dieser ist in /etc/systemd/timesyncd.conf definiert. Dies geht aber nur als Client, wollen wir einen eigenen Zeitserver bereitstellen, müssen wir dies ändern indem wir z.B. ntp oder chrony installieren. Beide deaktivieren bei der Installation automatisch den systemd-timesync Dienst, denn es kann nur einen im System geben. Sowohl ntp, als auch chrony können als Server und Client fungieren.
Wir nehmen mal an, der Plasterouter kann dem Heimnetz die Systemzeit zur Verfügung stellen und tut das auch. Wir können das in den Systemeinstellungen zu Datum und Uhrzeit unseres Verwaltungsrechners prüfen, in dem wir dort die IP unseres Plasterouters eintragen und schauen ob er sich die Zeit holt, ggfs. auch mittels vorherigem manuellem verstellen der Uhrzeit.
Macht er das nicht, könnte man im Webadmin des Plasterouters nach einer Option “ …als Zeitserver im Heimnetz bereitstellen“ suchen und aktivieren.
Ansonsten machen wir mit anderen Zeitservern im Internet nachher weiter.
Schauen wir uns zunächst ntp an:
gateway: ~ #apt install ntp
….
gateway: ~ #nano /etc/ntp.conf bearbeiten wir die Konfig
# You do need to talk to an NTP server or two (or three). #server ntp.your-provider.example # pool.ntp.org maps to about 1000 low-stratum NTP servers. Your server will # pick a different set every time it starts up. Please consider joining the # pool: <http://www.pool.ntp.org/join.html> #pool 0.debian.pool.ntp.org iburst #pool 1.debian.pool.ntp.org iburst #pool 2.debian.pool.ntp.org iburst #pool 3.debian.pool.ntp.org iburst Kommentiert weil unser Plasterouter reicht uns, wenn nicht, lassen wir es wie es ist, bedenken aber auch ein join... server [IP des Plasterouters] # Access control configuration; see /usr/share/doc/ntp-doc/html/accopt.html for # details. The web page <http://support.ntp.org/bin/view/Support/AccessRestrictions> # might also be helpful. # # Note that "restrict" applies to both servers and clients, so a configuration # that might be intended to block requests from certain clients could also end # up blocking replies from your own upstream servers. # By default, exchange time with everybody, but don't allow configuration. restrict -4 default kod notrap nomodify nopeer noquery limited #restrict -6 default kod notrap nomodify nopeer noquery limited brauchen wir nicht, IPv6 # Local users may interrogate the ntp server more closely. restrict 127.0.0.1 restrict 10.0.0.1 mask 255.255.255.0 nomodify notrap nopeer restrict 10.0.1.1 mask 255.255.255.0 nomodify notrap nopeer #restrict ::1 können wir nicht, IPv6 ;-) # Needed for adding pool entries restrict source notrap nomodify noquery Pool oder Plasterouter? Bei Plasterouter kann eine Raute davor... # Clients from this (example!) subnet have unlimited access, but only if # cryptographically authenticated. #restrict 192.168.123.0 mask 255.255.255.0 notrust # If you want to provide time to your local subnet, change the next line. # (Again, the address is an example only.) #broadcast 192.168.123.255 broadcast 10.0.0.255 bieten wir die Zeit an.... broadcast 10.0.1.255 auf den schon bekannten "Rundrufkanälen"... speichern und schliessen
gateway: ~ #systemctl enable ntp NTP steht auch nach Neustart wieder auf
gateway: ~ #systemctl restart ntp
gateway: ~ #ntpq -p zeigt uns jetzt was läuft
gateway: ~ # ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
plasterouter.x.box 195.171.43.10 2 u 9 64 1 7.961 1.168 0.000
10.0.0.255 .BCST. 16 B - 64 0 0.000 0.000 0.000
10.0.1.255 .BCST. 16 B - 64 0 0.000 0.000 0.000
Analog dazu kann auch chrony installiert werden, wer schonmal mit Fedora in Kontakt war, wird chrony kennen.
Vorher muss, sofern bereits installiert, ntp natürlich gestoppt und deaktiviert werden:
systemctl stop ntp
systemctl disable ntp
Installiert wird wie gewohnt mit apt install chrony, die Konfiguration liegt unter /etc/chrony/chrony.conf.
Start, Stop, Restart und aktivieren wie gewohnt mit
systemctl start/stop/restart/status/enable/disable chrony
Die Funktion wird etwas ausführlicher mit:
gateway: ~ # chronyc sources -v
210 Number of sources = 1
.-- Source mode '^' = server, '=' = peer, '#' = local clock.
/ .- Source state '*' = current synced, '+' = combined , '-' = not combined,
| / '?' = unreachable, 'x' = time may be in error, '~' = time too variable.
|| .- xxxx [ yyyy ] +/- zzzz
|| Reachability register (octal) -. | xxxx = adjusted offset,
|| Log2(Polling interval) --. | | yyyy = measured offset,
|| \ | | zzzz = estimated error.
|| | | \
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^* plaste.router 4 6 377 55 -13us[ -27us] +/- 14ms
Damit wird unser Heimnetz mit einer Zeit versorgt, den künftigen Clients geben wir diese Information im nächsten Schritt via DHCP weiter, was allerdings nicht heisst, daß unsere Clients das auch annehmen. Deshalb haben wir zunächst die Zeitsynchronisation in der Rulesdatei auch für die Clients im Heimnetz via Internet freigegeben. Dies werden wir später aber nochmal genauer betrachten, denn wir wollen ja Kontrolle übernehmen.
Unsere Shorewall kann auch umbiegen und maskieren, so daß ein Client, dem wir seine voreingestellten Zeitserver nicht wegnehmen können weil wir keinen Zugriff auf sein System haben, zwar weiterhin seine Zeitserver anfragt, die Antworten aber tatsächlich von unserem bekommt.
next> DHCP