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

13

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

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

Eu encontrei um script que supostamente fará isso, e fica 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 esse 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 logon, para garantir que eu esteja sempre conectado pela VPN.

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


Este é o conteúdo do meu arquivo / etc / NetworkManager / system-connections / MyVPN (alguns detalhes foram substituídos por caracteres x para 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, quero apenas acrescentar que, quando ligo a VPN usando o miniaplicativo no canto superior direito do painel do Xfce, ele não conecta nenhum problema. Portanto, o problema não me parece ser de autorização incorreta, mas de configuração ao tentar fazer isso na linha de comando.

Atualizar:

Não sei ao certo o que mudou - possivelmente algo na atualização para a 12.10 -, mas agora posso iniciar meu serviço VPN na linha de comando. No entanto, esse comando só funciona uma vez quando eu inicio o computador pela primeira vez e também precisa ser executado 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:~$

Desde que eu preciso usar sudopara executar isso, não posso executá-lo automaticamente na inicialização.

Como faço para obtê-lo para poder iniciar minha VPN sem permissões de superusuário?

Questionador
fonte

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 pegar a alteração:

 sudo restart network-manager

Para mais informações, consulte a fonte

devav2
fonte
Obrigado por essa informação útil. Uma parte em que estou preso é que não tenho um /etc/NetworkManager/system-connections/ConnectionNamearquivo; portanto, quando diz "editar em [vpn]", não tenho certeza de como lidar com isso. Posso apenas criar o arquivo?
Pergunta
sim / etc / NetworkManager / system-connections / <name-of-your-vpn-connection> e altere o password-flagsformulário 1 para 0. Use nmcli conpara listar as conexões.
precisa saber é
Ok, entendi agora. Percebi que estava cometendo um erro ao encontrar o arquivo certo. No entanto, agora que fiz todas as edições sugeridas, infelizmente ainda estou recebendo o mesmo Not authorized to control networkingerro.
Pergunta
Tente abrir novamente o editor de conexão do NetworkManager e digite novamente as senhas ou segredos da VPN.
Devv2 9/10/12
Abri o Network Manager e digitei a senha novamente (ela estava em branco quando abri a interface). Não vi mais nada relacionado a "segredos". Salvei e tentei novamente o script. Ainda a mesma mensagem de erro.
Pergunta
2

Para iniciar a VPN automaticamente na inicialização

Supondo que você tenha seus arquivos de credenciais funcionando, você poderá usar um dispatcher.dscript como o original para iniciar sua VPN. Modifiquei um pouco o seu script para fazê-lo funcionar com 2 conexões (roteador sem fio em casa e conexão com fio no trabalho). A razão para isso é que desejo iniciar a VPN se ela não for iniciada quando uma das minhas conexões à 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-upe torne-o executável comchmod +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 se autenticar na sua VPN, isso é um pouco indocumentado.

Depois de navegar pela especificação de configurações do NetworkManager 0.9 , não consegui determinar como especificar uma passagem de certificado vpn no arquivo de configuração. Abri seahorsee encontrei meu ' segredo VPN ' (senha do certificado).

Ele foi listado como algo como ' segredo de passagem de certificado VPN para My VPN / org.freedesktop.NetworkManager.openvpn / vpn '. Clicar na guia de detalhes me deu uma pista para o setting-keynome:

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 VPNe adicione o cert-passsegredo da 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
TrinitronX
fonte
Obrigado por esta resposta. system-connectionsPorém, a minha é diferente da sua, por isso não tenho certeza sobre a aplicação de suas edições. Eu não tenho um keyou timestamp, e meu tipo de conexão é password, não tls. Adicionei meu arquivo à minha pergunta.
Pergunta
Se você estiver usando connection-type=password, provavelmente deve estar usando password-flags=0e password=YourPasswordsob o [vpn-secrets]cabeçalho, conforme sugerido pelo devav2.
TrinitronX
No entanto, o erro que você está recebendo sugere que o usuário em execução VPN_start.shnão possui permissões para gerenciar a rede. Se você deseja gerenciar conexões VPN como um usuário não raiz que não possui permissões, pode ser necessário adicionar algumas políticas ao /etc/dbus-1/system.d/org.freedesktop.NetworkManager.confarquivo.
TrinitronX
Se fosse apenas uma questão de permissões, o script não funcionaria se eu o executasse sudo? Como observado na minha pergunta, ele falha quando eu o executo sudotambém.
Pergunta
Bom ponto! Não sei por que isso causaria esse erro se você estiver executando o sudo. Não pude testar o seu tipo de VPN, pois meu roteador não parece ser facilmente configurável para isso. Se a conexão VPN funcionar bem quando iniciada pelo miniaplicativo NetworkManager, não sei mais o que verificar.
TrinitronX