diff --git a/README.md b/README.md index 8baf34e..dece310 100644 --- a/README.md +++ b/README.md @@ -54,6 +54,7 @@ mehr von Hand in `dnsmasq.d` gepflegt, sondern über das Tool | Port-Forwarding-Include | `/etc/nftables.conf` bindet `/etc/nftables.d/*.conf` ein (dort generiert `ipadm` die Port-Forward-Regeln) | `/etc/nftables.conf` (Zeile am Ende) | [`config/nftables.conf`](config/nftables.conf) | | DHCP + DNS | dnsmasq: DHCP-Pool, Gateway/DNS-Option, DNS-Forwarding | `/etc/dnsmasq.d/lan.conf` | [`config/dnsmasq.d/lan.conf`](config/dnsmasq.d/lan.conf) | | DNS-Includes aktiviert | eine Zeile in `/etc/dnsmasq.conf` einkommentiert: `conf-dir=/etc/dnsmasq.d/,*.conf` | `/etc/dnsmasq.conf` | – (Rest der Datei ist Debian-Standard, nicht gespiegelt) | +| DHCP-Logging | `log-dhcp` aktiviert (zeigt DHCPDISCOVER/OFFER/REQUEST/ACK/NAK in `journalctl -u dnsmasq`) — war entscheidend, um am 2026-08-19 einen rogue DHCP-Server im LAN zu finden | `/etc/dnsmasq.d/90-logging.conf` | [`config/dnsmasq.d/90-logging.conf`](config/dnsmasq.d/90-logging.conf) | | Statische Hosts (DHCP-Reservierung + DNS) | von `ipadm` generiert, **nicht** von Hand editieren | `/etc/dnsmasq.d/hosts.conf` (generiert) + `/etc/ipadm/hosts` (Datenbank) | – (live Daten, siehe [`tools/ipadm/`](tools/ipadm/)) | | Port-Forwards (WAN → LAN-Host) | von `ipadm` generiert, **nicht** von Hand editieren | `/etc/nftables.d/portforward.conf` (generiert) + `/etc/ipadm/portforwards` (Datenbank) | – (live Daten, siehe [`tools/ipadm/`](tools/ipadm/)) | | dnsmasq-Resilienz | `Restart=on-failure` (Default war `no`), damit dnsmasq bei einem Boot-Race mit `enp7s0` nicht dauerhaft tot bleibt | `/etc/systemd/system/dnsmasq.service.d/override.conf` | [`config/systemd/dnsmasq.service.d/override.conf`](config/systemd/dnsmasq.service.d/override.conf) | @@ -217,6 +218,25 @@ ip link show enp7s0 cat /sys/class/net/enp7s0/carrier ``` +### Rogue DHCP-Server erkennen (z.B. "falscher Nameserver"-Symptom) + +Am 2026-08-19 kam die Meldung "DHCP liefert falschen Nameserver aus". Ursache +war kein Config-Fehler, sondern ein **zweiter DHCP-Server im LAN** (ein +WLAN-Router, der noch im Router- statt Access-Point-Modus lief und parallel +eigenes DHCP anbot). Erkennbar in `journalctl -u dnsmasq` (braucht `log-dhcp`, +siehe oben) an folgendem Muster: + +``` +DHCPOFFER(enp7s0) 10.0.0.157 ← unser Angebot +DHCPREQUEST(enp7s0) 10.0.0.151 ← Client nimmt eine andere IP an +DHCPNAK(enp7s0) 10.0.0.151 wrong server-ID ← wir lehnen zu Recht ab +``` + +Client hat also ein Angebot von einer fremden Quelle angenommen. Gerät mit +aktiver Web-Verwaltung im LAN suchen (z.B. `curl -I http:///`) +und dessen DHCP-Server deaktivieren / in Access-Point-Modus umschalten — +narcissus soll der einzige DHCP-Server im `10.0.0.0/24`-Netz sein. + ## Sicherheitshinweise - dnsmasq ist bewusst so konfiguriert, dass es **nur** auf `enp7s0` lauscht diff --git a/config/dnsmasq.d/90-logging.conf b/config/dnsmasq.d/90-logging.conf new file mode 100644 index 0000000..140e7c2 --- /dev/null +++ b/config/dnsmasq.d/90-logging.conf @@ -0,0 +1 @@ +log-dhcp