Como conectar-se automaticamente à VPN com o Network-Manager

17

Eu tenho uma conexão VPN funcionando. Agora, quero que essa conexão VPN seja ativada automaticamente quando estiver em uma determinada rede sem fio. Existe uma maneira gráfica não intrusiva de usar o gerenciador de rede-applet? Se bem me lembro, funcionou por um tempo e não funciona mais.

Disponibilizei a conexão sem fio em questão para todos os usuários por não ter que inserir a senha todas as vezes.

O programa CLI usado é vpnc com o Hybrid-Auth ativado (compatível com Cisco VPN-Client) do PPA do sroecker

EDIT: Eu posso 'tentar mais as respostas (por causa do eduroam) e, como nenhuma resposta parece ganhar a maioria dos votos, vou deixar sem resposta por enquanto até que uma seja votada, depois vou aceitar isso.

turbo
fonte
como você está indo junto com isso?
Rlemon
Eu não precisava disso há muito tempo agora. Talvez venha abril na nova universidade.
turbo
Possível duplicar? askubuntu.com/questions/86365
fossfreedom
@fossfreedom não é uma duplicata exatamente porque minha pergunta é sobre vpnc, e não sobre openconnect.
Turbo #
Eu escrevi um post pequeno bloco sobre como bloquear a sua ligação à Internet a menos que o VPN está instalado e funcionando: mentat.za.net/blog/2015/01/24/vpn-only-internet
Stefan van der Walt

Respostas:

18

A solução sugerida por con-f-usedeve funcionar, mas não, devido a um bug de longa data:

https://bugs.launchpad.net/ubuntu/+source/network-manager/+bug/280571

Existem soluções alternativas. Para versões recentes do NetworkManager, existe uma capacidade de linha de comando nmcli, que pode ser editada e salva como algo como /etc/NetworkManager/dispatcher.d/vpn-up:

#! /bin/bash

REQUIRED_CONNECTION_NAME="<name-of-connection>"
VPN_CONNECTION_NAME="<name-of-vpn-connection>"


activ_con=$(nmcli con status | grep "${REQUIRED_CONNECTION_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

[Não testei isso - fique à vontade para testar e editar de acordo com os resultados]

Veja: https://wiki.archlinux.org/index.php/NetworkManager#Use_dispatcher_to_connect_to_a_vpn_after_a_network-connection_is_established tem mais informações.

Hugo Heden
fonte
observe que no 13.04 eu tive que colocar esse script em /etc/network/if-up.d e corrigir / etc / NetworkManager / system-connections / connection-name de acordo com askubuntu.com/questions/198136/… para evitar "Não segredos de VPN válidos "erro
OlegYch
O hack wiki do Arch funciona de fato! Eu tentei o script no wiki do arch em 11 de julho de 2013, e modificá-lo de 'nmcli ...' para 'su [user] -c "nmcli ..."' não funciona! siga as instruções como no wiki e não esqueça os elogios do chmod + x;)!
O bug mencionado por Hugo Eden ( bugs.launchpad.net/ubuntu/+source/network-manager/+bug/280571 ) foi corrigido a montante há mais de 5 meses. No entanto, ainda estou experimentando no Precise ... O que dá?
IGadget
Isso não funcionou para mim, então decidi analisar /var/log/sysloge vi o seguinte erro: Mar 4 13:49:51 oleg-HP nm-dispatcher.action: Cannot execute /etc/NetworkManager/dispatcher.d/vpn-up ': não executável pelo proprietário. A solução seriasudo chmod 755 /etc/NetworkManager/dispatcher.d/vpn-up
Oleg Belousov
8

No Ubuntu Trusty 14.04 VPN, loja de conexão automática na GUI, nas configurações individuais de wi-fi salvas. Configurações do sistema - Rede - verifique o Wi-Fi ou Lan interessado - Configurações (guia Geral) - selecione "Conexão automática à VPN ..."

Dr.Osd
fonte
3

Se bem me lembro, funcionou por um tempo e não funciona mais.

  • Isso pode ser óbvio, mas às vezes eu não penso nisso. Você tentou a reinstalação como:

    O sudo apt-get remove o network-manager-vpn O sudo apt-get remove o network-manager-vpnc Então: insira a descrição da imagem aqui

Agora, quero que essa conexão VPN seja ativada automaticamente quando estiver em uma determinada rede sem fio.

  • Existe uma maneira de suprimir o tipo de mensagem "não foi possível conectar" quando seus usuários estão na rede errada, mas não consigo lembrar como foi. Não vejo outra maneira de conectar automaticamente de forma gráfica. Talvez você precise escrever um script para fazer a conexão quando estiver na referida rede wlan.

Espero que tenha ajudado.

confundir
fonte
Ainda não cheguei a testar isso. Vou marcar como respondida quando quiser. Promessa.
turbo
na minha experiência, isso realmente não funciona. Eu acredito que isso seja um bug no NetworkManager
Conor Rynne
3
Sim, isso está quebrado, mesmo no Precise. Ele não se conecta automaticamente O_o
eggonlegs
Sim - quebrado. Não funciona (Ubunutu 12.04).
user48956
3

Posso confirmar que a seguinte solução está funcionando para mim. Estou executando o Ubuntu 14.04 LTS.

Eu fui ao ícone de desligamento e depois às configurações do sistema.

Quando a tela de configurações é aberta, fui para 'Rede' e a rede WiFi à qual estava conectado. Há uma pequena seta em um lado do nome da rede.

Captura de tela de configurações, em árabe

Clique nesse ícone e você verá uma opção chamada "configurações" ou "opções" (ou algo semelhante) aqui:

Clique em configurações

Quando a próxima janela for aberta, basta ir para a guia 'Geral' e você verá uma opção que oferece a opção de conectar-se automaticamente a uma VPN. Escolha a VPN que você gostaria de conectar quando conectado a esse WiFi, e boom! Sempre que você se conectar a esta rede, o Ubuntu também conectará você a essa VPN. :)

Para mim está funcionando. Espero que funcione para todos os outros também. Não requer nenhum tipo de editor de texto ou de código ou qualquer coisa ..

Muhammad bin Yusrat
fonte
0

Use o seguinte script Python Gist # 1547663 .

O primeiro parâmetro do script é o nome da conexão VPN no NetworkManager e o segundo é o nome de redes separadas por vírgula de redes que devem ser ignoradas (por exemplo, o uso da conexão VPN em casa é inútil).

Exemplo para instalar e deixá-lo rodar no momento da inicialização:

git clone git://gist.github.com/1547663.git /home/user/autovpn/
echo "python /home/user/autovpn/autovpn.py 'myvpn' 'Auto homenetwork,Auto worknetwork' > /var/log/autovpn.log&" > /etc/rc.local
/etc/rc.local

Agora, se você se conectar a uma rede (Wi-Fi ou Ethernet), ele também tentará configurar a conexão VPN.

iElectric
fonte
11
Acho que essa abordagem é menos elegante, porque um processo em segundo plano está ativo para isso o tempo todo, enquanto pode ser orientado a eventos, como na resposta de @hugoheden.
224122 Gertvdijk
Ele faz mais do que a sua resposta: ele também lida com VPN Reconnect e casos onde o usuário desativa manualmente conexão VPN (o que significa que não deve tentar reconectar VPN nesse caso)
iElectric
0

Você não precisa mais de scripts de expedidor! No 14.04 (Trusty Tahr), basta executar as seguintes etapas após definir a opção de conexão automática na GUI do NetworkManager.

Armazene os segredos vpn claramente no arquivo de configuração da conexão VPN em /etc/NetworkManager/system-connections/YourVPNConnectionName.

Você pode conseguir isso definindo IPSec secret-flags=0e Xauth password-flags=0no arquivo de configuração. Em seguida, vá para a GUI do NetworkManager e salve novamente as configurações de conexão VPN. Agora uma seção chamada [vpn-secrets] deve estar presente no arquivo de configuração. Verifique duas vezes e a conexão automática deve estar funcionando agora!

abbrandl
fonte
0

Mesmo que a página de manual seja listada nmcli con statuscomo um comando válido, a solução acima fornecida por Hugo Hedenretorna um erro"Error: Object 'status' is unknown, try 'nmcli help'"

Estou usando o nmcli 1.2.2 ( nmcli -v) e testei e modifiquei o seguinte para /etc/NetworkManager/dispatcher.d/vpn-upe funcionou como um encanto.

#! /bin/bash

REQUIRED_CONNECTION_NAME="<name-of-connection>"
VPN_CONNECTION_NAME="<name-of-vpn-connection>"


default_conn=$(nmcli con show --active | grep "${REQUIRED_CONNECTION_NAME}")
vpn_conn=$(nmcli con show id | grep "${VPN_CONNECTION_NAME}")
if [ "${default_conn}" -a ! "${vpn_conn}" ];
then
    nmcli con up id "${VPN_CONNECTION_NAME}"
fi

Nota: Você pode usar nmcli con showpara ver todos os nomes de conexão como eles nem sempre são os mesmos que o que está listado nas conexões de rede GUI

jw00druff
fonte
O OP está perguntando sobre o Ubuntu.
fosslinux
Kali e Ubuntu são ambos baseados no Debian, portanto a solução geralmente é a mesma. Eu apenas fui em frente e testei isso em uma instância do Ubuntu 15.10 e o erro nmcli foi o mesmo que eu mencionei acima. A solução funcionou da mesma forma também. A versão nmcli instalada na caixa 15.10 é 1.0.4.
jw00druff
0

Se você preferir terminais, pode usar nmcli, eu fiz isso usando os seguintes comandos:

Primeiro, encontre e abra a conexão VPN que deseja atualizar

➜  ~ nmcli c show --active |grep vpn
MyVPN           115ae594-aa91-4d13-8c92-421af245f935  vpn     wlp61s0         
➜  ~ nmcli c edit MyVPN

Isso abrirá o prompt nmcli, a partir daqui você pode consultar os valores e defini-los, assim:

===| nmcli interactive connection editor |===
...
nmcli> print connection.autoconnect
connection.autoconnect: no
nmcli> set connection.autoconnect yes
nmcli> save persistent
Saving the connection with 'autoconnect=yes'. That might result in an immediate activation of the connection.
Do you still want to save? (yes/no) [yes] yes
Connection 'MyVPN' (115ae594-aa91-4d13-8c92-421af245f935) successfully updated.

E você deveria estar pronto!

Gustaf
fonte
0

Você pode adicionar o uuid do perfil VPN usando o campo "secundários" na sua conexão principal

Por exemplo, /etc/NetworkManager/system-connections/Wired

[connection]
id=Wired
uuid=95ad54f8-9d72-3e65-a4a7-b106aa310eed
type=ethernet
secondaries=66ecf287-8b26-413b-86f2-caca7608bc67;

Referência https://developer.gnome.org/NetworkManager/stable/nm-settings.html

Hai Nguyen
fonte