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?
------------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