Quando me conecto a uma rede VPN através do Gnome Network-manager, perco a resolução do DNS e, na prática, não consigo acessar recursos dentro ou fora da rede VPN.
Quando eu estava usando o Ubuntu 16.04 e a VPN, o /etc/resolv.conf/
arquivo " " continha os servidores DNS da rede (VPN) que eu havia conectado. Agora, ele sempre contém as seguintes entradas:
nameserver 127.0.0.53
search myprovider.com
Pelo que entendi 127.0.0.53
é o endereço do stub DNS usado pelo system-resolved
.
Eu suspeito que isso seja um bug porque a VPN estava funcionando bem no Ubuntu 16.04. Existe alguma maneira de definir os servidores DNS da minha rede quando estou usando um serviço VPN?
Atualizar:
Tentei me conectar à rede OpenVPN com o arquivo de configuração anexado no final da postagem, mas recebo o seguinte erro:
Authenticate/Decrypt packet error: cipher final failed
Eu verifiquei que o servidor usa a compactação lzo e também a habilitei. A conexão permanece ativa, mas não consigo navegar para nenhuma página dentro ou fora da VPN.
No arquivo de configuração listado abaixo, incluí as soluções postadas nas respostas
client
dev tun
proto udp
remote openvpn.bibsys.no 1194
remote my-server-2 1194
resolv-retry infinite
nobind
user myuser
group myuser
persist-key
persist-tun
ca ca-cert.pem
cert openvpn.crt
key openvpn.key
cipher AES-256-CBC
comp-lzo yes
script-security 2
up /etc/openvpn/scripts/update-systemd-resolved
down /etc/openvpn/scripts/update-systemd-resolved
down-pre
fonte
resolvectl status
eresolvectl help
descobri minha solução específica.Respostas:
Encontrei uma solução nesta postagem do blog . Embora haja duas soluções mencionadas, prefiro usar a segunda porque significa que meu DNS é definido pelo servidor OpenVPN (a primeira solução significa que eu uso os mesmos servidores DNS, estando ou não conectado ao servidor OpenVPN).
Em resumo:
sudo mkdir -p /etc/openvpn/scripts
sudo wget https://raw.githubusercontent.com/jonathanio/update-systemd-resolved/master/update-systemd-resolved -P /etc/openvpn/scripts/
sudo chmod +x /etc/openvpn/scripts/update-systemd-resolved
Em seguida, edite seu arquivo de cliente OpenVPN (por exemplo, client.ovpn) alterando os scripts para cima / para baixo para:
(Comentei as configurações originais para cima / baixo).
fonte
config.ovpn
não foi "encontrado" - é o arquivo de configuração do cliente usado para a conexão. Você o gera ou é emitido pelo seu provedor OpenVPN (e pode não ser chamadoconfig.ovpn
- pode ser chamado de qualquer coisa, por exemploclient.ovpn
).WARNING: Failed running command (--up/--down): external program fork failed
Problema
O arquivo
/etc/resolv.conf
não é atualizado pelo/etc/openvpn/update-resolv-conf
script porqueresolvconf
não é instalado por padrão no ubuntu 18.04.De fato, uma das primeiras linhas desse script verifica o
/sbin/resolvconf
executável:Instalar resolvconf via
apt-get
não é uma solução, pois o/etc/openvpn/update-resolv-conf
script atualiza o/etc/resolv.conf
arquivo com a entrada DNS enviada, mas o dispositivo tun parece ignorá-lo.Solução
O Ubuntu 18.04 usa
systemd-resolved
, então tudo que você precisa fazer é instalar o script auxiliar openvpn porsystemd-resolved
meio deou com estas instruções do GitHub
Atualize seu
config.ovpn
arquivo adicionando estas linhas:Isso em vez de somar para cima e para baixo
/etc/openvpn/update-resolv-conf
no conf.Para evitar vazamento de DNS, você deve adicionar esta linha ao final do
config.ovpn
arquivo (de acordo com este comentário de problema do systemd ):fonte
script-security 2
ainda é necessária antes up / down linhas, caso contrário o programa cai com um erro (OpenVPN 2.4.4)script-security 2
não era necessário. Isso é talvez porque eu estou correndo o cliente OpenVPN como root (com sudo)sudo apt-get install network-manager-openvpn-gnome
Então você deve poder importar arquivos de configuração .ovpn para o gerenciador de rede do gnome. askubuntu.com/questions/187511/… A interface do usuário mudou ao longo do tempo, você deve descobrir que em configurações-> rede-> vpnNa verdade, há uma solução muito mais fácil para esse problema. A questão é com o tráfego DNS e como o Ubuntu 18 gerencia isso. Por padrão, o encaminhamento de IP é desativado, e é disso que o OpenVPN precisa para fornecer uma rede adequada. Tudo o que você precisa fazer é executar o seguinte comando:
Depois de abrir esse arquivo, procure a linha que contém
net.ipv4.ip_forward
. Se esta linha for comentada, remova o sinal # na frente da linha (se não estiver comentado, você terá outro problema). Salve o arquivo e, em seguida, reinicie sua instância do servidor OpenVPN.Esta correção não requer nenhuma modificação no cliente ou no código OpenVPN após a atualização para o Ubuntu 18. Funcionamento testado e confirmado.
No entanto, isso obviamente requer que você possa administrar o servidor. E, infelizmente, o bug existe para muitos que se conectam com o 18.04 a um servidor OpenVPN que é administrado por outra pessoa ...
fonte
Existem outros comandos úteis para configurar o que você precisa via linha de comando. Mas no meu caso, você pode controlar sua conexão VPN com linha de comando e GUI.
sudo nmcli connection add type vpn vpn-type openvpn con-name la.vpn.contoso.com ifname --
sudo nmcli connection modify la.vpn.contoso.com ipv4.dns 172.16.27.1 sudo nmcli connection modify la.vpn.contoso.com ipv4.dns-search int.contoso.com sudo nmcli connection modify la.vpn.contoso.com ipv4.never-default yes
E toque final muito mais interessado:
nmcli connection modify la.vpn.contoso.com vpn.data 'ca = /tmp/la.vpn.contoso.com/you/ca.crt, key = /tmp/you.key, dev = tun, cert = /tmp/you.crt, cert-pass-flags = 1, comp-lzo = adaptive, remote = la.vpn.contoso.com:1194, connection-type = tls'
Depois, você pode controlar o vpn com GUI ou usar os seguintes comandos:
sudo nmcli --ask connection up la.vpn.contoso.com sudo nmcli connection down la.vpn.contoso.com
fonte
Eu também estou impactado. No meu caso, estou usando o OpenVPN com um servidor de nomes interno (que está dentro da VPN). Isso funcionou até o Ubuntu 17.10 (com "hosts: files dns" em /etc/nsswitch.conf).
O arquivo /etc/resolv.conf foi atualizado corretamente pelos scripts openvpn (por meio de chamadas para / etc / openvpn / update-resolv-conf no arquivo de configuração do cliente openvpn).
No entanto, a resolução de nomes para hosts dentro da VPN não estava mais funcionando (ou pelo menos esporadicamente ... acho que o cache DNS local estava escolhendo os nomes, mas depois de muito tempo).
O que parece ajudar, ou mesmo resolver o problema (embora seja muito cedo para dizer) é instalar o pacote abaixo:
O sudo apt instala o openvpn-systemd-resolved
Dentro de alguns dias, terei mais experiência se isso corrige meu problema ou não.
Se você também foi impactado, tente isso e poste comentários!
Felicidades,
Michael.
fonte