Configuración de servidores DNS utilizando el archivo de configuración del cliente OpenVPN

16

¿Cómo puedo configurar servidores DNS en el cliente usando solo la configuración del cliente? Mi cliente es una máquina con Windows y quiero cambiar los servidores DNS cuando el cliente se conecta y volver a la configuración original cuando me desconecto de la VPN.

Toda la información que he encontrado hasta ahora se refiere a enviar la configuración de DNS al cliente usando la configuración del servidor, pero en este caso no puedo cambiar la configuración del servidor y actualmente lo estoy haciendo manualmente cada vez que me conecto a la VPN. Una opción de configuración de openvpn para configurar los servidores DNS de las máquinas locales durante la conexión sería genial.

Fahad Yousuf
fuente

Respuestas:

3

Puede usar un script por lotes para hacer esto, algo como lo siguiente. Se supone que los servidores DNS de su hogar son 1.1.1.1 y 2.2.2.2 y que sus servidores DNS VPN son 8.8.8.8 9.9.9.9:

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

Iba a incluir en estos scripts métodos de conexión y desconexión, sin embargo, no veo una opción en OpenVPN para desconectar a través de la línea de comandos. Si desea automatizar la conexión, esto debería funcionar:

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

Andrew White
fuente
15

Puede agregar lo siguiente al archivo de configuración del cliente.

dhcp-option DNS <dns_server_ip_address>

En el lado del servidor habría sido:

push "dhcp-option DNS <dns_server_ip_address>"

Parece que está usando dhcp-optionen ambos lados. Puedes hacer lo mismo con route.

brunoqc
fuente
44
Esto no funcionó para mí, aunque parece que debería. La opción no estaba en el client.ovpn generado. Cuando lo agrego, todavía no funciona. Ejecutando desde un Asus RT-N66U con firmware de stock 3.0.0.4.376_3861
Shea
2
¡Agregué esto a mi archivo .ovpn justo antes de la etiqueta <ca> y funcionó espléndidamente! ¡Gracias! Probé esto en mi máquina Windows con OpenVPN 2.4.4 Windows versión 6.2
Michael Kargl
6

Aparentemente hay un problema con un orden de enlace defectuoso en Windows, que incluye al menos Windows 2000 / XP / 7. Esto hará que los clientes de Windows OpenVPN utilicen la configuración DNS predeterminada del adaptador de red en lugar de la configuración del adaptador VPN.

Para solucionar esto, debe colocar su dispositivo VPN TUN o TAP sobre su adaptador de red local en el orden de enlace:

  1. Identifique su dispositivo VPN mirando la salida de ipconfig. Para mí esto fue "Conexión de área local 2". Recuerde su dirección IP para este adaptador.
  2. Abra regedit.exe y encuentre la clave bajo la HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfacescual coincide con la dirección IP de su adaptador VPN. Recuerde el GUID para este adaptador.
  3. Ve HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Linkagey haz doble clic en Bind. Esto contendrá una lista de GUID para los adaptadores. Corte y pegue la línea correspondiente al GUID de su dispositivo VPN en la parte superior de la lista y guarde la lista.

Esto hará que se utilicen las entradas DNS para su dispositivo VPN (y solo mientras la conexión VPN esté activa). Puede configurarlos de acuerdo con la respuesta de @brunoqc. Mientras lo hace, probablemente también deba agregar la opción openvpn block-outside-dns, para asegurarse de que las consultas DNS no tengan fugas.

Esta respuesta se basa en esta publicación de blog muy útil .

jtbr
fuente
Eso funcionó bastante bien! Gracias señor por escribir esta guía
SeriousM
3

Además de cualquiera de los dos siguientes:

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

o

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

Agregue estos a la configuración del cliente también, para obligar a Windows a usar el DNS configurado:

register-dns
block-outside-dns

El primero obliga a Windows a preferir el servidor DNS configurado sobre cualquier otro que haya recibido de DHCP. El segundo evita la fuga de DNS a cualquier servidor DNS que no sea el configurado.

Duke Nukem
fuente