OpenVPN e systemd-resolved: o DNS não resolve nomes internos de VPN

1

Eu tenho uma VPN configurada em algumas máquinas virtuais usando o OpenVPN. Uma das VMs está executando o dnsmasq para fornecer um DNS básico para dentro da rede. Meu cliente está executando o Ubuntu, que agora mais ou menos força o sistema a ser resolvido. Eu estou achando que, embora afirme ter configurado o DNS, eu não posso realmente fazer um nslookup ou cavar em nomes de host dentro da VPN. Eu posso enviar ping por IP, mas não pelo nome.

Vamos nos aprofundar nos arquivos de configuração.

Conf do servidor OpenVPN:

mode server
local 192.168.50.101
port 1194
proto udp
dev tun
ca /etc/openvpn/server/ssl/ca.pem
cert /etc/openvpn/server/ssl/cert.pem
key /etc/openvpn/server/ssl/key.pem
dh /etc/openvpn/server/ssl/dh2048.pem
topology subnet
server 10.99.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "route 10.10.0.0 255.255.255.0"
push "dhcp-option DNS 10.99.0.1"
keepalive 10 120
cipher AES-128-CBC   # AES
comp-lzo
push "comp-lzo yes"
user openvpn
group openvpn
persist-key
persist-tun
status openvpn-status.log
log-append  openvpn.log
verb 6
mute 20

Conf do cliente:

client
dev tun
proto udp
remote 192.168.50.101 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca REDACTED
cert REDACTED
key REDACTED
remote-cert-tls server
cipher AES-128-CBC
comp-lzo
verb 3
mute 20
ping-restart 30
script-security 2
setenv PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
up /etc/openvpn/update-systemd-resolved
down /etc/openvpn/update-systemd-resolved
down-pre

Eu instalei o link , como parece ser recomendado. Na verdade, ele atualiza as configurações de DNS conforme pode ser mostrado pelos logs resolvidos pelo sistema ( Switching to DNS server 10.99.0.1 for interface tun0. ) e --status output:

Link 26 (tun0)
      Current Scopes: DNS
       LLMNR setting: yes
MulticastDNS setting: no
      DNSSEC setting: no
    DNSSEC supported: no
         DNS Servers: 10.99.0.1

/etc/resolve.conf aponta para 127.0.0.53, como é o padrão para usar o systemd-resolved.

Eu tentei usar a conexão OpenVPN integrada do NetworkManager, e ela não corrige o problema do DNS, nem mesmo configura rotas corretamente (por isso não consigo nem pingar nem conectar por IP).

Apenas algumas outras coisas que as pessoas provavelmente perguntarão:

  • Essa configuração funciona para meus colegas de trabalho em Macs, usando Viscosity. É apenas o Ubuntu / Linux que está falhando aqui no lado do cliente.
  • O firewall no servidor OpenVPN permite a porta 53 e eu posso verificar com o telnet.
  • Se eu configurar /etc/resolv.conf para apontar para o servidor DNS da minha VPN (em 10.99.0.1), a resolução de DNS funcionará bem. No entanto, o resolv.conf é gerenciado pelo systemd-resolved ou NetworkManager via resolvconf e eu gostaria de mantê-los, se possível, para não perturbar o carrinho de compras do Ubuntu.
por siride 26.07.2017 / 23:34

0 respostas