dimanche 15 avril 2012

Reconnection automatique d'un VPN (Linux)

Il arrive parfois qu'une connexion réseau soit interrompue lors de l'utilisation d'un VPN.
La connexion réseau est rapidement rétablie sans problème, mais le VPN reste déconnecté, ce qui peut se révéler gênant.

Plusieurs solutions existent pour pallier à ce problème.

Je vous en propose une nouvelle qui a le mérite d'être toute simple .

La condition initiale est l’utilisation de NetworkManager : le script proposé utilisant ses propriétés.

Nous allons placer un script dans le dispactcher de NetworkManager, ce qui permet de récupérer facilement les différents changement d'état des connections.
L'idée du script est de lancer une connection VPN pré-définie  après qu'une connection wifi spécifique est été activée ou lorsque le VPN a été coupé.

La première étape consiste à créer un script (vpn-up) dans le dispatcher.

Etape 1 :

Dans un terminal, taper ;
gksu gedit /etc/NetworkManager/dispatcher.d/vpn-up
puis entrez les lignes ci-dessous:


#!/bin/bash
# définition des connexions wifi et vpn
VPN_NAME=<nom de la connexion VPN telle que définie dans NetworkManager>
ESSID=<l'ESSID du réseau wifi (pas le nom de la connexion)>
if [ "$2" = "up" -o "$2" = "vpn-down" ]; then # -o "$2" = "vpn-down" relance le vpn après une déconnexion
  if [ "$(iwgetid | grep ':"'$ESSID'"')" ]; then # vérification du bon réseau wifi
    nmcli con up id $VPN_NAME;
  fi
fi
exit

Enregistrer , puis rendez le script exécutable avec un chmod +x.
Vérifier que la connexion VPN est bien configurée "disponible pour tous les utilisateurs".

Attention, arrivé à cette étape, le script n'est pas opérationnel, si vous tentez l'expérience malgré tout vous vous retrouveriez avec le message suivant : "no valid vpn secrets"...(voir ici les détails)
D'où la nécessité de réaliser l'étape 2, destinée  à modifier la façon dont les "vpn secrets" sont stockés de façon à les rendre accessibles en mode root.



Etape 2 :


Ouvrir le fichier de configuration :/etc/NetworkManager/system-connections/<nom de votre connection VPN> .
Changer les flags "password-flags" et "secret-flags" de 1 à 0.
Enregistrez et quittez.
Attention: une fois cette modification faite, il va être nécessaire de ré-ouvrir l'éditeur de configuration de NetworkManager pour réintroduire le mot de passe du VPN.

Et voilà, le VPN se lancera automatiquement lorsque la connexion wifi choisie sera activée ou lorsque le VPN aura eu une déconnexion.


Info butinée IcI

4 commentaires:

  1. Quelle différence avec vpnautoconnect ? http://sourceforge.net/projects/vpnautoconnect/

    RépondreSupprimer
  2. Vpnautoconnect ne fait pas que gérer la connection / reconnection, il surveille l'état de la connection (ping), il permet de "protéger" des applications qui sont "forcées" à ne passer qu'à travers le VPN, il est capable de gérer plusieurs VPNs...
    Que MasterGb me pardonne si j'ai oublié une fonction.

    Plus d'info par ici : http://papillon-butineur.blogspot.fr/2011/01/reconnection-automatique-sous-ubuntu-du.html

    RépondreSupprimer
  3. Bonjour !
    Merci du tuto, je commence justement à me documenter sur le VPN.

    PS : Ah sinon, petite remarque, en Français conneXion s'écrit avec un X.

    RépondreSupprimer
    Réponses
    1. @Anonyme Merci pour la remarque, j'ai toujours eu du mal avec le patois d'île de France ...
      Racines latine:
      conexio (le lien, la réunion, l'enchaînement),
      et conectere (action de joindre, d'attacher).
      La racine latine la plus adaptée semblerait donc conectere mais malheureusement pour moi, l'orthographe française exacte est bien connexion avec un X...

      Supprimer