web-dev-qa-db-fra.com

VPN Autoconnect

J'utilise Ubuntu 13.04 avec Gnome et j'ai récemment créé un VPN (ouvert). Est-il possible de l'activer par défaut? Chaque fois que je démarre ou que ma connexion est perdue, je dois activer le VPN manuellement. Y a-t-il une option qui me manque?

39
Paul Woitaschek

Grâce à l'applet nm de Network Manager (l'applet de plateau réseau GNOME ou Unity installé par défaut), vous pouvez configurer NetworkManager pour qu'il se connecte automatiquement à un VPN lorsqu'un réseau est connecté.

  1. Cliquez sur l'applet de la barre d'état réseau et cliquez sur "Modifier les connexions ..." ou exécutez nm-connection-editor.
  2. Sélectionnez une connexion réseau et cliquez sur "Modifier ..."
  3. Cochez la case "Se connecter automatiquement au VPN lors de l'utilisation de cette connexion" et sélectionnez le VPN souhaité dans la liste déroulante.
  4. Sauvegarder.

nm-connection-editor screenshot


Lorsque cette option est activée, un bogue dans NetworkManager peut annuler la fonction "Se connecter automatiquement à ce réseau". ( Edit : ce bogue est maintenant marqué comme "correctif publié" dans Ubuntu 16.04). Si NetworkManager essaie de se connecter automatiquement et échoue, vous verrez une ligne comme celle-ci dans /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.

Il semble que NetworkManager n’ait pas réussi à obtenir le mot de passe VPN de l’utilisateur auprès de gnome-keyring-daemon. Une solution consiste à laisser NetworkManager stocker le mot de passe en texte clair dans le fichier de configuration dans /etc/NetworkManager/system-connections/. Pour faire ça:

  1. Ouvrez un terminal.
  2. sudoedit /etc/NetworkManager/system-connections/<VPN>, où <VPN> est le fichier de configuration de votre VPN (le nom de fichier est généralement le nom que vous avez attribué à votre VPN).
  3. Remplacez la ligne password-flags=1 par password-flags=0
  4. Sauvegarder et quitter.

NetworkManager va maintenant stocker le mot de passe VPN lui-même (voir man nm-settings pour plus de détails), et la connexion automatique au réseau fonctionnera à nouveau.

66
Vincent Yu

Jetez un coup d'oeil à vpnautoconnect.

vpnautoconnect est un démon qui vous permet de reconnecter automatiquement (au démarrage également) un vpn créé avec le gestionnaire de réseau. Il peut se reconnecter très rapidement et surveiller la bande passante. Il fonctionne avec les connexions pptp et openvpn.

Pour plus d'informations et pour télécharger, visitez le site web .

Essayez ceci aussi:

utiliser la fonction AUTOSTART dans /etc/default/openvpn

Ou

Déterminez l'UUID de votre connexion VPN.

nmcli con list | grep -i vpn

L'UUID est la deuxième colonne avec les lettres, les chiffres et les tirets.

Commencez la connexion dans un terminal. Appuyez simplement sur Ctrl+Alt+T sur votre clavier pour ouvrir Terminal. Lorsqu'il s'ouvre, exécutez les commandes ci-dessous:

nmcli con up uuid <put you UUID here>

Configurez-le pour qu'il soit exécuté au démarrage.

Allez dans Dash, tapez et choisissez Applications de démarrage, cliquez sur Ajouter et ajoutez la commande nmcli ci-dessus (avec l'UUID). Cliquez sur "Ajouter". Dans le nom, tapez le nom que vous souhaitez utiliser, puis dans Command, placez la ligne entière nmcli au-dessus. Cliquez à nouveau sur "Ajouter". Maintenant, redémarrez et essayez-le.

Source: SourceForge

8
Mitch

Je recommanderais de vérifier le script dans cet article :

#!/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

Pour connaître la valeur de YourVPNUUID pour $ VPNNAME, exécutez simplement ce qui suit:

nmcli con list | grep -i vpn
2
rhoover

vpnautoconnect n'a pas fonctionné pour moi dans 12.04 LTS, et je ne semble pas être le seul.

Je l'ai un peu étudié et j'ai combiné du code existant pour créer mon premier script bash. Il vérifie si une connexion VPN donnée est active et se connectera sinon. S'il est connecté, il dormira pendant un temps donné, par exemple. 1 minute, et répétez le processus indéfiniment.

#! /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

Instructions:

  1. Créez un fichier texte vierge nommé par exemple vpn-auto-connector.sh (Je l'ai enregistré dans mon dossier personnel. Cliquez avec le bouton droit de la souris sur le fichier et choisissez Propriétés-> Autorisations et cochez la case "Autoriser l'exécution du fichier en tant que programme". (Vous devrez peut-être stocker le fichier ailleurs et/ou modifier le autorisations de lecture/écriture/exécution si votre ordinateur compte plusieurs utilisateurs.)

  2. Copiez le code ci-dessus dans le fichier que vous avez créé. Remplacez les valeurs des trois variables suivantes:

    connection = "Auto Ethernet"

    vpn_connection = "Ma connexion VPN"

    run_interval = "60"

    Ils peuvent être trouvés en ouvrant le gestionnaire de réseau. Dans mon cas, connection = "Auto Ethernet" est ma connexion câblée active (je n'ai pas encore testé avec le sans fil) et vpn_connection = "Ma connexion VPN" est le nom de ma connexion VPN. run_interval = "60" est l'intervalle de temps en secondes permettant de répéter le script.

  3. Ouvrez Applications-> Outils système-> Préférences-> Applications de démarrage. Ajoutez un nom approprié, par exemple "VPN Auto Connector" et, pour la commande, choisissez le fichier .sh que vous avez enregistré précédemment. Maintenant, le script bash sera exécuté au démarrage et continuera de vérifier si la connexion VPN est active. Vous pouvez l'essayer en déconnectant la connexion VPN. Elle devrait être réactivée automatiquement.

2
PinkMistGenerator

Voici un script très robuste et fiable qui:

  • Vérifiez si vous êtes connecté à un VPN
  • Sinon, connectez-vous au dernier réseau VPN actif

Cela est particulièrement utile si vous vous connectez régulièrement à différents VPN, car vous n'avez pas besoin de spécifier une seule connexion VPN à laquelle vous reconnecter.

#!/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
0
Guest

Vpnautoconnect fonctionne bien sous Ubuntu 12.04, 13.04 et 13.10 (Je pense que dans le 13.10, l'option "se connecter automatiquement" du gestionnaire de réseau a été corrigée et fonctionne maintenant)

Donc, si vous avez des problèmes pour l'installer ou le faire fonctionner, ou que vous ne trouvez pas l'option "openvpn" dans le menu déroulant de Network-Manager pour créer une connexion vpn ouverte, vous pouvez suivre ce tuto, qui vous donne les étapes, très claires et faciles à appliquer.

Regardez ICI

Et laisse moi savoir :-)

0
Pouchette

répondre par @vincentYo a l'air franc, mais je ne pouvais pas le faire, alors j'ai fait comme ci-dessous.

step1: créer un script shell et ajouter une commande vpn

vim auto_vpn.sh

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

step2: ouvrez un fichier sudoer et dites au noyau de ne pas demander le mot de passe pour ce fichier.

Sudo vim/etc/sudoers

la plupart des choses à l'intérieur de ce fichier seront commentées, ajoutez simplement comme ci-dessous

nom d'utilisateur ALL = (root) NOPASSWD: your_Shell_script.sh

exemple:

sharath ALL = (racine) NOPASSWD: /home/sharath/workspace/work/src/auto_vpn.sh

étape 3: configurez un travail cron, qui déclenchera ce script Shell; en dessous, le travail cron sera exécuté toutes les minutes (bcz mon internet reste allumé et éteint, donc chaque minute)

* * * * * Sudo /home/sharath/workspace/work/src/auto_vpn.sh

je l'utilise depuis plusieurs jours et fonctionne très bien à Ubuntu 16.04 LTS ..Chears !!

0
Sharath B.J

Je suis sur Ubuntu 14.04 LTS sur plusieurs machines. En raison de certaines conditions préalables particulières:

  1. Je ne veux pas enregistrer le mot de passe dans le gestionnaire de mots de passe
  2. J'utilise un invité VirtualBox qui perd un VPN lors d'une reconnexion réseau
  3. Le dialogue de mot de passe s'ouvre plusieurs fois lors de la reconnexion
  4. J'utilise un serveur VPN de secours (basculement)
  5. Utiliser un fichier de configuration pour mes uuids

Je travaille avec ce script très éprouvé et très fiable:

Il y a cependant quelques réserves avec l'applet du gestionnaire de réseau que je pourrais résoudre temporairement (voir la section Dépannage de l'article).

vpnautoconnect ne fonctionne pas pour moi.

0
apos