DNS - unbound + AdguardHome und Portweiterleitung IPv6

Started by audofriemler, August 07, 2024, 09:18:58 PM

Previous topic - Next topic
August 07, 2024, 09:18:58 PM Last Edit: August 07, 2024, 10:24:54 PM by audofriemler
Quote
   Protocol             Source          Port       Destination       Port   Gateway   Schedule      Description       
Group rules   
     IPv4+6 UDP   InternetGroup   *   *                              _DNS    *   *                  1   DNS   
     IPv4 UDP   *   *                                  10.10.0.1            5310   *   *                   1   Forward DNS zu ADGH   
     IPv4+6 TCP   InternetGroup   *   *                              _HTTP_HTTPS    *   *   1   HTTP HTTPS

Die Edit sagt:
InternetGroup ist die Zusammenfassung der VLANs, die ins Internet dürfen. So müssen diese Regeln nicht für alle VLANs extra angelegt werden. Die Regeln sind alles allow Regeln.

Ich hänge gerade so ein bisschen bei den Firewall Regeln. Das da oben sind die Regeln für ein VLAN das ins Internet darf.


Regel 1 und 3 habe ich selber erzeugt, das sollte so passen.


Die zweite (mittlere) Regel kommt über Firewall: NAT: Portforward


Hintergrund:
Unbound läuft auf Port 53
AdguardHome läuft auf Port 5310
Über das Fowarding kann ich recht smart steuern, welches VLAN welchen DNS nutzt.


Aber:
Mir gefällt erstens der Regelsaustall nicht.
Zweitens weiß ich nicht, wie ich das Forwarding für IPv6 gestallten soll.
Mit der IPv4 Forwarding Regel funktioniert alles, aber ich hätte da gerne IPv6 mit drin. Weche v6 Adresse schreibe ich da rein?


Die fe80::XX funktioniert aus einem anderen Netz nicht.
Der Prefix ändert sich auch täglich und ich habe nichts gefunden, wie ich der Sense eine fixe ala ::beef geben könnte.


Oder bin ich ganz auf dem Holzweg?


Danke für eure Hilfe.

PS: so nebenbei würde ich gerne verhindern, dass einzelne Geräte ihren eigenen DNS verwenden.


August 07, 2024, 09:51:45 PM #1 Last Edit: August 07, 2024, 09:53:41 PM by meyergru
Das Präfix mag sich ändern, aber die EUI-64 nicht, deswegen gibt es einen Firewall-Alias-Typ "Dynamic IPv6 Host", bei dem Du die unteren 64 Bits der Adresse mit ::xxxx:yyyy:zzzz:qqqq angeben kannst und dazu das Interface.

OpnSense bildet dann aus dem Präfix des Interfaces und der EUI-64 die volle IPv6. Damit kannst Du sowohl IPv6 der OpnSense als auch solche von Geräten im LAN per Alias für Regeln verfügbar machen.

P.S.: Die Regeln habe ich mir nicht angesehen, weil deren Inhalt komplett unklar ist (welches Interface oder Floating, was ist InternetGroup, block, deny oder allow)...
Intel N100, 4 x I226-V, 16 GByte, 256 GByte NVME, ZTE F6005

1100 down / 770 up, Bufferbloat A

August 07, 2024, 10:23:55 PM #2 Last Edit: August 07, 2024, 10:35:15 PM by audofriemler
InternetGroup ist die Zusammenfassung der VLANs, die ins Internet dürfen. So müssen diese Regeln nicht für alle VLANs extra angelegt werden. Die Regeln sind alles allow Regeln.

Den Sinn von Block Regeln habe ich im Fall der OPNsense noch nicht verstanden. (Die habe ich auch bei OpenWRT nicht gebraucht, da kommt am Schluß eine Block all, was die Sense im Standard macht.)

Vielen Dank für Deinen Vorschlag. Funktioniert gerade noch nicht so wie erwartet. Vermutlich muss ich für jedes VLAN einen eigenen Alias anlegen, da die 8 bit vom Subnet Prefix jedes mal anders sind. Oder gibt es da eine Variante, die aus allen Subnetzen erreichbar ist?

Edit:
Ich habe es jetzt mit dem Subnetz des VLANS probiert. Es geht nicht. Ich weiß nicht woran es liegt, aber ich habe das Gefühl, dass die DNS Anfragen immer über IPv4 gestellt werden. In der /etc/resolv.conf von meinem Debian stehen sowohl die IPv4 als auch die IPv6.

Der Alias ist nur ein Firewall-Alias, kein DNS, das ist Dir schon klar, oder? Und ja, Du brauchst eben so viele Aliases, wie es IPv6-Adressen gibt. Wenn es um das Erlauben auf die OpnSense als Ziel geht, reicht ja auch "This Firewall", das meint alle IPs der OpnSense.

Ein Client wird ja nur an einem Interface gleichzeitig hängen, und genau das plus die EUI-64 des Clients nimmst Du dann als Alias. So kannst Du gezielt den Zugriff von außen auf diesen Client erlauben (anstatt inbound NAT bei IPv4). Oder eben den Zugriff nach außen per IPv6, wenn Du nicht sowieso alles durchlässt. Offenbar reglementierst Du das ziemlich stark, das würde ich lassen:

Mach Dir klar. dass Clients im Zweifel per HTTPS alles mögliche nach Hause funken können, wo Du nicht reinschauen kannst. Da ist es auch egal, wenn das über andere Ports oder Protokolle passiert. Es ist im Zweifel besser, Clients, denen Du nicht komplett vertraust, in ein VLAN einzusperren, auf das Dein LAN Zugriff hat, aber nicht umgekehrt. Ich mache das so mit allen iOS, Android und IoT-Clients, inklusive Smart-TVs, Webcams, Streaming Devices usw.

P.S.: Der Sinn von Block-Regeln kann z.B. sein, dass man sie vor alle anderen Regeln setzt, z.B. bei GeoIP Blocking. Das hatte hier gerade jemand falsch herum gemacht und hatte damit sein Netzwerk komplett offen. Deswegen mein Disclaimer zum Rest Deines Postings...
Intel N100, 4 x I226-V, 16 GByte, 256 GByte NVME, ZTE F6005

1100 down / 770 up, Bufferbloat A

Da bisher alle meine Versuche mit IPv6 nicht funktionieren, stelle ich jetzt einmal eine prinzipielle Frage:

Unbound hört auf der OPNsense auf Port 53
AdguardHome hört auf der OPNsense auf Port 5310

Für IPv4 funktioniert unter Firewall: NAT: Port Forward von Port 53 nach Port 5310, so daß ADGH auf den dort angegebenen VLANs antwortet.

Für IPv6 bekomme ich das nicht ans laufen. Auch nicht mit einem Alias: Dynamic Host, die ::xxxx:xxxx:fexx:xxxx der OPNsense und dem Interface mit dem richtigen VLAN.

Aber vielleicht bin ich auf dem Holzweg. Gibts für IPv6 noch einen anderen Weg den Port umzubiegen?

(Die alternative Variante wäre natürlich ADGH auf Port 53 und Unbound auf einen anderen. Aber ich will nicht mit allen Anfragen durch ADGH sondern mir noch einen Ausweg offen lassen)

Wenn ich mehr Zeit habe poste ich noch einen Teil meiner Versuche. Mir geht es jetzt nur darum, ob es einen anderen Weg als NAT für den speziellen Fall mit IPv6 gibt.

Danke und schönen Sonntag

Du willst einen Port "Überladen" ?

also auf einem bestimmten Interface der OS den Port 53 von Adguard nutzen?
Dann stelle doch dort einfach Unbound auf diesem Interface ab und für Adguard an - habe ich auch so gelöst.

Habe es so gelöst, dass Adguard den Unbound als Default DNS nutzt, so kann man auch internes darüber auflösen.

Wenn das läuft kann man das vielleicht in IPv6 nachbauen ? Man muss doch nicht 6 Baustellen auf einmal lösen.
VMW / PMX / PFS / OPS

August 14, 2024, 02:01:32 AM #6 Last Edit: August 14, 2024, 03:06:26 AM by audofriemler
Quote from: trixter on August 12, 2024, 05:33:20 PM
... Dann stelle doch dort einfach Unbound auf diesem Interface ab und für Adguard an ...

Wie kann ich das für ein einzelnes Interface machen? Oder meinst Du die von mir oben beschriebene Lösung?

Ports tauschen hatte ich schon.

Port mit IPv4 weiter leiten funktioniert.

Port mit IPv6 weiter leiten bekomme ich nicht hin.

Ich würde die Lösung mit der Portweiterleitung bevorzugen, weil ich damit den ADGH sehr restriktiv für bestimmte VLANs konfigurieren kann (Kinder/Jugendschutz) und den Unbound freier laufen lassen kann. Keine 6 Baustellen, nur Feinschliff mit IPv6 ;-) und zum lernen.

Ich würde die Lösung mit der Portweiterleitung bevorzugen, weil ich damit den ADGH sehr restriktiv für bestimmte VLANs konfigurieren kann (Kinder/Jugendschutz) und den Unbound freier laufen lassen kann. Keine 6 Baustellen, nur Feinschliff mit IPv6 ;-) und zum lernen.

==================================

EDIT:

Mir kommt so langsam der Verdacht, dass AguardHome NICHT mit IPv6 angesprochen werden kann. Das Interface lauscht auch nur auf IPv4.

Kann das bitte jemand bestätigen?

nslookup debianforum.de
;; communications error to 2xxx:xxxx:xxxx:xxxx:xxxx:xxff:fexx:xxxx:xxxx:53: connection refused


===================================