
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-resolve
configuraçã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-resolved
script.
// 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-resolved
scripts 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:
Digite a palavra “rede” e clique em Rede. Deve mostrar algo como:
Clique no "+" entre na VPN e clique na opção "importar do arquivo":
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.