Se connecter automatiquement au VPN lors de l'utilisation d'un réseau spécifique dans Ubuntu GNOME 16.04

12

Sous Unity, Network Manager a une case à cocher disponible pour chaque connexion qui configure l'utilisation automatique d'un VPN lorsque la connexion est active:

Image du paramètre de connexion dans Ubuntu 16.06 Unity

Existe-t-il un moyen d'obtenir une option comme celle-ci dans Ubuntu GNOME 16.04? (qui utilise GNOME 3.18). Comme la page des paramètres de connexion n'a pas cette option: entrez la description de l'image ici

S.Mohsen sh
la source
Bienvenue sur Ask Ubuntu! Cette réponse suggère qu'ils partagent tous les deux le même NetworkManager. Pourriez-vous s'il vous plaît revérifier? Dans le cas où ils sont différents, pourriez-vous également inclure une capture d'écran du NetworkManager sous Ubuntu GNOME?
Andrea Lazzarotto
@AndreaLazzarotto merci! J'ai fourni la capture d'écran. Je vais essayer vpnautoconnect qui a été suggéré dans cette question pour voir si cela fonctionne. Mais je me demande si le paramètre pourrait être activé dans le gestionnaire de réseau lui-même, car comme vous l'avez dit, il s'agit du même gestionnaire de réseau dans les deux versions.
S.Mohsen sh
Cette capacité semble toujours manquer dans Ubuntu 17.04. Je ne sais pas pourquoi il aurait été supprimé. Après avoir cherché une solution et trouvé très peu, il semble étrange que plus de gens n'utilisent pas de VPN et préfèrent la fonction de connexion automatique.
Rsync
À condition que votre système dispose d'un /etc/NetworkManager/system-connectionsrépertoire rempli de profils de connexion et que cela ne vous dérange pas de modifier les configurations, il pourrait être utile de vérifier la réponse que j'ai publiée ailleurs sur le sujet de la connexion automatique à un VPN pour une interface réseau donnée.
S0AndS0

Réponses:

22

J'ai trouvé la réponse à cela. Curieusement, vous devez ouvrir Network Manager manuellement (par opposition à l'utilisation du panneau ou des paramètres.

Donc en Terminaltype nm-connection-editor. Après cela, la fenêtre qui s'ouvre aura les options dans la première image OPs.

Cela fonctionne pour moi en 16.04 et 17.04. Espérons qu'ils intégreront les différents gestionnaires de réseau dans les prochaines versions de GNOME.

Rsync
la source
Cela fonctionne aussi pour moi en 18.04 - merci! Il n'était pas immédiatement clair où étaient ces paramètres.
JohnnyCoder
Fonctionne également pour Debian 9 Stretch. Je vous remercie!
Christian Toffolo
1

J'ai résolu le problème avec un script dans

/etc/NetworkManager/dispatcher.d

Ce dossier contient des scripts appelés par ordre alphabétique par le gestionnaire de réseau chaque fois qu'il y a un changement d'état du réseau. Cela a l'avantage (différent d'une autre solution que j'ai vue) que votre VPN n'est pas seulement activé au démarrage / démarrage, mais également à la reprise après la suspension / veille.

Pour que cela fonctionne, vous avez besoin d'une connexion VPN déjà configurée dans votre gestionnaire de réseau, ce que je suppose que vous avez, sinon vous n'auriez pas posé la question.

  1. Première étape: j'ai suivi les conseils de cette page (allemande) ( https://wiki.ubuntuusers.de/NetworkManager/Dispatcher/ ). J'ai ouvert et nommé un nouveau script 02VPN1

    sudo YOURTEXTEDITOR /etc/NetworkManager/dispatcher.d/02VPN1
    

et a écrit:

    #!/bin/bash
    VPN_CONNECTION_NAME="NAME_OF_YOUR_VPN_CONNECTION"
    if [ "$2" = "up" ]; then
       sleep "3s"
       nmcli con up id "${VPN_CONNECTION_NAME}"
    fi

NAME_OF_YOUR_VPN_CONNECTION est le nom du fichier de connexion NAME_OF_YOUR_VPN_CONNECTION.conf que vous avez utilisé pour configurer la connexion à laquelle vous souhaitez vous connecter automatiquement.

La condition si ["$ 2" = "up"] signifie que la connexion VPN n'est connectée automatiquement qu'à lorsque vous démarrez la connexion réseau (votre connexion Internet); une fois le service VPN exécuté, vous pouvez le désactiver ou choisir un autre VPN.

Si vous souhaitez uniquement et à chaque fois exécuter ce VPN sans pouvoir le désactiver, vous pouvez écrire le script sans cette condition If:

    #!/bin/bash
    VPN_CONNECTION_NAME="NAME_OF_YOUR_VPN_CONNECTION"
    sleep "3s"
    nmcli con up id "${VPN_CONNECTION_NAME}"

Vous ne pouvez configurer ce fichier qu'en tant que root, il appartient donc à root sans que vous ayez à faire quoi que ce soit de plus. Voilà comment il devrait être.

Enfin: rendez ce fichier exécutable, sinon le script ne s'exécutera pas. Dans le terminal:

    sudo chmod +x  /etc/NetworkManager/dispatcher.d/02VPN1
  1. Deuxième étape (DIFFÉRENTE des instructions dans le lien ci-dessus; j'ai utilisé les conseils d'ici: https://ubuntuforums.org/showthread.php?t=2193559&p=12990193#post12990193

Ce processus est exécuté par root et root n'a pas encore accès au mot de passe que vous utilisez pour votre VPN. Procédez comme suit: Ouvrez le fichier NAME_OF_YOUR_VPN_CONNECTION dans / etc / NetworkManager / system-connections en tant que root. Ouvrez un terminal et faites:

    sudo YOURTEXTEDITOR /etc/NetworkManager/system-connections/NAME_OF_YOUR_VPN_CONNECTION

a) Changer la ligne

    password-flags=1 

à

    password-flags=0

b) En bas, ajoutez

    [vpn-secrets]
    password=PASSWORDOFYOURCONNECTION

Enregistrez et fermez le fichier.

  1. Redémarrez maintenant votre Network Manager. Terminal:

    systemctl restart NetworkManager
    

pour initialiser les nouveaux paramètres. Vous devriez avoir terminé.

Je l'ai fait hier, et pour autant que je puisse voir, cela fonctionne bien. Aucune garantie!

Xénon
la source