Cuando me conecto a una red VPN a través de Gnome Network-manager, pierdo la resolución DNS y, en la práctica, no puedo acceder a los recursos dentro de la red VPN o fuera.
Cuando estaba usando Ubuntu 16.04 y estaba usando la VPN, el /etc/resolv.conf/
archivo " " contenía los servidores DNS de la red (VPN) que había conectado. Ahora siempre contiene las siguientes entradas:
nameserver 127.0.0.53
search myprovider.com
Por lo que he entendido 127.0.0.53
es la dirección del código auxiliar DNS utilizado por system-resolved
.
Sospecho que esto es un error porque la VPN funcionaba bien Ubuntu 16.04. ¿Hay alguna manera de configurar los servidores DNS de mi red cuando estoy usando un servicio VPN?
Actualizar:
Intenté conectarme a la red OpenVPN con el archivo de configuración adjunto al final de la publicación, pero aparece el siguiente error:
Authenticate/Decrypt packet error: cipher final failed
He verificado que el servidor usa la compresión lzo y también lo he habilitado. La conexión permanece activa pero no puedo navegar a ninguna página dentro o fuera de la VPN.
En el archivo de configuración que figura a continuación, he incluido las soluciones publicadas en las respuestas.
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
fuente
resolvectl status
yresolvectl help
descubrí mi solución específica.Respuestas:
Encontré una solución en esta publicación de blog . Si bien se mencionan dos soluciones, prefiero usar la segunda porque significa que mi DNS está configurado por el servidor OpenVPN (la primera solución significa que uso los mismos servidores DNS, esté o no conectado al servidor OpenVPN).
En breve:
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
Luego edite su archivo de cliente OpenVPN (por ejemplo, client.ovpn) cambiando los scripts de arriba / abajo a:
(He comentado la configuración original arriba / abajo).
fuente
config.ovpn
no es "encontrado": es el archivo de configuración del cliente utilizado para conectarse. Puede generarlo, o su proveedor de OpenVPN lo emite (y es posible que no se llameconfig.ovpn
, se podría llamar de cualquier forma, comoclient.ovpn
).WARNING: Failed running command (--up/--down): external program fork failed
Problema
El script
/etc/resolv.conf
no actualiza el archivo/etc/openvpn/update-resolv-conf
porqueresolvconf
no está instalado de manera predeterminada en ubuntu 18.04.De hecho, una de las primeras líneas de ese script verifica el
/sbin/resolvconf
ejecutable:La instalación de resolvconf vía
apt-get
no es una solución ya que el/etc/openvpn/update-resolv-conf
script actualiza el/etc/resolv.conf
archivo con la entrada DNS introducida, pero el dispositivo tun parece ignorarlo.Solución
Ubuntu 18.04 usa
systemd-resolved
, así que todo lo que tienes que hacer es instalar el script de ayuda openvpn parasystemd-resolved
víao con estas instrucciones de GitHub
Actualice su
config.ovpn
archivo agregando estas líneas:Que en lugar de sumar y bajar de
/etc/openvpn/update-resolv-conf
la conf.Para evitar fugas de DNS, debe agregar esta línea al final del
config.ovpn
archivo (de acuerdo con este comentario del problema systemd ):fuente
script-security 2
aún es necesario antes de las líneas ascendentes / descendentes, de lo contrario el programa se cae con un error (OpenVPN 2.4.4)script-security 2
no fue necesario. Quizás sea porque estoy ejecutando el cliente openvpn como root (con sudo)sudo apt-get install network-manager-openvpn-gnome
Entonces debería poder importar archivos de configuración .ovpn en el administrador de red gnome. askubuntu.com/questions/187511/… La interfaz de usuario ha cambiado con el tiempo, debería poder encontrarla en configuración-> red-> vpnEn realidad, hay una solución mucho más fácil para este problema. El problema es con el tráfico DNS y cómo Ubuntu 18 maneja eso. De manera predeterminada, el reenvío de IP está deshabilitado, que es lo que OpenVPN necesita para proporcionar una red adecuada. Todo lo que tienes que hacer es ejecutar el siguiente comando:
Una vez que tenga este archivo abierto, busque la línea que contiene
net.ipv4.ip_forward
. Si esta línea está comentada, elimine el signo # al frente de la línea (si no está comentado, entonces tiene otro problema). Guarde el archivo y luego reinicie su instancia de servidor OpenVPN.Esta solución no requiere ninguna modificación en el código del cliente o OpenVPN después de la actualización a Ubuntu 18. Probado y confirmado que funciona.
Sin embargo, esto obviamente requiere que pueda administrar el servidor. Y desafortunadamente, el error existe para muchos que simplemente se conectan con 18.04 a un servidor OpenVPN que es administrado por otra persona ...
fuente
Hay otros comandos útiles para configurar lo que necesita a través de la línea de comandos. Pero en mi caso puedes controlar tu conexión VPN tanto con la línea de comando como con la 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
Y mucho más interesante toque final:
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'
Luego puede controlar vpn con GUI o usar los siguientes comandos:
sudo nmcli --ask connection up la.vpn.contoso.com sudo nmcli connection down la.vpn.contoso.com
fuente
Yo también estoy impactado. En mi caso, estoy usando OpenVPN con un servidor de nombres interno (que está dentro de la VPN). Eso funcionó hasta Ubuntu 17.10 (con "hosts: files dns" en /etc/nsswitch.conf).
/etc/resolv.conf fue actualizado correctamente por los scripts openvpn (a través de llamadas a / etc / openvpn / update-resolv-conf en el archivo de configuración del cliente openvpn).
Sin embargo, la resolución de nombres para los hosts dentro de la VPN ya no funcionaba (o al menos esporádicamente ... Supongo que el caché DNS local estaba eligiendo los nombres, pero después de un tiempo bastante largo).
Lo que parece ayudar, o incluso resolver el problema (aunque es demasiado pronto para decirlo) es instalar el siguiente paquete:
sudo apt install openvpn-systemd-resolve
En unos días, tendré más experiencia si esto soluciona mi problema o no.
Si también te afecta, ¡intenta esto y publica comentarios!
Aclamaciones,
Miguel.
fuente