Configurando servidores DNS usando o arquivo de configuração do cliente OpenVPN

16

Como definir servidores DNS no cliente usando apenas a configuração do cliente. Meu cliente é uma máquina Windows e eu quero alterar os servidores DNS quando o cliente se conectar e voltar à configuração original quando eu me desconectar da VPN.

Todas as informações que encontrei até agora se referem ao envio da configuração do DNS para o cliente usando a configuração do servidor, mas neste caso não posso alterar a configuração do servidor e atualmente o faço manualmente sempre que me conecto à VPN. Uma opção de configuração do openvpn para definir os servidores DNS das máquinas locais pela duração da conexão seria ótima.

Fahad Yousuf
fonte

Respostas:

3

Você pode usar o script em lote para fazer isso, algo como o seguinte. Ele assume que os servidores DNS domésticos são 1.1.1.1 e 2.2.2.2 e os servidores DNS da VPN são 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 -connect.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

Eu incluiria nesses scripts métodos de conexão e desconexão, no entanto, não vejo uma opção no OpenVPN para desconectar via linha de comando. Se você deseja automatizar a conexão, isso deve funcionar:

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

Andrew White
fonte
15

Você pode adicionar o seguinte ao arquivo de configuração do cliente.

dhcp-option DNS <dns_server_ip_address>

No lado do servidor, teria sido:

push "dhcp-option DNS <dns_server_ip_address>"

Parece que está usando dhcp-optionnos dois lados. Você pode fazer o mesmo com route.

brunoqc
fonte
4
Isso não funcionou para mim, embora pareça que deveria. A opção não estava no client.ovpn gerado. Quando o adiciono, ele ainda não funciona. Correr a partir de um Asus RT-N66U com estoque firmware 3.0.0.4.376_3861
Shea
2
Adicionei isso ao meu arquivo .ovpn antes da tag <ca> e funcionou esplendidamente! Obrigado! Eu testei isso na minha máquina Windows com OpenVPN 2.4.4 Windows versão 6.2
Michael Kargl
6

Aparentemente, há um problema com uma ordem de ligação defeituosa no Windows, incluindo pelo menos o Windows 2000 / XP / 7. Isso fará com que os clientes Windows OpenVPN usem as configurações DNS do adaptador de rede padrão em vez das configurações do adaptador VPN.

Para corrigir isso, é necessário colocar o dispositivo VPN TUN ou TAP acima do adaptador de rede local na ordem de ligação:

  1. Identifique seu dispositivo VPN observando a saída de ipconfig. Para mim, foi "Conexão local 2". Lembre-se do seu endereço IP para este adaptador.
  2. Abra o regedit.exe e encontre a chave HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfacesque corresponde ao endereço IP do seu adaptador VPN. Lembre-se do GUID para este adaptador.
  3. Vá para HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Linkagee clique duas vezes em Bind. Isso conterá uma lista de GUIDs para os adaptadores. Recorte e cole a linha correspondente ao GUID do seu dispositivo VPN no topo da lista e salve a lista.

Isso fará com que as entradas DNS do seu dispositivo VPN sejam usadas (e somente enquanto a conexão VPN estiver ativa). Você pode configurá-los de acordo com a resposta de @brunoqc. Enquanto você está nisso, provavelmente também deve adicionar a opção openvpn block-outside-dns, para garantir que as consultas DNS não estejam vazando.

Esta resposta é baseada nesta postagem de blog muito útil .

jtbr
fonte
Isso funcionou muito bem! Obrigado, senhor, por escrever este guia.
SeriousM 14/03
3

Além de um dos dois abaixo:

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

ou

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

Adicione-os também à configuração do cliente, para forçar o Windows a usar o DNS configurado:

register-dns
block-outside-dns

A primeira força o Windows a preferir o servidor DNS configurado em relação a qualquer outro que possa ter recebido do DHCP. O segundo impede o vazamento de DNS para qualquer servidor DNS que não seja o configurado.

Duke Nukem
fonte