Resolução de DNS acontecendo inconsistentemente sobre o OpenVPN

2

Aqui está a configuração do meu servidor OpenVPN:

port 1194
proto udp

dev tun

ca ca.crt
cert server.crt
key server.key
dh dh4096.pem

topology subnet

server 10.224.127.0 255.255.255.0 # AKA 10.224.127.0/24

ifconfig-pool-persist ipp.txt

push "route 10.0.0.0 255.0.0.0"
push "dhcp-option DNS 10.0.9.102"
push "dhcp-option DNS 10.0.8.186"
push "dhcp-option DOMAIN dc1.lam.myname.net aws.myname.net myname.local"

keepalive 10 120

comp-lzo

max-clients 10

user nobody
group nobody

persist-key
persist-tun

status openvpn-status.log

verb 3

cipher AES-256-CBC
auth SHA256
tls-version-min 1.2
tls-cipher TLS-DHE-RSA-WITH-AES-256-GCM-SHA384 TLS-DHE-RSA-WITH-AES-256-CBC-SHA256 TLS-DHE-RSA-WITH-AES-128-GCM-SHA256 TLS-DHE-RSA-WITH-AES-128-CBC-SHA256 TLS-DHE-RSA-WITH-AES-256-CBC-SHA TLS-DHE-RSA-WITH_AES-128-CBC-SHA

client-cert-not-required
username-as-common-name
plugin /usr/lib64/openvpn/plugins/openvpn-plugin-auth-pam.so login

Eu basicamente quero fazer o seguinte:

  • Use nossos servidores DNS internos para resolução de nomes.
  • Aloque os endereços IP do cliente no intervalo 10.224.127.0/24 .
  • Apenas direcione o tráfego para 10.0.0.0/8 no link da VPN.
  • Use alguns domínios de pesquisa para pesquisas de DNS.
  • Endurecimento genérico e boa criptografia.
  • Use o PAM para fazer login.

Então, "basicamente" funciona, com algumas ressalvas. A resolução de DNS só funciona por alguns segundos depois que o servidor VPN fica on-line e depois para de funcionar. Eu posso rotear os pacotes TCP muito bem, independentemente de o DNS estar funcionando ou não.

Por que o DNS funciona apenas nos primeiros segundos da minha conexão? O que estou fazendo errado?

Os clientes que planejo usar são Linux e OSX. Como posso enviar a resolução de DNS para eles?

    
por Naftuli Kay 04.12.2015 / 07:36

1 resposta

2

Como a opção de envio de DNS do OpenVPN só funciona com o Windows, suponho que este seja o sistema operacional executado pelos seus clientes VPN.

É provável que (como o HåkanLindqvist mencionou) algum software modifique suas configurações de DNS. Esse é um recurso comum de software relacionado à segurança (como antivírus), já que um servidor DNS falso pode ser usado por exemplo. ataques de phishing. Você terá que encontrar esse aplicativo e, se possível, executar um script do OpenVPN que desabilitará o recurso de proteção do DNS na conexão.

Além disso, se você usa o PAM, é necessário fornecer credenciais do userspace, portanto, o OpenVPN não pode ser executado como um serviço do Windows. Você executa a GUI do OpenVPN ou apenas a linha de comandos? Você começa com privilégios elevados?

Se você quiser usar endereços DNS fornecidos pelo servidor no cliente UNIX, você precisa de um script para ser executado a partir do OpenVPN na conexão que lê o ambiente OpenVPN e colocar os valores recebidos em /etc/resolv.conf . Verifique o manual para referência. A outra opção é instalar o dnsmasq localmente no cliente e fornecer as opções --server /LOCAL_DOMAIN/LOCAL_DNS_IP , que fornecerão a resolução de nomes no túnel VPN somente para hosts em domínios escolhidos.

    
por 04.12.2015 / 08:13