OPNsense mit Pi-Hole als DNS Server

Started by guest18611, July 24, 2018, 12:50:04 PM

Previous topic - Next topic
Quote from: monstermania on July 29, 2018, 11:44:39 AM
also die Regel funktioniert. Wenn ich auf einem Client im Gäste WLAN einen beliebigen DNS Server manuell Eintrage werden die DNS Anfragen dieses Client von der OPNSense geblockt!
Nur wenn die OPNsense als DNS eingetragen ist klappt es mit der Namensauflösung.

Probier mal dig @DNSSERVER opnsense.org, wobei DNSSERVER einer der folgenden ist, wenn du von IPv4 ausgehst:
8.8.8.8, 8.8.4.4, 1.1.1.1, 9.9.9.9

ich poste das lieber auch mal hier: es gibt sonst noch DoH (DNS over HTTP(S)) und DoT (DNS over TLS), beides würde deinen Filter ohne Probleme umgehen.

July 29, 2018, 12:58:30 PM #17 Last Edit: July 29, 2018, 01:00:58 PM by JasMan
Quote from: monstermania on July 25, 2018, 11:54:33 AM
Hab mal ein Screenshot meiner Regeln für mein GästeWLAN angefügt.

Ich beziehe mich auf die Regeln im Screenshot.
Wenn ein Client im Gäste LAN einen anderen DNS Server (z.B. 4.4.4.4) manuell eingetragen hat und sich die DNS Anfrage auf den Weg macht, passiert bei dem Regelwerk folgendes:

1. Regel matcht nicht, weil das Ziel nicht die OPNsense ist
2. Regel matcht nicht, weil der Service nicht passt.
3. Regel matcht nicht, weil das Ziel nicht passt (ist ja eine öffentliche IP).
4. Regel matcht, weil alle Services zu allen IP Adressen erlaubt wird.

Somit wird DNS ins Internet erlaubt.

Man könnte jetzt eine eine Regel vor der 4. Regel einführen die da lautet:
Source: Gäste LAN
Destination: *
Service: TCP/UDP 53 (DNS)
Action: Deny

Dann würde die DNS Anfrage in Richtung Internet oder auch in alle anderen Subnetze der OPNsense geblockt. Wichtig ist, dass diese Regel nach der 1. Regel kommt. Ansonsten matcht die neue Regel vor der 1. Regel mit dem Allow. Und dann geht gar kein DNS mehr.

Aber @Raccoon ist schon auf dem richtigen Weg. Einfacher ist es ein Portforwarding für DNS einzurichten, und als Ziel den PiHole einzutragen. Dann kann sich jeder DNS Server eintragen wie er will. Sobald eine DNS Anfrage auf der Firewall erscheint, wird die an den PiHole weitergeleitet. Damit erreicht man das gewünschte Verhalten mit nur einer Regel.
Duck, Duck, Duck, Duck, Duck, Duck, Duck, Duck, Goose

Quote from: JasMan on July 29, 2018, 12:58:30 PM
Aber @Raccoon ist schon auf dem richtigen Weg. Einfacher ist es ein Portforwarding für DNS einzurichten, und als Ziel den PiHole einzutragen. Dann kann sich jeder DNS Server eintragen wie er will. Sobald eine DNS Anfrage auf der Firewall erscheint, wird die an den PiHole weitergeleitet. Damit erreicht man das gewünschte Verhalten mit nur einer Regel.

Ich habe dazu aber auch nochmal eine Frage...
Cypher100 hat vor kurzem hier eine Anleitung geschrieben https://forum.opnsense.org/index.php?topic=9245.msg41718#new

Funktioniert auch soweit bis ich eben gemerkt habe das ich noch die default any/any rule aktiviert hatte.
Also geändert auf folgende Regeln:
1. Anti Lockout
2. DNS Redirect (nach Anleitung)
3. Allow Alias INET (53,80,443) zu Destination Any

Dann funktioniert es auch aber sobald ich aus dem Alias INET den Port 53 raus nehmen geht es nicht mehr.

Ich hätte jetzt gedacht ich muss kein port 53 mehr freigeben weil ja alles mit der zweiten Regel (DNS Redirect Rule) auf die Firewall selbst weitergeleitet wird...oder sehe ich das falsch?

Wenn Du den Dienst DNS (53) aus der dritten Regel entfernst und DNS danach nicht mehr funktioniert, zieht die zweite Regel aus irgendeinem Grund nicht.

Kontrollier mal die Redirect-Regel ob da alles korrekt ist (Interface, Destination, etc.).
Ansonsten poste mal einen Screenshot.
Duck, Duck, Duck, Duck, Duck, Duck, Duck, Duck, Goose

Hallo,

Hier 3 Screenshots. Ganz oben steht nur noch die Anti Lock Auto Regel.

Wenn ich jetzt eine Website aufrufe wird diese nicht aufgerufen und im Log steht:
Client-IP:56185 Firewall-IP:53 udp Default deny rule

Also wird die DNS Anfrage auf die Firewall geblockt...aber warum?  :-\

Edit:
Hab nochmal ein Screenshot vom Unbound DNS gemacht.


Quote from: mimugmail on July 30, 2018, 06:35:54 PM
Schau Mal bitte ins Log .. da steht's bestimmt

Interface          Time                 Source                 Destination         Proto        Label
lan       Jul 30 18:41:38               Client-IP:56185         Firewall-IP:53          udp         Default deny rule


Ist die Standard Block Regel am Ende, weil Port 53 ausgehend nicht offen ist, oder?

Du brauchst 'ne Regel die TCP+UDP/53 auf "Diese Firewall" erlaubt. Das ist ein pf internal, das allen IP-Adressen der Firewall entspricht, wenn du DNS über die FW erlauben willst. Wenn nur der PI-Hole ins Internet soll, musst du nur von dessen IP den Zugriff ins Internet von den oben genannten Ports erlauben.

Achso! Ich dachte die 127.0.0.1 wäre schon die Firewall...Der Pi-Hole Server ist unter System: Settings: General hinterlegt.

So sieht es jetzt bei mir aus. Ist die Rheinfolge so OK!? Oder muss die Allow Regel vor die Port Forward Regel?


DANKE!  :)

Die Port-Forward Regel zieht nur, wenn jemand versucht einen anderen DNS Server als die der OPNsense anzusprechen. Daher das !LAN address, also alle Ziele außer der IP Adresse des OPNsense LAN Interface. D.h. wenn Du in Deinem Client die OPNsense LAN Interface als DNS Server eingetragen hast, matcht die PortForward Rule nicht. Somit brauchst Du noch eine Regel die den direkten DNS Traffic auf das Interface erlaubt.

So wie Du es jetzt hast sollte es funktionieren....aber sag Du es uns :)
Duck, Duck, Duck, Duck, Duck, Duck, Duck, Duck, Goose

Die Letzte Regel macht vermutlich die oberen zwei überflüssig, dazwischen musst du blockieren. Bei mir gilt übrigens: Internet ist ! RFC1918 für IPv4. IPv6 ist da schon komplizierter, da alles im Internet ist ;)

July 30, 2018, 08:57:22 PM #27 Last Edit: July 30, 2018, 09:04:49 PM by JasMan
Quote from: fabian on July 30, 2018, 08:46:40 PM
Die Letzte Regel macht vermutlich die oberen zwei überflüssig, dazwischen musst du blockieren.

Nee, dat passt schon so.
Er will ja alle DNS Anfragen die nicht direkt an die OPNsense gehen auf die OPNsense umleiten, und die Redirect Rule steht ja ganz oben. D.h. die Anfrage wird niemals unten ankommen......naja, sollte niemals unten ankommen.

Nur die direkten Anfragen an die OPNsense sollen durchgelassen werden, was die zweite Regel macht.
Die letzte Regel sollte man auf jeden Fall verfeinern. Ein ANY -> Internet ist nicht gut.  :-X


BTW: Wieso nimmt man als Ziel "Firewall" bzw. 127.0.0.1? Der Verkehr bleibt doch eh in dem LAN. Richtg und sauberer wäre es m. E. das Objekt des LAN Adapters zu nehmen, oder?
Duck, Duck, Duck, Duck, Duck, Duck, Duck, Duck, Goose

Danke ihr beiden! Ja funktionieren tut es, also bei einem
host yahoo.com 8.8.8.8
antwortet die IP 172.16.15.1 die ich manuell eingetragen habe.

Wieso mach die letzte Regel die anderen überflüssig? Dort ist nur Port 21, 80 und 443 erlaubt.

PS: Das mit ! RFC1918 ist genial! Habe mich schon gefragt wie ich einen Alias für "DAS Internet" erstelle  ::)

Joh, hast Recht. Ich denke wir dachten beide "Internet" wäre das Ziel, also ein IP Bereich. Aber an der Stelle stehen ja die Services und wenn die kein DNS eingetragen haben, alles gut.  :)
Duck, Duck, Duck, Duck, Duck, Duck, Duck, Duck, Goose