VPN Autoconnect

38

Estou usando o Ubuntu 13.04 com o Gnome e recentemente configurei uma VPN (aberta). Existe alguma maneira de ativá-lo por padrão? Toda vez que eu inicializo ou perco minha conexão, tenho que habilitar a VPN manualmente. Existe uma opção que eu estou sentindo falta?

    
por Paul Woitaschek 05.08.2013 / 11:27

8 respostas

66

Por meio do indicador nm do Network Manager (o miniaplicativo de bandeja de rede do GNOME ou Unity instalado por padrão), você pode configurar o NetworkManager para se conectar automaticamente a uma VPN quando uma rede estiver conectada.

  1. Clique no miniaplicativo da bandeja de rede e clique em "Editar conexões ..." ou execute nm-connection-editor .
  2. Selecione uma conexão de rede e clique em "Editar ..."
  3. Marque "Conectar-se automaticamente à VPN ao usar esta conexão" e selecione a VPN desejada na lista suspensa.
  4. Salvar.

Quandoissoestáativado,háum bug no NetworkManager que pode interromper a função "conectar automaticamente a esta rede". ( Editar : este bug foi marcado como "correção liberada" no Ubuntu 16.04). Se o NetworkManager tentar se conectar automaticamente e falhar, você verá uma linha como a seguinte em /var/log/syslog :

<error> [1401130450.367538] [nm-vpn-connection.c:1374] get_secrets_cb(): Failed to request VPN secrets #2: (6) No agents were available for this request.

Parece que o NetworkManager não consegue obter a senha da VPN do usuário em gnome-keyring-daemon . Uma solução é permitir que o NetworkManager armazene a senha em texto sem formatação no arquivo de configuração em /etc/NetworkManager/system-connections/ . Para fazer isso:

  1. Abra um terminal.
  2. sudoedit /etc/NetworkManager/system-connections/<VPN> , onde <VPN> é o arquivo de configuração da sua VPN (o nome do arquivo é geralmente o nome atribuído à sua VPN).
  3. Altere a linha password-flags=1 para password-flags=0
  4. Salve e saia.

O NetworkManager agora armazenará a própria senha da VPN (veja man nm-settings para detalhes), e a conexão automática da rede funcionará novamente.

    
por Vincent Yu 15.08.2013 / 06:08
8

Dê uma olhada no vpnautoconnect.

% bl0ck_qu0te%

Para mais informações e para fazer o download, visite o site .

Experimente também:

use o recurso AUTOSTART em /etc/default/openvpn

Ou

Descobrir o UUID da sua conexão VPN.

nmcli con list | grep -i vpn

O UUID é a segunda coluna com as letras, números e traços.

Inicie a conexão em um terminal. Apenas pressione Ctrl + Alt + T no seu teclado para abrir o Terminal. Quando se abre, execute o (s) comando (s) abaixo:

nmcli con up uuid <put you UUID here>

Defina isso para ser executado na inicialização.

Vá para Dash, digite e escolha Startup Applications, clique em Add e adicione o comando nmcli acima (com o UUID). Clique em "Adicionar". No nome digite o nome que você quiser usar, e em Command coloque toda a linha nmcli acima. Clique em "Adicionar" novamente. Agora, reinicie e experimente.

Fonte: SourceForge

    
por Mitch 05.08.2013 / 11:31
1

Eu recomendaria verificar o script neste artigo :

#!/bin/bash

# YourVPN here is the name of desired vpn connection to monitor
# edit this line:
##################
VPNNAME=YourVPNUUID
# enter desired time between checks here (in seconds)
SLEEPTIME=15
##################

nice=0

for (( ; ; )); do

# creating infinite loop

tested=$(nmcli con status uuid $VPNNAME | grep -c UUID)
#possible results:
# 0 - no connection - need to start
# 1 - working connection, continue.

case $tested in
"0")
echo "Not connected - starting"

#increase nice counter
nice=$[nice+1]

#if "nice start" fails for 3 times
if [ $nice -ge 3 ];
then
#TRY to knock hard way, resetting the network-manager (sometimes it happens in my kubuntu 12.04).
      echo "HARD RESTART!"
      nmcli nm enable false
      nmcli nm enable true
      sleep 5
      nmcli con up uuid $VPNNAME
      nice=0
else
#not yet 3 falures - try starting normal way
      echo "trying to enable."
      nmcli con up uuid $VPNNAME
fi

;;

"1")
echo "VPN seems to work" 

;;
esac

sleep $SLEEPTIME

done

Para descobrir o valor de YourVPNUUID para $ VPNNAME, basta executar o seguinte:

nmcli con list | grep -i vpn
    
por rhoover 14.08.2013 / 19:23
1

O vpnautoconnect não funcionou para mim em 12.04 LTS, e eu não pareço ser o único.

Eu pesquisei um pouco e combinei alguns códigos existentes para criar meu primeiro script. Ele verifica se uma dada conexão VPN está ativa e se conectará se não. Se estiver ligado, vai dormir durante um determinado período, por ex. 1 minuto e repita o processo indefinidamente.

#! /bin/bash

while true
do
   connection="Auto Ethernet"
   vpn_connection="My VPN connection"
   run_interval="60"

   active_connection=$(nmcli dev status | grep "${connection}")
   active_vpn=$(nmcli dev status | grep "${vpn_connection}")

   if [ "${active_connection}" -a ! "${active_vpn}" ];
   then
      nmcli con up id "${vpn_connection}"
   fi

   sleep $run_interval
done

Instruções:

  1. Crie um arquivo de texto em branco chamado, por exemplo, vpn-auto-connector.sh (Salvei-o em minha pasta pessoal. Clique com o botão direito do mouse e escolha Propriedades- > Permissões e marque a opção "Permitir a execução do arquivo como programa". (Você pode ter que armazenar o arquivo em outro lugar e / ou alterar as permissões de leitura / gravação / exeção, bem como se o seu computador tiver vários usuários.)

  2. Copie o código acima para o arquivo que você criou. Substitua os valores das três variáveis a seguir:

    connection="Auto Ethernet"

    vpn_connection="Minha conexão VPN"

    run_interval="60"

    Eles podem ser encontrados abrindo o gerenciador de rede. No meu caso, connection="Auto Ethernet" é minha conexão com fio ativa (não testei com wireless) e vpn_connection="Minha conexão VPN" é o nome da minha conexão VPN. run_interval="60" é o intervalo de tempo em segundos para quando repetir o script.

  3. Abra Aplicativos- > Ferramentas do Sistema- > Preferências- > Aplicativos de Inicialização. Adicione um nome adequado, por ex. "VPN Auto Connector" e, para o comando, escolha o arquivo .sh que você salvou anteriormente. Agora o script bash será executado na inicialização e continuará checando se a conexão VPN está ativa. Você pode tentar desconectar a conexão VPN e ativá-la automaticamente novamente.

por PinkMistGenerator 12.11.2013 / 13:30
0

Vpnautoconnect funciona bem no Ubuntu 12.04, 13.04 e 13.10 (acho que no 13.10 a opção "conectar-se automaticamente" no Network-Manager foi corrigida e funciona agora)

Então, se você tiver problemas para instalá-lo ou fazê-lo funcionar, ou não encontrar a opção "openvpn" no menu suspenso do Network-Manager para criar uma conexão vpn aberta, você pode seguir este tuto, que dá-lhe todos os passos, muito claro e fácil de aplicar.

Dê uma olhada AQUI

E me avise: -)

    
por Pouchette 13.12.2013 / 18:50
0

Aqui está um script muito robusto e confiável que irá:

  • Verifique se você está conectado a alguma VPN
  • Se não, conecte-se à VPN ativa mais recente

Isso é especialmente útil se você se conecta rotineiramente a VPNs diferentes, já que não é necessário especificar uma única conexão VPN para se reconectar.

#!/bin/bash

nmcli --mode multiline --fields uuid,vpn connection status | grep -qc "^VPN:.*yes" 1>/dev/null 2>&1

if [ $? -ne 0 ]; then
        last_vpn_uuid='nmcli --mode tabular --fields uuid,type,timestamp connection list | grep -E "\s+vpn\s+" | sort -k3 -nr | head -n1 | awk '{ print $1 }''

        nmcli connection up uuid "$last_vpn_uuid"
fi
    
por Guest 13.08.2015 / 16:56
0

Estou no Ubuntu 14.04 LTS em várias máquinas. Devido ao fato de que eu tenho alguns pré-requisitos especiais:

  1. Eu não quero salvar a senha no gerenciador de senhas
  2. Estou usando um convidado do VirtualBox que perde a VPN na reconexão de rede
  3. O diálogo de senha é aberto várias vezes na reconexão
  4. Estou usando um servidor VPN de backup (failover)
  5. Usando um arquivo de configuração para meus uuids

Estou trabalhando com este script muito comprovado e confiável:

No entanto, existem algumas advertências com o miniaplicativo gerenciador de rede que eu poderia resolver temporariamente (consulte a seção Solução de problemas do artigo).

vpnautoconnect não funciona para mim.

    
por apos 17.11.2015 / 11:53
0

A resposta de @vincentYo parece direta, mas eu não consegui terminar, então fiz o seguinte.

step1: crie um script de shell e adicione o comando vpn

% bl0ck_qu0te%

#!/bin/sh vpnc --enable-1des

step2: abra um arquivo sudoer e diga ao kernel para não pedir senha para este arquivo.

% bl0ck_qu0te%

a maioria das coisas dentro deste arquivo será comentada, basta adicionar como abaixo

% bl0ck_qu0te%

exemplo:

% bl0ck_qu0te%

step3: configure um cron job, que acionará este shell script, abaixo o cron job será executado a cada minuto (bcz my internet continua ligado e desligado, então a cada minuto)

% bl0ck_qu0te%

eu estou usando isso de muitos dias, trabalhando bem no Ubuntu 16.04 LTS ..Chears !!

    
por Sharath B.J 29.06.2017 / 14:36