2024-07-15
Aus vielen Gründen (u.a. HTTPS) sollten alle Rechner in einem Netzwerk die aktuelle Zeit kennen. Sinnvollerweise verteilt man sie per Netzwerk mit dem NTP - network time protocol. Bei uns synchronisiert sich die OPNsense-Firewall über das Internet und stellt die Zeitinformation als Service zur Verfügung. Die restlichen Rechner (Clients) holen sich diese Information selbständig.
Die Clients benötigen dazu einen NTP-Client, die Firewall einen NTP-Server.
Ich empfehle, die Firewall extra für diesen Zweck auch über ntp.unsereschuldomain.de im lokalen DNS aufzulösen. Kostet nichts, und erlaubt jederzeit eine Trennung der Dienste. Auf der Firewall muss ein ntp-Dienst laufen - i.d.R. ntpd. Dort kann man die Interfaces (all) konfigurieren und insbesondere die von der Firewall selbst zu benutzenden Server konfigurieren - oder belassen.
Man kann den lokalen NTP-Server zwar per DHCP bekannt machen. Ich habe aber noch nicht herausgefunden, welche Clients das auch nutzen können. Dass die Information wirklich übertragen wird erkennt man mit
sudo nmap --script broadcast-dhcp-discover
Win10-Clients haben einen Client eingebaut, dieser kontaktiert standardmäßig einen NTP-Server im Internet. Über die Datum- und Zeiteinstellungen kann man den Server umstellen und z.B. die Firewall angeben. Elegant ist die Adresse ntp.unsereschuldomain.de, da man den Dienst später auf eine andere Hardware legen kann, ohne die Rechner anfassen zu müssen.
Linux-Clients mit systemd enthalten seit einigen
Jahren einen Client timesyncd, der über
/etc/systemd/timesyncd.conf
und der Einstellung
NTP=ntp.unsereschuldomain.de konfiguriert werden kann.
Nur wirklich alte Linux-Clients benötigen z.B. eine passend konfigurierte ntpd-Installation oder einen täglichen Aufruf von ntpdate.
Andere Clients: Wer einerseits die ntp-Einstellung
an einem Gerät nicht beeinflussen kann (z.B. Prowise-Boards) und
andererseits die NTP-Ports nicht freigeben will, muss die Zugriffe
umleiten: Solche Geräte werden einen Zeitserver per DNS auflösen lassen.
Diesen findet man im Logfile des DNS-Servers und kann ihn meist
gefahrlos im lokalen DNS fälschen. Für bspw. time.android.com liefert
man dann einfach die interne Firewall-IP-Adresse. Außerdem kann man den
ganzen Pool an NTP-Servern, die man über xyz.pool.ntp.org erreichen
kann, umleiten, indem man den DNS-Server anweist alle Domänen
*.ntp.org
mit der internen Firewalladresse aufzulösen. In
dnsmasq z.B. mit der Zeile address=/ntp.org/10.10.0.254/
.
It's tricky