Kubuntu network-manager-openvpn não encaminha o tráfego via servidor VPN

2

Eu tenho um arquivo de configuração do OpenVPN que funciona muito bem no terminal:

sudo openvpn --config openvpn.conf

Depois de conectar através do terminal, minha tabela de roteamento é a seguinte:

[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

Eu queria tentar fazer as coisas funcionarem no Network Manager, então instalei network-manager-openvpn e importei a conexão VPN do arquivo de configuração de trabalho. No entanto, quando me conecto usando o Network Manager, o tráfego não é roteado através do servidor OpenVPN. A tabela de roteamento (depois de conectar usando a entrada do Network Manager) é a seguinte:

[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

Eu tentei adicionar a entrada 0.0.0.0 (da tabela de roteamento de trabalho), mas ela foi rejeitada:

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

Eu também tentei remover:

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

e substituindo por:

10.9.0.1 via 255.255.255.0 dev tun0 

mas isso também falha com uma mensagem de erro semelhante (a remoção funcionou).

Minha pergunta é: como posso me conectar a um servidor OpenVPN através do Network Manager e forçar todo o tráfego a ser roteado através do túnel VPN?

    
por Vanessa Deagan 06.09.2017 / 22:22

1 resposta

1

Eu encontrei uma "solução" (e eu uso este termo muito livremente aqui) com base neste post: Network Manager não define IP4.GATEWAY para conexão OpenVPN - embora eu esteja convencido de que este é um bug com o módulo network-manager-openvpn .

O problema ocorre porque nenhum gateway está configurado para o 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                             --

O gateway padrão pode ser obtido usando:

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

Agora use nmcli con show para obter o UUID do túnel OpenVPN (tun0 no meu 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   --     

Depois de ter o UUID, defina o gateway usando:

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

Agora, verifique se você está usando o endereço IP do servidor VPN:

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

Um dos efeitos colaterais do uso desse método é que você terminará com uma conexão "zumbi" toda vez que você adicionar um gateway tun0 (e eles persistirão durante as reinicializações):

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

Você pode removê-los 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.

Considerando o quão complicado é trabalhar em torno desses problemas apenas para poder se conectar ao OpenVPN usando o Network Manager, você provavelmente estará bem melhor se conectar através do terminal (supondo que você tenha um arquivo de configuração OpenVPN válido) .

Não sei como denunciar erros dessa natureza, portanto, se alguém souber, por favor, entre em contato.

    
por Vanessa Deagan 07.09.2017 / 14:27