Repository navigation
Description
Derzeit werden die DNS-Einträge (sowohl "Vorwärts" als auch Reverse) im Active-Directories vom Skript dhcpd-update-samba-dns.py im Rahmes eines DHCP-Leases gesetzt. Dies funktioniert allerdings nur, wenn der entsprechende Hostname mit der zugehörigen MAC-Adresse dem DHCP-Server bekannt ist. Daher werden in der devices.csv ja auch die MAC-Adressen erfasst.
Hat ein Rechner aber mehrere Netzwerkkarten (und damit MAC-Adressen), dann wird die Identifizierung eines Endgerätes schwierig. Doppelte Rechnerführung in der devices.csv sind da eine Lösung (allerdings kann der Rechnername nicht doppelt verwendet werden). Allerdings wird das schnell kompliziert, wenn Dockingstationen mit eigenen MAC-Adressen und Netzwerksegmentierung via VLANs ins Spiel kommen.
Wir verwenden bei uns an der Schule Ansible für die Installation und Konfiguration der Endgeräte. Da wäre uns die "momentante" IP-Adresse des Geräts eigentlich egal. Wichtig wäre, dass wir den Rechner unter seinem Namen erreichen können.
Die MAC-basierte Namenszuordnung bietet natürlich ein gewisses Maß an Sicherheit, wobei dies dank MAC-Spoofing nur eine scheinbare Sicherheit ist.
Folgender Änderungsvorschlag:
-
/etc/dhcp/events.conf
statt nur host-decl-name (das ist der Hostname basierend auf der MAC-Adresse) übergibt man zusätzlich
pick-first-value(option fqdn.hostname, option host-name) (das sind die vom Client übermittelten Hostnamen) an das Skript dhcpd-update-samba-dns.py -
/usr/lib/linuxmuster/dhcpd-update-samba-dns.py
Hat man kenen "host-decl-name" bekommen und statt dessen einen "Wunschnamen" vom Client, dann muss man checken, ob dieser akzeptiert werden kann. Da fallen mir jetzt zwei Check-Möglichkeiten ein:- Das Skript ermittelt die die Sophomorix-Rolle des angegebenen "Computerobjekts".
Wenn dies ein classroom-teachercomputer, classroom-studentcomputer, facultiy-teachercomputer oder ein staffcomputer ist, dann glaubt es dem Namen und nimmt die DNS-Änderung vor.
Nachteil: Alle Computer müssen dann auch entsprechend im AD vorhanden sein (in der devices.csv eingepflegt sein). - Das Skript macht einen DNS-Lookup des gewünschten Namens.
Wenn dieser bereits im DNS vorhanden ist und einem gewissen IP-Range zugeordnet ist (Servernetz, DMZ, ...), dann wird der DNS-Eintrag geblockt. Sonst wird er getätigt.
Der Check der geschützten IP-Segmente könnte man über Wildcard-Masken realisieren.
- Das Skript ermittelt die die Sophomorix-Rolle des angegebenen "Computerobjekts".
Ich würde auch eine entsprechende Lösung ausarbeiten und einen Pull-Request stellen. Ich erachte eine Diskussion vorab allerdings als zielführend.
Ich freue mich Kritik und Vorschläge
Raphael
Activity
Buster-de commentedon Jun 10, 2025
Hi,
den Hostname aus einer DHCP-Option zu nehmen ist Sicht der Informationssicherheit kritisch zu betrachten. Ein Angreifer könnte seine DHCP-Requests so bauen, dass beliebige Hostnamen darin vorkommen, die für den Betrieb essentiell sind (firewall, server, datenbank, cms, ...). Ein Microsoft DHCP-Server würde das dynamische DNS-Update anhand des Kerberos-Tickets des Computerkontos verifizieren, aber wenn hier ein Skript auf dem DHCP-Server selbst das Update vornimmt, fällt diese Sicherung weg. Vielleicht sollte das Skript mindestens prüfen, ob es ein Hostname eines Clients aus der devices.csv ist und nur die Aktualisierung für solche Hostnamen zulassen.
VG
Buster
HappyBasher commentedon Aug 20, 2026
Moin!
Danke für die Vorschläge, leider komme ich erste jetzt dazu mich damit zu beschäftigen. Es ist absolut nachvollziehbar, dass sich Geräte mit mehreren Netzwerkkarten mit der aktuellen 1-Hostname-zu-1-MAC-Logik in devices.csv nicht sauber abbilden lassen.
Ich muss allerdings Buster zustimmen, dass Raphaels Vorschlag das Sicherheitsniveau absenkt. Der Hinweis, dass die bestehende MAC-Zuordnungslogik nicht perfekt ist, ist richtig, kann aber nicht als Argument genommen werden die Latte niedriger zu legen und dem Client zu mehr trauen. Eigentlich müssten wir die Latte höher legen.
Um das Ausgangsproblem zu lösen, könnten wir in linuxmuster-base mehrere MAC-Adressen pro Objekt/Hostname zulassen, aber das hat Konsequenzen über dieses Repo hinaus. Da stellt sich die Frage, ob sich im AD-Computerobjekt mehrere MAC-Adressen abbilden lassen. Und das betrifft dann auch das sophomorix-AD-Schema. Hier müsste dann Arnaud mit einbezogen und im sohomorix-Repo ein korrespondierender Issue erstellt werden.
VG, Thomas