Alle DNS-Anfragen auf pfsense umleiten
Hallo,
ich habe hier folgende Konstellation:
Fritzbox 7490 am Telekom VDSL-Account
daran eine pfSense
hinter der pfSense die ganzen Clients
Die pfSense ist mein DNS im Netzwerk, es sind keine DNS-Server eingerichtet, folglich ist unbound aktiv und das geht alles direkt über die DNS-Root-Server...
Ich habe im NAT ein DNS-Redirect eingetragen (ist auf der Netgate-Seite in der Doku drin) - alle Anfragen auf Port 53 sollen an die 127.0.0.1 gehen. Die Firewall-REgeln wurden automatisch erstellt. Ich sehe in den Firewall-Logs auch, dass da was geblockt wird, aber wenn ich bei einem Windows-Client manuell den DNS 1.1.1.1 vorgebe und dann ein nslookup irgendwohin mache, sehe ich, dass die Antwort vom Cloudflare DNS kommt.
Ist das nur in Windows 10 eine falsche Anzeige oder geht das tatsächlich trotzdem über Cloudflare, obwohl die Regeln in der pfSense aktiv sind?
Ich habe zusätzlich noch die Ports 53, 853 geblockt bzw für das Ziel pfSense freigegeben, das ändert auch nichts dran.
Kann mir das jermand erklären?
Ich möchte das so haben, dass alle Netzwerkteilnehmer im Netzwerk ausschließlich den pfSense-DNS nutzen können, auch wenn ein anderer DNS z.B. irgendwo fest vorgegeben ist.
Beim ntp hab ich das auch so gemacht mit der Umleitung auf die pfSense, da weiß ich aber nicht, wie ich das weiter prüfen könnte... Ich sehe in den Firewall-Logs zumindest, dass da ausgehend was passiert.
ich habe hier folgende Konstellation:
Fritzbox 7490 am Telekom VDSL-Account
daran eine pfSense
hinter der pfSense die ganzen Clients
Die pfSense ist mein DNS im Netzwerk, es sind keine DNS-Server eingerichtet, folglich ist unbound aktiv und das geht alles direkt über die DNS-Root-Server...
Ich habe im NAT ein DNS-Redirect eingetragen (ist auf der Netgate-Seite in der Doku drin) - alle Anfragen auf Port 53 sollen an die 127.0.0.1 gehen. Die Firewall-REgeln wurden automatisch erstellt. Ich sehe in den Firewall-Logs auch, dass da was geblockt wird, aber wenn ich bei einem Windows-Client manuell den DNS 1.1.1.1 vorgebe und dann ein nslookup irgendwohin mache, sehe ich, dass die Antwort vom Cloudflare DNS kommt.
Ist das nur in Windows 10 eine falsche Anzeige oder geht das tatsächlich trotzdem über Cloudflare, obwohl die Regeln in der pfSense aktiv sind?
Ich habe zusätzlich noch die Ports 53, 853 geblockt bzw für das Ziel pfSense freigegeben, das ändert auch nichts dran.
Kann mir das jermand erklären?
Ich möchte das so haben, dass alle Netzwerkteilnehmer im Netzwerk ausschließlich den pfSense-DNS nutzen können, auch wenn ein anderer DNS z.B. irgendwo fest vorgegeben ist.
Beim ntp hab ich das auch so gemacht mit der Umleitung auf die pfSense, da weiß ich aber nicht, wie ich das weiter prüfen könnte... Ich sehe in den Firewall-Logs zumindest, dass da ausgehend was passiert.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 518951
Url: https://administrator.de/forum/alle-dns-anfragen-auf-pfsense-umleiten-518951.html
Ausgedruckt am: 21.04.2025 um 08:04 Uhr
17 Kommentare
Neuester Kommentar
Hallo,
ein kurzer Blick ins umfangreiche Manual der PfSense ergibt folgendes:
Redirect All DNS to pfSense
ein kurzer Blick ins umfangreiche Manual der PfSense ergibt folgendes:
Redirect All DNS to pfSense

Zitat von @helloween:
Wenn ich an meinem Windows 10 Client den Cloudflare-DNS manuell eintrage und dann nslookup mache, bekomme ich den 1.1.1.1 angezeigt.
Das ist normal. Da die IP ja auch so eingetragen wurde.Wenn ich an meinem Windows 10 Client den Cloudflare-DNS manuell eintrage und dann nslookup mache, bekomme ich den 1.1.1.1 angezeigt.
Wird das auch angezeigt, wenn in Wirklichkeit die Anfrage vom pfSense beantwortet wurde
Ja.oder müsste da bei einer Umleitung nicht stehen, dass ich die Antwort von 192.168.x.x zurück bekommen habe?
Nein.Die pfSense macht ja einen transparenten Redirect und ändert die Zieladresse auf sich selbst, beim zurückschicken des Paketes an den Client ändert es die Quell-IP dann erneut auf 1.1.1.1, und der Client denkt er kommuniziert weiterhin mit 1.1.1.1, in Wirklichkeit redet er aber mit dem DNS der pfSense, er merkt es nur nicht.
Die pfSense spielt quasi transparenter Proxy für alle DNS-Anfragen.
REDIRECT ist intern einfach nur ein DSTNAT bei dem die Zieladresse auf die des eingehenden Interfaces umgeschrieben wird, da die Verbindung dann in der NAT Tabelle registriert ist werden Antwortpakete automatisch mit der Adresse als SRC Adresse versehen mit der sie eingegangen sind, also in deinem Fall mit der 1.1.1.1 und der Client bekommt davon nichts mit, er denkt er rede mit 1.1.1.1.
Alles in allem einfachstes Routing und NAT Grundlagenwissen

Zitat von @helloween:
Reicht der Port 53 TCP/UDP oder müsste man nicht auch vorsorglich Port 853 auf die gleiche Weise umleiten?
Kannst du dir ja eigentlich auch selbst beantworten, Port 853 ist DNSoTLS, wenn also in deinem Netz ein Browser oder Device das Protokoll verwendet ist das für ihn eine Ausweichmöglichkeit die du nicht verarbeitest, den Rest kannst du dir selbst ausmalen, und funktionieren würde das nur wenn die pfSense Zertifikate als MitM ausstellt, die Verbindung muss ja TLS gesichert sein, ein simpler Redirect würde hier also niemals reichen denn die CA der pfSense müsste auf allen Clienst in den Root-Certs registriert sein! Noch wilder wirds wenn DNSoHTTPs erst mal richtig in Fahrt kommt.Reicht der Port 53 TCP/UDP oder müsste man nicht auch vorsorglich Port 853 auf die gleiche Weise umleiten?

Zitat von @helloween:
Ok, dann reich mir eigentliche ein zusätzliche Regel, die Port 853 systemweit auf 127.0.0.1 / Port 53 umleitet, oder?
Nein, lies mal meine Ergänzung. DNSoTLS arbeitet mit Zertifikaten, ergo müsste die pfSense als MitM eigene Zertifikate ausstellen und am Client die CA der pfSense in den Roots registriert sein, damit diese nichts bemerken wenn diese auf TLS-"Strict" stehen.Ok, dann reich mir eigentliche ein zusätzliche Regel, die Port 853 systemweit auf 127.0.0.1 / Port 53 umleitet, oder?
Blocke Port 853 einfach, fertig. Die meisten Programme haben ein Fallback auf Port 53, also kein Problem.
wenn ich bei einem Windows-Client manuell den DNS 1.1.1.1 vorgebe und dann ein nslookup irgendwohin mache
Deshalb blockst du in den Regeln ja auch TCP/UDP 53 nach ANY und lässt es einzig und allein NUR auf die LAN IP der pfSense zu !!Etwas sinnvoll und intelligent nachdenken beim Erstellen des Regelwerkes sollte man schon !
trotzdem hab ich in der Windows cmd die 1.1.1.1 zurück bekommen, daher war ich verunsichert.
Dann ist deine Firewall Regel schlicht falsch !!Bedenke immer das da die reihenfolge zählt und immer die Grundregel First match wins ! gilt, sprich nach dem ersten positiven Hit wird der Rest NICHT mehr abgearbeitet !
Vermutlich liegt hier dein Fehler ?! Lässt sich wenigstens auf einer pfSense hier nicht reproduzieren !!
Deine Regel "LAN > any/any < auf > ! LAN adress/port 53 < geblockt" ist ja auch völlig falsch ! Auf die LAN Adress als Ziel darfst du das ja niemals blocken, denn die arbeitet doch gerade als Proxy DNS !
Richtig ist in der Reihenfolge:
PASS, Source: LAN_net, Port: any, Destination: LAN_address, Port: TCP/UDP 53
BLOCK, Source: LAN_net, Port: any, Destination: any, Port: TCP/UDP 53
So wird ein Schuh draus....

Thema ist ja schon längst abgefrühstückt, also Case auch schließen bitte.
Die wurden aber genau so automatisch von der pfsense erstellt
Dann hast du woanders DNS Blödsinn konfiguriert im DNS Setup. Im Default ist die pfSense immer DNS Proxy, man muss da gar nix einstellen und kann alles auf dem Default belassen.Der pfSense DNS bekommt dann den Upstream DNS automatisch per PPPoE vom Provider oder wenn man eine Kaskade hat mit statischer IP Adressierung trägt man die DNS IP (so gut wie immer die IP des am WAN Port kaskadierten Routers !) dann immer statisch im Basic Setup ein. Mehr ist nicht zu tun.
Keine Ahnung was du da verfummelt hast ?!

Im Default ist die pfSense immer DNS Proxy, man muss da gar nix einstellen und kann alles auf dem Default belassen.
@aqui lies mal alle Posts vorher, du bist auf dem völlig falschen Dampfer