Kategorien
Linux Netzwerk(e) Wissen

„Quickie“ – lokale DNS-Zonen mit pi-Hole

In einem Netzwerk kommen manchmal mehr DNS-Zonen zusammen, als einem lieb ist. Neben dem obligatorischen .box bringen häufig auch andere Router / AccessPoints, Domaincontroller, DLAN-Adapter usw. usf. eigene DHCP-Server mit.

Wer hier – wie ich – mit unterschiedlichen DNS-Zonen arbeitet, möchte natürlich dennoch einen zentralen Anlaufpunkt haben, der einem alle Anfragen beantwortet.

Jetzt könnte man natürlich beginnen, eine entsprechende „Kette“ zusammenzulöten. Der Internetrouter fragt den Provider, der Domaincontroller fragt den Internetrouter, die AccessPoints fragen den DC usw. usf.

Das funktioniert und ist eine todsichere Methode, sich diverse „Single point of failure“ ins Netz zu stellen. Spätestens bei der Fehlersuche hat man weder Zeit, noch Muße, diese Kette wieder von hinten aufzudröseln.

Ich betreibe dafür in meinem Netwerk einen pi-Hole DNS Server. Dieser ist so konfiguriert, dass er alle Anfragen an die DNS-Server von Quad9 weiterleitet.

Das funktioniert solange gut, wie man nicht versucht, einen Hostnamen wie z.B. http://fritz.box/ via Browser aufzurufen 🙂

Die Kür besteht also darin, dem pi-Hole mitzuteilen, welche Zone er wo aufgelöst bekommt. Und weil es so schön ist, machen wir das nicht nur für die Vorwärts-, sondern auch für die Rückwärtsauflösung.

So, lange genug geschwafelt. Hier der versprochene „Quickie“:

In meinem imaginären Beispielnetz gibt es drei DNS-Zonen:

  • .box (192.168.178.0/24) – das Netz von der FRITZ!Box. DNS-Server hierfür ist 192.168.178.1
  • .lan.altmetaller (192.168.11.0/24) – meine PCs. DNS-Server für diese Zone ist 192.168.11.1
  • .dmz.altmetaller (192.168.22.0/24) – meine DMZ. DNS-Server für diese Zone ist 192.168.22.1

Im Verzeichnis /etc/dnsmasq.d/ lege ich für jede Zone eine entsprechende Datei an.

/etc/dnsmasq.d/10-box.conf

server=/box/192.168.178.1
server=/178.168.192.in-addr.arpa/192.168.178.1
local=/box/

/etc/dnsmasq.d/10-lan.altmetaller.conf

server=/lan.altmetaller/192.168.11.1
server=/11.168.192.in-addr.arpa/192.168.11.1
local=/lan.altmetaller/

/etc/dnsmasq.d/10-dmz.altmetaller.conf

server=/dmz.altmetaller/192.168.22.1
server=/22.168.192.in-addr.arpa/192.168.22.1
local=/dmz.altmetaller/

Der Neustart des Deamon erfolgt übrigens mit

sudo pihole restartdns

Noch etwas zur Sicherheit: In dem vorgenannten Beispiel habe ich die Rebind-Protection für die jeweiligen Netze abgeschaltet.

Das mag jetzt der Eine oder Andere als Sicherheitsloch sehen. Ein Rebind-Angriff ist tatsächlich denkbar, allerdings müsste der Angreifer dafür Kontrolle über die DNS-Server in meinem lokalen Netz erlangen. Oder halt dem Client (oder den Pi-Hole) dazu veranlassen, einen anderen DNS zu fragen.

Und, mal ernsthaft: In dem Fall wäre ein DNS-Rebind noch das kleinste Übel…

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.