web-dev-qa-db-fra.com

Kubuntu network-manager-openvpn ne redirige pas le trafic via un serveur VPN

J'ai un fichier de configuration OpenVPN qui fonctionne très bien depuis le terminal:

Sudo openvpn --config openvpn.conf

Après la connexion via le terminal, ma table de routage est la suivante:

[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

Je voulais essayer de faire fonctionner le gestionnaire de réseau et j'ai donc installé network-manager-openvpn, puis importé la connexion VPN à partir du fichier de configuration utilisé. Cependant, lorsque je me connecte à l'aide de Network Manager, le trafic n'est pas routé via le serveur OpenVPN. La table de routage (après la connexion à l'aide de l'entrée Network Manager) est la suivante:

[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

J'ai essayé d'ajouter l'entrée 0.0.0.0 (à partir de la table de routage qui fonctionne), mais elle est rejetée:

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

J'ai aussi essayé d'enlever:

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

et le remplacer par:

10.9.0.1 via 255.255.255.0 dev tun0 

mais cela échoue également avec un message d'erreur similaire (la suppression a fonctionné).

Ma question est la suivante: comment puis-je me connecter à un serveur OpenVPN via le gestionnaire de réseau et forcer tout le trafic à être routé via le tunnel VPN?

2
Vanessa Deagan

J'ai trouvé une "solution" (et j'utilise ce terme très vaguement ici) sur la base de ce message: Network Manager ne définit pas IP4 .GATEWAY pour la connexion OpenVPN - bien que je sois convaincu qu'il s'agit d'un bogue avec le module network-manager-openvpn.

Le problème se produit car aucune passerelle n'est définie pour le tunnel 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 passerelle par défaut peut être obtenue en utilisant:

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

Maintenant, utilisez nmcli con show pour obtenir l'UUID du tunnel OpenVPN (tun0 dans mon cas):

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

Une fois que vous avez l'UUID, définissez la passerelle à l'aide de:

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

Maintenant, vérifiez que vous utilisez bien l'adresse IP du serveur VPN:

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

L’un des effets secondaires de cette méthode est que vous vous retrouverez avec une connexion "zombie" à chaque fois que vous ajoutez une passerelle tun0 (et que celle-ci persistera lors des redémarrages):

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

Vous pouvez les supprimer en utilisant:

[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.

Compte tenu de la complexité de la résolution de ces problèmes pour pouvoir se connecter à OpenVPN à l’aide du gestionnaire de réseau, il est probablement préférable de se connecter simplement via le terminal (en supposant que vous avez un fichier de configuration OpenVPN valide).

Je ne sais pas comment signaler un bogue de cette nature, alors si quelqu'un le sait, veuillez vous en occuper.

1
Vanessa Deagan