43 votes

VPN Connexion automatique

Je suis sous Ubuntu 13.04 avec Gnome et j'ai récemment mis en place un (open)VPN. Existe-t-il un moyen de l'activer par défaut ? À chaque démarrage ou même perte de ma connexion, je dois activer le VPN manuellement. Y a-t-il une option que je ne vois pas ?

71voto

Julius Points 11

À travers l'indicateur du gestionnaire de réseau nm-applet (l'applet de la barre système GNOME ou Unity installé par défaut), vous pouvez configurer NetworkManager pour se connecter automatiquement à un VPN lorsqu'un réseau est connecté.

  1. Cliquez sur l'icône de la barre système 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 "Se connecter automatiquement au VPN lors de l'utilisation de cette connexion" et sélectionnez le VPN souhaité dans la liste déroulante.
  4. Enregistrez.

Capture d'écran de nm-connection-editor


Lorsque cela est activé, il y a un bug dans NetworkManager qui peut affecter la fonction "se connecter automatiquement à ce réseau". (Éditer : ce bug a maintenant été marqué comme "corrigé" dans Ubuntu 16.04). Si NetworkManager essaie de se connecter automatiquement et échoue, vous verrez une ligne comme celle-ci dans /var/log/syslog:

 [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 échoue à obtenir le mot de passe VPN de l'utilisateur depuis gnome-keyring-daemon. Une solution de contournement est de laisser NetworkManager stocker le mot de passe en texte brut dans le fichier de configuration dans /etc/NetworkManager/system-connections/. Pour ce faire :

  1. Ouvrez un terminal.
  2. sudoedit /etc/NetworkManager/system-connections/, où 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. Modifiez la ligne password-flags=1 en password-flags=0
  4. Enregistrez et quittez.

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

8voto

Mitch Points 102545

Jetez un œil à vpnautoconnect.

vpnautoconnect est un démon qui vous permet de vous 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 également:

utilisez la fonctionnalité AUTOSTART dans /etc/default/openvpn

Ou

Découvrez 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.

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

nmcli con up uuid 

Configurez ceci pour s'exécuter au démarrage.

Allez dans Dash, tapez et choisissez Applications au 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 voulez utiliser, et dans Commande mettez toute la ligne nmcli ci-dessus. Cliquez de nouveau sur "Ajouter". Maintenant, redémarrez et essayez.

Source : SourceForge

2voto

WillM Points 1

Je recommanderais de consulter 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 la commande suivante :

nmcli con list | grep -i vpn

2voto

funkymushroom Points 982

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

J'ai fait des recherches et combiné un peu de code existant pour faire mon premier script bash. Il vérifie si une connexion VPN donnée est active, et se connectera si ce n'est pas le cas. S'il est connecté, il dormira pendant un certain temps, par exemple 1 minute, et répétera le processus indéfiniment.

#! /bin/bash

while true
do
   connection="Auto Ethernet"
   vpn_connection="Ma connexion VPN"
   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 vide nommé par exemple vpn-auto-connector.sh (je l'ai enregistré dans mon dossier personnel. Cliquez avec le bouton droit sur le fichier et choisissez Propriétés->Autorisations et cochez "Autoriser l'exécution du fichier en tant que programme". (Vous devrez peut-être enregistrer le fichier ailleurs et/ou modifier également les autorisations de lecture/écriture/exécution si votre ordinateur a 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"

    Elles peuvent être trouvées en ouvrant le gestionnaire de réseau. Dans mon cas, connection="Auto Ethernet" est ma connexion filaire active (je n'ai pas 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 pour répéter le script.

  3. Ouvrez Applications->Outils Système->Préférences->Applications au 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 s'exécutera au démarrage et continuera à vérifier si la connexion VPN est active. Vous pouvez l'essayer en déconnectant la connexion VPN et elle devrait être activée à nouveau automatiquement.

0voto

bartektartanus Points 159

Vpnautoconnect fonctionne bien sous Ubuntu 12.04, 13.04 et 13.10 (Je pense que dans la version 13.10, l'option "se connecter automatiquement" dans le Network-Manager a été corrigée et fonctionne maintenant)

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

Jetez un œil ICI

Et faites-moi savoir :-)

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X