Configurei um servidor OpenVPN, bem como um servidor DNS na rede privada para resolver endereços DNS privados.
No servidor OpenVPN, defini o endereço DNS privado na configuração DNS do cliente. Eu tenho três clientes, rodando Android, Ubuntu e Raspbian, respectivamente.
Os clientes Android e Ubuntu parecem usar o servidor privado; pelo menos eu posso resolver nomes privados. No entanto, isso não funciona no cliente Raspbian: os endereços privados não podem ser resolvidos e nslookup
retorna uma resposta proveniente de um servidor DNS na LAN do cliente, não na extremidade remota da VPN.
Quando executo o nslookup no modo interativo e defino o servidor explicitamente, as consultas são resolvidas, o que me diz que as consultas DNS podem passar pela VPN sem serem bloqueadas. O problema parece ser que o cliente está consultando o servidor DNS errado.
Aqui está a configuração do cliente Raspbian:
client
remote 'vpn.example.org'
ca 'ca.pem'
cert 'cert.pem'
key 'key.pem'
cipher AES-128-CBC
dev tun
proto udp
verify-x509-name 'vpn.example.org'
tls-auth 'hmackey.pem' 1
auth SHA256
nobind
auth-nocache
script-security 2
persist-key
persist-tun
Os outros dois clientes foram configurados usando ferramentas GUI, portanto, não posso fornecer arquivos de configuração confiáveis (eles oferecem exp
Preciso definir algo no lado do cliente para que o cliente use os servidores DNS na VPN?
De acordo com esta resposta em serverfault , algumas versões do Linux exigem duas linhas extras na configuração do cliente para atualizar a configuração do resolvedor quando a VPN é ativada ou desativada:
Além disso, o servidor DNS interno precisa ser configurado para aceitar consultas recursivas da VPN. Por padrão, alguns servidores (por exemplo, BIND9) permitem isso apenas para consultas da própria sub-rede do servidor DNS.
Com essas duas alterações, agora posso resolver nomes privados.