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 sudo
para 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?
/etc/NetworkManager/system-connections/ConnectionName
arquivo; portanto, quando diz "editar em [vpn]", não tenho certeza de como lidar com isso. Posso apenas criar o arquivo?password-flags
formulário 1 para 0. Usenmcli con
para listar as conexões.Not authorized to control networking
erro.Para iniciar a VPN automaticamente na inicialização
Supondo que você tenha seus arquivos de credenciais funcionando, você poderá usar um
dispatcher.d
script 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-up
e torne-o executável comchmod +x
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
seahorse
e 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-key
nome: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 ocert-pass
segredo da VPN para que o arquivo se pareça com:fonte
system-connections
Porém, a minha é diferente da sua, por isso não tenho certeza sobre a aplicação de suas edições. Eu não tenho umkey
outimestamp
, e meu tipo de conexão épassword
, nãotls
. Adicionei meu arquivo à minha pergunta.connection-type=password
, provavelmente deve estar usandopassword-flags=0
epassword=YourPassword
sob o[vpn-secrets]
cabeçalho, conforme sugerido pelo devav2.VPN_start.sh
nã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.conf
arquivo.sudo
? Como observado na minha pergunta, ele falha quando eu o executosudo
também.