ubuntu - Kubuntu network-manager-openvpn no enruta el tráfico a través del servidor VPN

CorePress2023-09-17  1

Tengo un archivo de configuración OpenVPN que funciona muy bien desde la terminal:

sudo openvpn --config openvpn.conf

Después de conectarme a través del terminal, mi tabla de enrutamiento es la siguiente:

[van@d2:Desktop]$ ip route
0.0.0.0/1 via 255.255.255.0 dev tun0 
default via 192.168.0.1 dev wlp3s0 proto static metric 600 
10.9.0.1 via 255.255.255.0 dev tun0 
<vpn_server_ip_addr> via 192.168.0.1 dev wlp3s0 
128.0.0.0/1 via 255.255.255.0 dev tun0 
169.254.0.0/16 dev wlp3s0 scope link metric 1000 
192.168.0.0/24 dev wlp3s0 proto kernel scope link src 192.168.0.5 metric 600 
255.255.255.0 dev tun0 proto kernel scope link src 10.9.0.4

Quería intentar que todo funcionara desde Network Manager, así que instalé network-manager-openvpn y luego importé la conexión VPN desde el archivo de configuración en funcionamiento. Sin embargo, cuando me conecto usando Network Manager, el tráfico no se enruta a través del servidor OpenVPN. La tabla de enrutamiento (después de conectarse usando la entrada de Network Manager) es la siguiente:

[van@d2:Desktop]$ ip route
default via 192.168.0.1 dev wlp3s0 proto static metric 600 
10.9.0.0/24 dev tun0 proto kernel scope link src 10.9.0.4 metric 50 
<vpn_server_ip_addr> via 192.168.0.1 dev wlp3s0 proto static metric 600 
169.254.0.0/16 dev wlp3s0 scope link metric 1000 
192.168.0.0/24 dev wlp3s0 proto kernel scope link src 192.168.0.5 metric 600 
192.168.0.1 dev wlp3s0 proto static scope link metric 600

He intentado agregar la entrada 0.0.0.0 (de la tabla de enrutamiento en funcionamiento), pero se rechaza:

[van@d2:Desktop]$ sudo ip route add 0.0.0.0/1 via 255.255.255.0 dev tun0 
RTNETLINK answers: Network is unreachable

También he intentado eliminar:

10.9.0.0/24 dev tun0 proto kernel scope link src 10.9.0.4 metric 50

y reemplazándolo por:

10.9.0.1 via 255.255.255.0 dev tun0 

pero esto también falla con un mensaje de error similarge (la eliminación funcionó).

Mi pregunta es: ¿cómo puedo conectarme a un servidor OpenVPN a través del Network Manager y forzar que todo el tráfico se enrute a través del túnel VPN?

  • ¿Marcó la "pestaña Configuración de IPv4> Rutas > Utilice esta conexión sólo para recursos en su red. en la conexión del administrador de red? -Alfonso Nishikawa 20 de abril de 2018 a las 14:06
  • Hace tiempo que no reviso este problema, pero es posible que lo haga pronto. Me ha resultado mucho más fácil simplemente conectarme a través del terminal (es decir, sudo openvpn --config client.ovpn). - Vanessa Deagan 20 de abril de 2018 a las 14:45


------------Respuesta------------

He encontrado una "solución" (y uso este término de manera muy vaga aquí) basada en esta publicación: Network Manager no configura IP4.GATEWAY para la conexión OpenVPN, aunque estoy convencido de esto es un error con el administrador de red-openvpnmódulo.

El problema se produce porque no hay ninguna puerta de enlace configurada para el túnel OpenVPN:

[van@d2:~]$ nmcli device show tun0
GENERAL.DEVICE:                         tun0
GENERAL.TYPE:                           tun
GENERAL.HWADDR:                         (unknown)
GENERAL.MTU:                            1500
GENERAL.STATE:                          100 (connected)
GENERAL.CONNECTION:                     tun0
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/15
IP4.ADDRESS[1]:                         10.9.0.4/24
IP4.ADDRESS[2]:                         192.168.0.7/32
IP4.GATEWAY:                            --
IP6.ADDRESS[1]:                         fe80::cd28:e3cf:f9e6:1417/64
IP6.GATEWAY                             --

La puerta de enlace predeterminada se puede obtener usando:

[van@d2:~]$ ip route
default via 192.168.0.1 dev wlp3s0 proto static metric 600 
...

Ahora usa nmcli con show para obtener el UUID del túnel OpenVPN (tun0 en mi caso):

[van@d2:~]$ nmcli con show
NAME                UUID                      TYPE             DEVICE 
VAN-200-5GHz        <SOME-UUID>-9c79da9597a1  802-11-wireless  wlp3s0 
van                 <SOME-UUID>-484ee303d901  vpn              wlp3s0 
tun0                <SOME-UUID>-2a1a14674e78  tun              tun0   
Wired connection 1  <SOME-UUID>-d3935bcf886b  802-3-ethernet   --     

Una vez que tenga el UUID, configure la puerta de enlace usando:

nmcli con mod <SOME-UUID>-b717eca7a5a0 ipv4.gateway 192.168.0.1

Ahora comprueba que estás utilizando la dirección IP del servidor VPN:

dig @resolver1.opendns.com myip.opendns.com +short
<YOUR-VPN-SERVER-IP>

Uno de los efectos secundarios de usar este método es que terminarás con una conexión "zombi" cada vez que agregues una puerta de enlace tun0 (y estas persistirán durante los reinicios):

[van@d2:~]$ nmcli con show
NAME                UUID                      TYPE             DEVICE 
VAN-200-5GHz        <SOME-UUID>-9c79da9597a1  802-11-wireless  wlp3s0 
Wired connection 1  <SOME-UUID>-d3935bcf886b  802-3-ethernet   --     
van                 <SOME-UUID>-484ee303d901  vpn              --     
tun0                <SOME-UUID>-c4381868f3f3  tun              --     
tun0                <SOME-UUID>-157870b81351  tun              --     
tun0                <SOME-UUID>-a1bc29fb7bef  tun              --

Puedes eliminarlos usando:

[van@d2:~]$ nmcli con del tun0
Connection 'tun0' (<SOME-UUID>-157870b81351) successfully deleted.
Connection 'tun0' (<SOME-UUID>-c4381868f3f3) successfully deleted.
Connection 'tun0' (<SOME-UUID>-a1bc29fb7bef) successfully deleted.

Teniendo en cuenta lo complicado que es solucionar estos problemas simplemente para poder conectarse a OpenVPN utilizando Network Manager, probablemente te irá mucho mejor.desactivado simplemente conectándose a través del terminal (suponiendo que tenga un archivo de configuración OpenVPN válido).

No estoy seguro de cómo informar errores de esta naturaleza, así que si alguien lo sabe, por favor intervenga.




------------Respuesta------------

Resuelto aquí con un enfoque más simpleh:

sudo nmcli connection modify vpnu-us-mia ipv4.route-metric 0 solves the issue

La métrica de Ethernet predeterminada era 1, por lo que se configura en un valor más bajo

También se ignoran las restricciones de cifrado:

sudo nmcli connection modify vpnu-us-mia +vpn.data tls-cipher=DEFAULT:@SECLEVEL=0 ipv4.route-metric 0

Su guía para un futuro mejor - libreflare
Su guía para un futuro mejor - libreflare