Einrichten von DNS-Servern mithilfe der OpenVPN-Client-Konfigurationsdatei

15

Wie kann ich DNS-Server auf dem Client einrichten, indem ich nur die Client-Konfiguration verwende? Mein Client ist ein Windows-Computer und ich möchte die DNS-Server ändern, wenn der Client eine Verbindung herstellt, und zur ursprünglichen Konfiguration zurückkehren, wenn ich die Verbindung zum VPN trenne.

Alle Informationen, die ich bisher gefunden habe, beziehen sich auf das Übertragen der DNS-Konfiguration auf den Client mithilfe der Serverkonfiguration. In diesem Fall kann ich die Serverkonfiguration jedoch nicht ändern und mache dies derzeit jedes Mal manuell, wenn ich eine Verbindung zum VPN herstelle. Eine openvpn-Konfigurationsoption zum Festlegen der DNS-Server der lokalen Computer für die Dauer der Verbindung wäre großartig.

Fahad Yousuf
quelle

Antworten:

3

Sie können dazu ein Stapelskript wie das folgende verwenden. Es wird davon ausgegangen, dass Ihre privaten DNS-Server 1.1.1.1 und 2.2.2.2 und Ihre VPN-DNS-Server 8.8.8.8 und 9.9.9.9 sind:

vpn-connect.bat:

netsh interface ip set dns "Local Area Connection" static 8.8.8.8

netsh interface ip add dns "Local Area Connection" 9.9.9.9

vpn-disconnect.bat

netsh interface ip set dns "Local Area Connection" static 1.1.1.1

netsh interface ip add dns "Local Area Connection" 2.2.2.2

Ich wollte in diese Skripte Methoden zum Verbinden und Trennen aufnehmen, sehe jedoch keine Option in OpenVPN, um die Verbindung über die Befehlszeile zu trennen. Wenn Sie die Verbindung automatisieren möchten, sollte dies funktionieren:

C:\Program Files\bin\openvpn.exe C:\Program Files\conf\client.ovpn

Andrew White
quelle
13

Sie können der Client-Konfigurationsdatei Folgendes hinzufügen.

dhcp-option DNS <dns_server_ip_address>

Auf der Serverseite wäre es gewesen:

push "dhcp-option DNS <dns_server_ip_address>"

Es scheint, dass es dhcp-optionauf beiden Seiten verwendet. Das können Sie auch mit tun route.

brunoqc
quelle
3
Das hat bei mir nicht funktioniert, obwohl es so scheint, als ob es so wäre. Die Option war nicht in der generierten client.ovpn enthalten. Wenn ich es hinzufüge, funktioniert es immer noch nicht. Laufen von einem Asus RT-N66U mit stock Firmware 3.0.0.4.376_3861
Arnshea
2
Ich habe dies kurz vor dem <ca> -Tag zu meiner .ovpn-Datei hinzugefügt, und es hat hervorragend funktioniert! Vielen Dank! Ich habe dies auf meinem Windows-Rechner mit OpenVPN 2.4.4 Windows Version 6.2
Michael Kargl
6

Anscheinend liegt ein Problem mit einer fehlerhaften Bindungsreihenfolge in Windows vor, zumindest unter Windows 2000 / XP / 7. Dies führt dazu, dass Windows OpenVPN-Clients die DNS-Einstellungen des Standardnetzwerkadapters anstelle der Einstellungen des VPN-Adapters verwenden.

Um dies zu beheben, müssen Sie Ihr VPN TUN- oder TAP-Gerät in der Bindereihenfolge über Ihrem lokalen Netzwerkadapter platzieren:

  1. Identifizieren Sie Ihr VPN-Gerät anhand der Ausgabe von ipconfig. Für mich war dies "Local Area Connection 2". Merken Sie sich Ihre IP-Adresse für diesen Adapter.
  2. Öffnen Sie regedit.exe und suchen Sie den Schlüssel, unter HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfacesdem die IP-Adresse Ihres VPN-Adapters übereinstimmt. Merken Sie sich die GUID für diesen Adapter.
  3. Gehe zu HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Linkageund doppelklicke auf Bind. Dies enthält eine Liste der GUIDs für die Adapter. Schneiden Sie die Zeile, die der GUID Ihres VPN-Geräts entspricht, aus und fügen Sie sie oben in die Liste ein. Speichern Sie die Liste.

Dadurch werden die DNS-Einträge für Ihr VPN-Gerät verwendet (und nur, während die VPN-Verbindung aktiv ist). Sie können sie entsprechend der Antwort von @brunoqc einstellen. Wenn Sie schon dabei sind, sollten Sie wahrscheinlich auch die openvpn-Option hinzufügen block-outside-dns, um sicherzustellen, dass DNS-Abfragen nicht lecken.

Diese Antwort basiert auf diesem sehr nützlichen Blog-Beitrag .

jtbr
quelle
Das hat ganz gut geklappt! Vielen Dank, dass Sie diesen Leitfaden geschrieben haben
SeriousM
1

Zusätzlich zu einem der beiden folgenden Punkte:

dhcp-option DNS <dns_server_ip_address>          (add to client config)

oder

push "dhcp-option DNS <dns_server_ip_address>"   (add to server config)

Fügen Sie diese ebenfalls zur Client-Konfiguration hinzu, um Windows zur Verwendung des konfigurierten DNS zu zwingen:

register-dns
block-outside-dns

Der erste zwingt Windows, den konfigurierten DNS-Server einem anderen vorzuziehen, den es möglicherweise von DHCP erhalten hat. Die zweite verhindert, dass DNS-Daten an einen anderen als den konfigurierten DNS-Server gelangen.

Duke Nukem
quelle