
Estoy usando una conexión OpenVPN entre mi computadora portátil y mi servidor. La configuración funcionó hasta hoy (simplemente ejecuté apt update && apt upgrade
), pero desde entonces mi configuración de DNS es "incorrecta" después de conectarme a OpenVPN.
Después de conectarme al servidor OpenVPN, tengo dos entradas de dominio DNS que "captan todas" ( DNS Domain: ~.
) en mi systemd-resolve
configuración.
Salida despojada 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: ~.
Por lo tanto, las consultas DNS ahora no se tunelizan de forma segura a través de la VPN, sino que también se pueden transferir a través de la red normal.
Esto conduce a una fuga de DNS y aún peor: los nombres de host internos de VPN no se resuelven correctamente (de vez en cuando).
Solo conozco opciones para agregar la DNS Domain: ~.
entrada a la interfaz tun0 para resolverla. ¿Pero cómo elimino uno ya existente de la interfaz real?
Ya estoy usando esta configuración para actualizar systemd-resolved en mi client.conf de OpenVPN:
# Upate systemd-resolvd
up /etc/openvpn/update-systemd-resolved
down /etc/openvpn/update-systemd-resolved
down-pre
dhcp-option DOMAIN-ROUTE .
¿Alguien tiene una idea de cómo solucionar esto?
// Actualización: Parece que este es un problema conocido desde hace mucho tiempo con NetworkManager comenzando a adjuntar el dominio DNS raíz a enlaces al azar. Hay una interesante discusión al respecto en unProblema de GitHuben el repositorio del desarrollador del update-systemd-resolved
script.
// Probablementeeste compromisoa NetworkManager lo rompió. Desde que introdujo la ruta DNS predeterminada para el comportamiento de todas las interfaces.
Respuesta1
Agregue al archivo de configuración del cliente (el archivo con extensión .ovpn) descargado del servidor OpenVPN la línea:
dhcp-option DOMAIN-ROUTE .
Como sabes, antes de agregar esta línea, en Ubuntu 18.04 debes instalar update-systemd-resolved
scripts como se describe enhttps://github.com/jonathanio/update-systemd-resolved
Si aún no funciona, quizás debas agregar también tu servidor DNS interno. Verifique que las líneas que agrega al final del archivo .ovpn se vean así:
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
Si usa la interfaz de usuario (gnome) para conectarse
Por último, si está utilizando los iconos de VPN de la interfaz de usuario para conectarse a su VPN, debe volver a importar el archivo .ovpn modificado.
Para hacer eso ejecute en una terminal:
sudo apt install openvpn openvpn-systemd-resolved resolvconf
sudo apt install network-manager-openvpn network-manager-openvpn-gnome
Haga clic en el menú de inicio de Ubuntu:
Escriba la palabra "red" y haga clic en Red. Debería mostrar algo como:
Haga clic en el "+"Inicie sesión en VPN y haga clic en la opción "importar desde archivo":
Una vez importado, agregue un nombre y haga clic en el botón "agregar" en la parte superior derecha del cuadro de diálogo.
¡Estas listo!
Para conectarse a la VPN, haga clic en el ícono de red y luego en el ícono de candado.