DNS vom OpenVPN Client nicht möglich

Started by ApproachN, March 06, 2025, 10:06:41 AM

Previous topic - Next topic
Hi @ all

ich habe eine OpenVPN Verbindung aufgebaut und via NAT Hybrid Mode wird es den Clients Verteilt. Ich habe mich an dem Video gehalten https://www.youtube.com/watch?v=wDEHo9XJjeA&t=882s . Das ganze funktioniert sehr gut bis auf die die DNS Verbindung.  Die VPN Verbindung hat einen eigenen DNS Server. Dieses möchte ich auch benutzten.

Ziel:
1. Wenn ich z.B. youtube.com aufrufe soll mein Standard DNS Server 8.8.8.8 gecheckt werden und die Seite ohne VPN aufgerufen werden
2. Wenn ich z.B. foo.secret aufrufe  soll mein Standard DNS Server 8.8.8.8 gecheckt und dann der DNS via VPN. In dem Fall handelt es sich um Seite das von VPN geliefert werden kann.

Der VPN Server ist korrekt eingestellt. Das ganze funktioniert bereits mit einem normal VPN Client. Jedoch unter OpenSense nicht!

Hat jemand eine Idee wie man das konfiguriert?

Hallo,

der Titel des Threads und dessen Zusammenhang mit dem Inhalt ist mir nicht klar.

Du kannst in OpenVPN einen DNS Server eintragen der "als Empfehlung" an den Client gepusht wird. Ob dieser den Server aber auch verwendet, liegt in der Macht des zuständigen Administrators. Also wenn die OpenVPN mit Admin-Rechten eingerichtet wurde bzw. der User Admin-Rechte besitzt, dann schon.

Quote from: ApproachN on March 06, 2025, 10:06:41 AMZiel:
1. Wenn ich z.B. youtube.com aufrufe soll mein Standard DNS Server 8.8.8.8 gecheckt werden und die Seite ohne VPN aufgerufen werden
2. Wenn ich z.B. foo.secret aufrufe  soll mein Standard DNS Server 8.8.8.8 gecheckt und dann der DNS via VPN. In dem Fall handelt es sich um Seite das von VPN geliefert werden kann.
Aber was haben nun diese Anforderungen damit zu tun?
Wenn du möchtest, dass der Client einen ganz allgemeinen öffentlichen DNS wie diesen verwendet, könnte dir der DNS des Client doch gleich egal sein. Dessen Rückgabe kannst du eh nicht beeinflussen. Oder möchtest du das? Wenn doch, müsstest du die Anfragen auch über die VPN routen.

Der Rest deiner Anforderung betrifft ebenso nur Routing.
Wenn foo.secret über die VPN routen möchtest, dann füge die Ziel IP zu den "Local Networks" in der Server Konfig hinzu. Das setzt am Client dafür eine Route zum VPN Server.


Ich möchte das der Client sich keine Gedanken machen muss über DNS und auch nichts konfigieren braucht.

Ich möchte nicht das der VPN > DNS Server jede Anfrage bearbeiten muss sondern nur die, die nicht aufgelösst werden können. Also wenn Primary DNS keine Antwort hat dann soll der VPN > DNS Server es Versuchen.

Wenn ich es über Routing machen würde, dann würde ja alles über den VPN > DNS Server laufen :(

Quote from: ApproachN on March 07, 2025, 09:47:10 PMIch möchte nicht das der VPN > DNS Server jede Anfrage bearbeiten muss sondern nur die, die nicht aufgelösst werden können. Also wenn Primary DNS keine Antwort hat dann soll der VPN > DNS Server es Versuchen.
Das macht der Client aber nicht.

Ein DNS Client gibt sich mit jeder Antwort des DNS Servers zufrieden.
Kann der Server die Domain nicht auflösen, gibt er NXDOMAIN zurück, was auch eine Antwort ist, die der Client mit "keine IP" interpretiert und der Zugriff entsprechend fehlschlägt.

Ein optionaler DNS Server wird nur abgefragt, wenn der primäre nicht erreichbar ist oder eine Fehlerantwort (SERVFAIL) zurück gibt.

Soll der serverseitige DNS der VPN Namen auflösen, ist die einzige Option, sämtlichen DNS Traffic über die VPN zu routen.
An und für sich, kein Drama. Dumm wird es aber, wenn der Client andere Domains lokal auflösen sollte. Die würden fehlschlagen, wenn der Remote-DNS dafür keinen Eintrag hat.

Theoretisch ist das möglich, wenn man einen Split-Tunnel baut und 2 DNS-Server übergibt:

"der erste ist ein öffentlicher, wie z.b. 8.8.8.8 und der zweite ein interner, welcher über den Tunnel auflöst.
Hat der erste keine Antwort, wird der zweite DNS gefragt, erst wenn der auch nicht weiter weiß gibt es keine Antwort."

Gebaut habe ich sowas allerdings noch nicht - weil DNS nur minimal Traffic verursacht und ich die Kontrolle nicht an Google und co abgeben möchte.
VMW / PMX / PFS / OPS

Quote from: trixter on March 12, 2025, 03:45:23 PMHat der erste keine Antwort, wird der zweite DNS gefragt
Wollte eben fragen, ob du das auch schon mal verifiziert hast, aber habe dann weiter gelesen...

Quote from: trixter on March 12, 2025, 03:45:23 PMGebaut habe ich sowas allerdings noch nicht

Selbst wenn man es so baut, ist es immer noch STARK Clientabhängig was passiert. Alleine die unterschiedlichen OSe spielen da schon Flipper:

* IOS und MacOS nehmen einen DNS der gepusht wird zur Kenntnis, machen es aber abhängig von einer ggf. gepushten Default Domain, ob und was sie damit anfangen. Pusht man keine Domain wird m.W. alles via VPN abgefragt. Apple Sonderlocke.
* Android macht DNS über VPN wenn gepusht und nutzt auch eine Domain als Suchliste oder Suffix
* Windows: Oh Freude oh Freude. Abhängig davon, ob die Optionen "register-dns" und "block-outside-dns" gesetzt sind kann sich das komplett anders verhalten. Register DNS nimmt den DNS an und tritt den internen DNS Cache durch, damit übers VPN aufgelöst werden kann. Abarbeitungsreihenfolge ist aber evtl. von Interface Reihenfolge und ggf. v6 ja oder nein abhängig. Block-outside-DNS pusht dann als Signal, dass er primär alles via VPN auflösen soll und eben nicht normal mit dem Internet redet.
* Linux: Don't get me started. NetworkManager ist ein absoluter Clusterfuck, je nach Distro und Netzwerk Manager Tool völlig andere Verhalten etc. - urgs.

Zusätzlich natürlich dann alles abhängig ob Split-Tunnel oder Full-Tunnel gebaut wird.

DNS abhängig von irgendwelchen Domains kannst du knicken. Genau dafür pusht man normalerweise eben den internen DNS, macht register-dns/block-outside und be done with it. Ob der DNS am Ziel des VPNs jetzt ein paar Domains mehr oder weniger auflöst, ist dem meist eh egal, dafür hat er nen Cache.
Wenn es eh nur eine spezifische Domain ist, die via VPN benötigt wird, könnte man das mit Domain Push und internem DNS testen, aber sicherer wäre lieber komplett auf den VPN DNS zu setzen und bei Verbindung alles darüber zu machen als zu hoffen, dass der Client das irgendwie selbst hinbekommt. Bis auf stabile VPN Tunnel, die sind da natürlich raus, denn die kann man anders behandeln und für diese dann auch ggf. was wie nen Domain Override bauen.

Cheers
"It doesn't work!" is no valid error description! - Don't forget to [applaud] those offering time & brainpower to help you!
Better have some *sense as no(n)sense! ;)

If you're interested in german-speaking business support, feel free to reach out via PM.

Na Du machst mir Hoffnung JeGr.

Habe auch schon festgestellt, dass DNS und Openvpn eine echt tolle Kombination sind ...
Das ist sowas von Client-Software-abhängig, dass man es eigentlich nur ausprobieren und immer ausschließlich 1:1 so nachbauen kann.
Jede Änderung kann komplett anderes Verhalten zur Folge haben - Vorhersagen sind da bestenfalls inspirierte Ratespiele. 
VMW / PMX / PFS / OPS

Dieser Client ist eine Alternative zu Tunnelblick/OpenVPN:

https://sparklabs.com/viscosity/

Kann auch Tricks wie Split-DNS per Domain etc. Alles clientseitig zu konfigurieren, klar. Viele meiner Kollegen nutzen den. Wir haben aber nur (positive) Erfahrung mit Mac OS, es gibt keine Windows-Laptops bei uns.
Deciso DEC750
People who think they know everything are a great annoyance to those of us who do. (Isaac Asimov)