Servidor DNS padrão não alterado após conexão com OpenVPN

Servidor DNS padrão não alterado após conexão com OpenVPN

Estou usando uma conexão OpenVPN entre meu laptop e meu servidor. A configuração funcionou até hoje (simplesmente executei apt update && apt upgrade), mas desde então minhas configurações de DNS estão "erradas" após conectar-me ao OpenVPN.

Depois de conectar-me ao servidor OpenVPN, tenho duas entradas de domínio DNS "catch all" ( DNS Domain: ~.) em minha systemd-resolveconfiguração.

Saída removida de systemd-resolve --status:

Link 11 (tun0)
      Current Scopes: DNS
       LLMNR setting: yes
MulticastDNS setting: no
      DNSSEC setting: no
    DNSSEC supported: no
         DNS Servers: 192.168.X.Y
          DNS Domain: ~.

Link 2 (enp0s25)
      Current Scopes: DNS
       LLMNR setting: yes
MulticastDNS setting: no
      DNSSEC setting: no
    DNSSEC supported: no
         DNS Servers: 10.16.X.Y
                      10.16.X.Y
          DNS Domain: ~.

Portanto, as consultas DNS agora não são encapsuladas de forma segura através da VPN, mas também podem ser transferidas através da rede normal.

Isso leva a um DNSLeak e ainda pior: os nomes de host internos da VPN não são resolvidos corretamente (de vez em quando).

Só conheço opções para adicionar a DNS Domain: ~.entrada à interface tun0 para resolver. Mas como faço para remover um já existente da interface real?

Já estou usando esta configuração para atualizar o systemd resolvido em meu OpenVPN client.conf:

# Upate systemd-resolvd
up /etc/openvpn/update-systemd-resolved
down /etc/openvpn/update-systemd-resolved
down-pre
dhcp-option DOMAIN-ROUTE .

Alguém tem alguma ideia de como resolver isso?

// Atualização: parece que este é um problema mais conhecido com o NetworkManager começando a anexar o domínio DNS raiz aos links aleatoriamente. Há uma discussão interessante sobre isso em umProblema no GitHubno repositório do desenvolvedor do update-systemd-resolvedscript.

// Provavelmenteeste commitpara o NetworkManager quebrou. Uma vez que introduziu a rota DNS padrão para o comportamento de todas as interfaces.

Responder1

Adicione ao arquivo de configuração do cliente (o arquivo com extensão .ovpn) baixado do servidor OpenVPN a linha:

dhcp-option DOMAIN-ROUTE .

Como você sabe, antes de adicionar esta linha, no Ubuntu 18.04 você deve instalar update-systemd-resolvedscripts conforme descrito emhttps://github.com/jonathanio/update-systemd-resolved

Se ainda assim não funcionar, talvez você deva adicionar também seu servidor DNS interno. Verifique se as linhas adicionadas no final do arquivo .ovpn se parecem com:

script-security 2
dhcp-option DNS 10.1.0.1  # replace this IP with your DNS server IP.
dhcp-option DOMAIN yourinternaldomain.local  # replace this with your internal domain name.
dhcp-option DOMAIN-ROUTE .
up /etc/openvpn/update-systemd-resolved
down /etc/openvpn/update-systemd-resolved
down-pre

Se você usar a UI (gnome) para conectar

Por último, se você estiver usando os ícones UI VPN para se conectar à sua VPN, deverá importar novamente o arquivo .ovpn modificado.

Para fazer isso execute em um terminal:

sudo apt install openvpn openvpn-systemd-resolved resolvconf
sudo apt install network-manager-openvpn network-manager-openvpn-gnome

Clique no menu iniciar do Ubuntu:

Menu Ubuntu

Digite a palavra “rede” e clique em Rede. Deve mostrar algo como:

Configuração de rede

Clique no "+" entre na VPN e clique na opção "importar do arquivo":

importar arquivo ovpn

Depois de importado, adicione um nome e clique no botão "adicionar" no canto superior direito da caixa de diálogo.

Estás pronto!


Para se conectar à VPN, clique no ícone de rede e depois no ícone de cadeado.

insira a descrição da imagem aqui

informação relacionada