isc-dhcp-server + BIND9 + Unbound + dnscrypt & DDNS Funktioniert nicht

1777
M Afifi

Original

Ich habe ein komplexes DNS-Setup auf meinem Heimrouter, auf dem Ubuntu-Server ausgeführt werden. Mein Ziel ist es,

  1. Fragen Sie den DNS Ihres lokalen ISP nach geo leocation-relevanten Suchvorgängen ab, die mich interessieren
  2. dnscrypt-proxyfür die Mehrzahl der Lookups. Für bestimmte Domains (einige, die ich kenne), viele, die ich nicht und als solche, abgesehen von bestimmten Domains, vergibt mein ISP die Suche mit falschen Adressen an den Blackhole-Verkehr. Ich möchte, dass dies der Standard-DNS-Lookup-Server ist
  3. Minimieren Sie Internet-DNS-Lookups. Meine Internetverbindung ist nicht zuverlässig und zu bestimmten Tageszeiten habe ich eine 50/50-Chance, dass DNS-Lookups außerhalb des Landes erfolgreich sind
  4. Ich habe meine eigene interne Domain, hauptsächlich für Reverse-Lookups.

Die Lösung, die ich implementieren musste, um diese Ziele zu erreichen, lautet:

  1. unbound Als primärer DNS-Server meines LANs für das Zwischenspeichern von Suchvorgängen, das Beibehalten des Cache-Speichers und das Weiterleiten von Adressen an den entsprechenden DNS-Server für Cache-Fehler
  2. dnscrypt-proxyauf 127.0.2.1:53als forward-addrfür "."in ungebunden
  3. bindnur 192.168.1.1:40autorisierend für meine lokale Domain
  4. isc-dhcp-server zum Verteilen von IP-Adressen und Einfügen von Vorwärts- und Rückwärtssuche.

Ich habe es geschafft, die meisten meiner Ziele zu erreichen. Also bleiben Sie zurückhaltend, um Dinge wesentlich zu ändern, außer für Vorwärts- / Rückwärtssuche nach nicht statischen Hosts in meinem LAN.

Mein Verdacht ist isc-dhcp-server, DDNS-Updates zu senden unbound, die keine Ahnung haben, was damit zu tun ist. Wie frage ich, ob ich isc-dhcp-serveres senden möchte 192.168.1.1:40, bindobwohl ich möchte, dass der DNS-Server für meine Clients verwendet 192.168.1.1:53wird unboundoder ob unboundDDNS-Updates weitergeleitet werden sollen bind?

Beispielfehlermeldung

Sep 29 08:01:10 ubuntu dhcpd[7057]: DHCPREQUEST for 192.168.1.101 from 28:18:78:7c:d5:a1 (Xbox-SystemOS) via enp2s0 Sep 29 08:01:10 ubuntu dhcpd[7057]: DHCPACK on 192.168.1.101 to 28:18:78:7c:d5:a1 (Xbox-SystemOS) via enp2s0 Sep 29 08:01:22 ubuntu dhcpd[7057]: Unable to add forward map from Xbox-SystemOS.mydomain.ddns.net. to 192.168.1.101: timed out 

Relevante Zeilen in dhcpd.conf

ddns-updates on; ddns-update-style interim; key rndc-key { algorithm hmac-md5; secret MIND_YOUR_BUSINESS; }  subnet ...... { .... option domain-name-servers 192.168.1.1; ... ddns-domainname "mydomain.ddns.net."; ddns-rev-domainname "in-addr.arpa."; } 

Relevante Zeilen von /etc/bind/named.conf.local

zone "mydomain.ddns.net" { type master; file "/etc/bind/zones/db.mydomain.ddns.net"; # Zone file path allow-update { key rndc-key; }; # allow for dynamic updates };  zone "168.192.in-addr.arpa" { type master; file "/etc/bind/zones/db.192.168"; # 192.168.0.0/16 subnet allow-update { key rndc-key; }; # allow for dynamic updates }; 

Update 1

Nach dem Durchgraben dhcpd.confbin ich zu dem Schluss gekommen, dass ich keine Anschlussnummer für den Bind-Server angeben kann. Es gibt jedoch eine magische Option, mit ddns-local-address4der ich eine andere Server-IP-Adresse für DDNS als angeben konnte domain-name-server option.

Ich habe Bind zum Anhören geändert 127.0.0.1und das funktioniert weitgehend (zumindest bindet jetzt das Update). Es kommt jedoch auf Berechtigungen an.

Sep 29 19:21:40 ubuntu named[31415]: client 127.0.0.1#2824/key rndc-key: signer "rndc-key" approved Sep 29 19:21:40 ubuntu named[31415]: client 127.0.0.1#2824/key rndc-key: updating zone 'mydomain.ddns.net/IN': adding an RR at 'iPhone.mydomain.ddns.net' A 192.168.1.104 Sep 29 19:21:40 ubuntu named[31415]: client 127.0.0.1#2824/key rndc-key: updating zone 'mydomain.ddns.net/IN': adding an RR at 'iPhone.mydomain.ddns.net' TXT "316a52934f2adcaf4c95004e870a4c0f70" Sep 29 19:21:40 ubuntu named[31415]: /etc/bind/zones/db.mydomain.ddns.net.jnl: open: permission denied Sep 29 19:21:40 ubuntu named[31415]: client 127.0.0.1#2824/key rndc-key: updating zone 'mydomain.ddns.net/IN': error: journal open failed: unexpected error Sep 29 19:21:40 ubuntu kernel: [212079.779512] audit: type=1400 audit(1475148100.710:25): apparmor="DENIED" operation="open" profile="/usr/sbin/named" name="/etc/bind/zones/db.mydomain.ddns.net.jnl" pid=31419 comm="named" requested_mask="w" denied_mask="w" fsuid=110 ouid=0 

Meine besten Versuche, eine ausreichende Berechtigung zum Aktualisieren dieser Datei zu erteilen, funktionieren jedoch nicht. Was gibt?

ps aux | grep named bind 31415 0.0 0.2 429564 19572 ? Ssl 19:10 0:00 /usr/sbin/named -f -u bind  ls -la /etc/bind/zones total 16 drwxrwsr-x 2 root bind 4096 Sep 29 19:21 . drwxr-sr-x 3 root bind 4096 Sep 29 19:07 .. -rw-r--r-- 1 root bind 340 Sep 28 08:01 db.192.168 -rw-r--r-- 1 root bind 514 Sep 27 07:40 db.mydomain.ddns.net -rw-rw-r-- 1 bind bind 0 Sep 29 19:21 db.mydomain.ddns.net.jnl 

Update 2

Ich habe mein Apparmor-Profil für named geändert und erhalte keine Berechtigungsfehler mehr.

Wenn ich binddirekt auf 127.0.0.1 abfrage, funktioniert alles.

Wenn ich es jedoch über ubuntuabfrage, werden die Lookups nicht bindkorrekt weitergeleitet.

Was mache ich jetzt falsch?

Von unbound.conf

 local-zone: "1.168.192.in-addr.arpa." nodefault local-zone: "168.192.in-addr.arpa." nodefault  stub-zone: name: "168.192.inaddr.arpa." stub-addr: 127.0.0.1  stub-zone: name: "1.168.192.inaddr.arpa." stub-addr: 127.0.0.1  stub-zone: name: "mydomain.ddns.net." stub-addr: 127.0.0.1 
4
BIND muss Schreibzugriff auf das ** Verzeichnis ** / etc / bind / zone / haben, um Journaldateien zu erstellen. In der Regel ist "chown bind: bind / bind / bind / bind / zone" ausreichend (machen Sie den BIND-Benutzer zum Eigentümer des Verzeichnisses). milli vor 7 Jahren 0

1 Antwort auf die Frage

0
M Afifi

Es gab eine zusätzliche Datei /etc/unbound/unbound.d/, die die Auflösung von unterbrach mydomain.ddns.net.. Nachdem die Datei entfernt wurde, wurde das Problem dadurch behoben.

Endgültige Aufstellung

  1. dnscrypt-proxyhören weiter 127.0.2.1.
  2. bindhören weiter 127.0.0.1.
  3. unboundAnhören 192.168.1.1, weiterleiten mydomain.ddns.netzur bindVerwendung der stub-zoneAussagen in der Frage, hat eine Vorgabe nach dnscrypt-proxy.
  4. isc-server-dhcpUpdates bindmit den ddns*Optionen indhcpd.conf