Es kann verschiedene Hintergründe haben, nicht nur direkt gewollten sondern jeglichen Datenverkehr durch einen VPN-Tunnel schicken zu wollen. Seien es zum einen Sicherheitsaspekte im Sinne von “Nichts darf ohne VPN funktionieren oder anderweitig am Tunnel vorbeigehen” oder das der Datenverkehr auf der anderen Seite durch zusätzliche Sicherheitssysteme geleitet und gefiltert wird.

Als ich vor nicht all zu langer Zeit im Westerwaldkreis zwischen Montabaur (Nein, ich habe nichts mit 1&1 Ionos zu tun) und Koblenz unterwegs war, gab es gleich mehrere Probleme die mir unterwegs begegneten. Je nach aktuellem Standort gab es durchweg DNS-Probleme mit hohen Latenzen oder Timeouts und teils falsch aufgelösten Adressen. An manchen Punkten gab es zudem Schwierigkeiten das der Datenverkehr “ruckelte”, dabei lag es keineswegs an den jeweiligen Internetverbindungen an sich.

Die DNS-Probleme könnten teilweise auf die damaligen Schwierigkeiten bei Quad9 zurückzuführen sein, wobei dann mehrere Provider in der genannten Region diesen Anbieter hätten nutzen müssen. Eher unwahrscheinlich.

Jedenfalls fiel schnell auf, das der “ruckelnde” Datenverkehr nicht bei der Nutzung von OpenVPN auftrat. Da lag es dann Nahe, eine VPN-Verbindung für alles zu nutzen, da auch die DNS-Probleme damit zumindest umgegangen werden konnten.

Soviel zum “Warum” es diesen Beitrag gibt. Auf der VPN-Gegenseite, die wiederum in der Rhein-Main-Region liegt, befindet sich eine pfSense und dort ist bereits eine Roadwarrior-Verbindung inkl. DNS-Auflösung konfiguriert. Fehlt(e) also nur noch das jedweder Datenverkehr durch den Tunnel geht.

Da kein Risiko eingegangen werden sollte, die bestehenden Roadwarrior durch Konfigurationsänderungen irgendwie womöglich negativ zu beeinflussen wurde kurzerhand der vorhandene OpenVPN-Server kopiert. Bei pfSense ist das simple mit einem Mausklick rechts nebem dem Server zwischen “Editieren” und “Löschen” möglich:

In diesem Screenshot ist bereits die Kopie des Roadwarrior-Servers vorhanden.

Damit es zu keinen Konflikten mit dem bereits vorhandenen OpenVPN-Server kommt muss mindestens der “Local Port” und das “IPv4 Tunnel Network” geändert werden! Selbstredend sollte man einen passenden Namen vergeben.

Damit nun der gesamte Datenverkehr vom Roadwarrior/Client durch den Tunnel geleitet wird muss unter “Tunnel Settings” noch

Redirect IPv4 Gateway Force all client-generated IPv4 traffic through the tunnel.

aktiviert werden.

Falls noch nicht geschehen sollten unter “Advanced Client Settings” zudem folgende Einstellungen aktiviert werden:

Block Outside DNS Make Windows 10 Clients Block access to DNS servers except across OpenVPN while connected, forcing clients to use only VPN DNS servers.Requires Windows 10 and OpenVPN 2.3.9 or later. Only Windows 10 is prone to DNS leakage in this way, other clients will ignore the option as they are not affected.

und

Force DNS cache update Run "net stop dnscache", "net start dnscache", "ipconfig /flushdns" and "ipconfig /registerdns" on connection initiation.This is known to kick Windows into recognizing pushed DNS servers.

Ferner muss der neue OpenVPN-Server (Port) und der weitere Datenverkehr im Tunnel in der Firewall durch entsprechende Regeln zugelassen werden.

Hat man soweit alles vorbereitet, kann die OpenVPN-Client-Konfiguration angepasst oder einfacher durch die pfSense-Erweiterung “openvpn-client-export” neu exportiert werden.

Verbindet sich nun der Roadwarrior bzw. OpenVPN-Client, wird der gesamte Datenverkehr durch den Tunnel geleitet.

Troubleshooting

Eigentlich hätte nach den obigen Schritten alles gut sein können, wieder erwartend funktioniert dann überhaupt kein DNS mehr über den neuen OpenVPN-Server. Gelöst werden konnte dies wie folgt:

Unter “Services – DNS Resolver” bei “Network Interfaces” auf “All” stellen. Dies entspricht der Standardeinstellung. Bei der genannten pfSense-Installation waren allerdings nur bestimmte Interfaces ausgewählt.

Interessanterweise enthält die Liste überhaupt keine OpenVPN-Schnittstellen. Nutzt man DNS über OpenVPN ohne aktiviertes “Redirect IPv4 Gateway” und hat nur bestimmte Interfaces ausgewählt funktioniert die Namensauflösung.