Erro ao tentar se conectar à VPN na inicialização

13

Esta questão foi atualizada. Por favor, veja o final deste post.

Estou tentando configurar meu computador Mythbuntu para se conectar a um serviço VPN quando ele for iniciado. Minha esperança é que o computador Mythbuntu sempre use a VPN para todas as suas conexões de internet.

Eu encontrei um script que supostamente fará isso, e parece assim:

#!/bin/bash
while [ "true" ]
do
    VPNCON=$(nmcli con status)
    if [[ $VPNCON != "*MyVPNConnectionName*" ]]; then
        echo "Disconnected, trying to reconnect..."
        (sleep 1s && nmcli con up uuid df648abc-d8f7-4ce4-bdd6-3e12cdf0f494)
    else
        echo "Already connected !"
    fi
    sleep 30
done

Quando executo este script na minha máquina, recebo o seguinte erro:

$ /home/mythbuntu/VPN_start.sh
Disconnected, trying to reconnect...
Error: Connection activation failed: Not authorized to control networking.

Eu pensei que poderia ser um problema de permissão, então tentei executá-lo com o sudo:

$ sudo /home/mythbuntu/VPN_start.sh
[sudo] password for mythbuntu: 
Disconnected, trying to reconnect...
Active connection state: unknown
Active connection path: /org/freedesktop/NetworkManager/ActiveConnection/1
state: VPN connecting (need authentication) (2)
Error: Connection activation failed: no valid VPN secrets.

Como faço para que esse script seja executado sem erros, para que eu possa executá-lo na inicialização ou no login, para que eu possa me certificar de que estou sempre conectando por VPN.

Se alguém tiver um script ou método melhor, isso também será suficiente como resposta.

Estes são os conteúdos do meu arquivo / etc / NetworkManager / system-connections / MyVPN (alguns detalhes foram substituídos por caracteres x por privacidade):

[connection]
id=MyVPN
uuid=xxxxxxxxxx-xxxx-xxxx-xxxxx-xxxxxxxxxxxxxxx
type=vpn

[vpn]
service-type=org.xxxxxxxxxxxxxx.xxxxxxxxxxxxxxx.openvpn
username=xxxxxxxxxx
comp-lzo=yes
remote=us-xxxxxx.xxxxxxx.com
connection-type=password
password-flags=0
ca=/etc/openvpn/xxxxxxx.crt

[vpn-secrets]
password=xxxxxxxxxxx

[ipv4]
method=auto
never-default=true

Além disso, eu só quero acrescentar que quando eu ligar a VPN usando o applet no canto superior direito do painel Xfce, ele não conecta nenhum problema. Portanto, o problema não parece ser de autorização incorreta, mas da configuração ao tentar fazer isso a partir da linha de comando.

Atualização:

Não sei muito bem o que mudou - possivelmente algo na atualização para o 12.10 - mas agora posso iniciar meu serviço VPN a partir da linha de comando. No entanto, esse comando só funciona uma vez quando eu primeiro inicio o computador e também ele precisa ser executado com sudo .

mythbuntu@mythbuntu:~$ nmcli con up id "Private Internet Access SSL"
Error: Connection activation failed: Not authorized to control networking.
mythbuntu@mythbuntu:~$ sudo nmcli con up id "Private Internet Access SSL"
[sudo] password for mythbuntu: 
mythbuntu@mythbuntu:~$

Como preciso usar sudo para executar isso, não posso executá-lo automaticamente na inicialização.

Como posso obtê-lo para que eu possa iniciar minha VPN sem permissões de superusuário?

    
por Questioner 09.10.2012 / 11:57

2 respostas

8

O problema parece ser que sua senha no chaveiro não está acessível.

Fonte

A solução mencionada é abrir o arquivo / etc / NetworkManager / system-connections / ConnectionName e definir o

password-flags=0

e adicione as linhas abaixo ao arquivo

 [vpn-secrets]
 password=YourPassword

Em seguida, reinicie o gerenciador de rede para selecionar a alteração:

 sudo restart network-manager

Para mais informações, consulte a fonte

    
por devav2 09.10.2012 / 12:22
2

Para iniciar a VPN automaticamente na inicialização

Supondo que você tenha seus arquivos de credenciais funcionando, você deve ser capaz de usar um script dispatcher.d como originalmente você tinha para iniciar sua VPN. Eu modifiquei seu script um pouco para que ele funcione com 2 conexões (roteador sem fio em casa e conexão com fio no trabalho). A razão para isso é que eu quero que ele inicie a VPN se ela não for iniciada quando qualquer uma das minhas conexões de Internet necessárias estiver ativa. No meu exemplo, eu os configurei com nomes padrão, mas você deve alterá-los para corresponder aos seus próprios nomes.

Coloque isso no arquivo /etc/NetworkManager/dispatcher.d/vpn-up e torne executável com chmod +x

#! /bin/bash

REQUIRED_CONNECTION1_NAME="linksys"
REQUIRED_CONNECTION2_NAME="Wired connection 1"
VPN_CONNECTION_NAME="My VPN"


activ_con=$(nmcli con status | grep "${REQUIRED_CONNECTION1_NAME}\|${REQUIRED_CONNECTION2_NAME}")
activ_vpn=$(nmcli con status | grep "${VPN_CONNECTION_NAME}")
if [ "${activ_con}" -a ! "${activ_vpn}" ];
then
    nmcli con up id "${VPN_CONNECTION_NAME}"
fi

Para configurar certificados de cliente no NetworkManager

Se você estiver usando um certificado de cliente com senha para autenticar sua VPN, isso é um pouco não documentado.

Após navegar pela especificação de configurações 0.9 do NetworkManager, não consegui determinar como especificar uma passagem de certificado vpn no arquivo de configuração. Eu abri o seahorse e encontrei meu ' segredo VPN ' (senha do certificado).

Ele foi listado como algo como ' VPN cert-pass secret para My VPN / org.freedesktop.NetworkManager.openvpn / vpn '. Clicar na guia detalhes me deu uma pista para o setting-key name:

setting-name: vpn
setting-key: cert-pass
connection-uuid: 0badcafe-f00d-dead-beef-feedfacef00d

Para iniciar uma VPN automaticamente como root no Ubuntu 12.04 (Precise Pangolin) usando o NetworkManager 0.9.4.0:

Abra /etc/NetworkManager/system-connections/My VPN e adicione o segredo da cert-pass VPN para que o arquivo se pareça com:

[connection]
id=My VPN
uuid=0badcafe-f00d-dead-beef-feedfacef00d
type=vpn
timestamp=1234567890

[vpn]
service-type=org.freedesktop.NetworkManager.openvpn
key=/home/<your-user>/path/to/certs/your.secure.key
ca=/home/<your-user>/path/to/certs/your.vpnca.crt
connection-type=tls
cert=/home/<your-user>/path/to/certs/your.crt
remote=your.vpn-server.com
cert-pass-flags=0
[vpn-secrets]
cert-pass=your-vpn-pass

[ipv4]
method=auto
never-default=true
    
por TrinitronX 11.10.2012 / 19:32

Tags