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