logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).


L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT → ODT PDF Export

Network-Manager et VPN

  • Objet : Script pour le lancement automatique du VPN avec Network-Manager
  • Niveau requis :
  • Commentaires : Vous avez configuré un VPN dans Network-Manager, et vous voulez qu'il soit démarré automatiquement au démarrage et au retour de l'hibernation.

Introduction

Network-Manager est une surcouche de haut-niveau pour la gestion du réseau. Cependant, il demeure certaines opérations qui ne sont pas simples à réaliser…

En particulier, dans la version de Jessie (0.9.10.0), il ne semble pas possible de gérer un démarrage automatique des VPN.

Ce mini-tuto propose la création d'un script pour palier à cela.

Installation

Récupération des uuid

Tout d'abord, il va vous falloir récupérer les uuid de deux connexions, l'uuid de la connexion au VPN, et l'uuid de la connexion réseau qu'il utilise. Pour se faire, la commande suivante fera l'affaire :

nmcli c

Notez bien les UUID respectifs. Ils ressemblent à des chaînes hexadécimales genre : 136e8b61-e704-4037-bf22-a2f6e5a1bd09.

Création du script de connexion

  • Créer un fichier vpn-start contenant le code suivant :
vpn-start
#!/bin/sh
 
# Les X sont à remplacer par l'UUID de la connexion réseau
ETH="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
# Les X sont à remplacer par l'UUID de la connexion VPN
VPN="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
 
activ_eth=$(nmcli con show --active | grep "${ETH}")
activ_vpn=$(nmcli con show --active | grep "${VPN}")
 
if [ -n "${activ_eth}" ] && [ -z "${activ_vpn}" ]
then
    nmcli c up uuid "${VPN}"
fi

(Pour en savoir plus, voir man nmcli)

  • Et rendre ce script exécutable :
chmod +x vpn-start

Utilisation

Pour que le script fonctionne, il doit être lancé depuis une session active ou par root.

En simple utilisateur

Pour le lancer depuis sa session, il suffit d'appeler le script depuis le .xsession, un fichier autostart, etc. Cependant, ce script ne se lancera qu'une fois. Vous pouvez cependant créer un script auxiliaire :

vpn-start-daemon
#!/bin/sh
while true
do
  ./vpn-start
  sleep 5m
done

Enregistrer tout cela dans votre ~/.local/bin et lancer le second script qui se chargera de lancer le premier…

En root

En root, vous pouvez utiliser la crontab (ça ne marchera pas en tant que simple utilisateur parce que la crontab n'est pas lancée dans la session active.)

Dans ce cas, vous allez plutôt vouloir enregistrer votre script dans /root ou dans /usr/local/bin (le script étant lancé par root, vous ne voulez pas qu'il soit modifiable, déplaçable, suppressible par n'importe qui.)

Puis, tout simplement :

crontab -e
*/5 * * * * /usr/local/bin/startvpn 2>/dev/null 1>/dev/null
utilisateurs/captnfab/tutos/network-manager-demarrer-vpn-automatiquement.txt · Dernière modification: 25/08/2017 16:15 par captnfab

Pied de page des forums

Propulsé par FluxBB