web-dev-qa-db-fra.com

Comment se connecter automatiquement au VPN avec Network-Manager

J'ai une connexion VPN qui fonctionne. Maintenant, je veux que cette connexion VPN s'active automatiquement lorsque je suis dans un certain réseau sans fil. Existe-t-il une méthode graphique non intrusive utilisant l'applet de gestionnaire de réseau? Si je me souviens bien, cela a fonctionné pendant un moment et ne fonctionne plus.

J'ai mis la connexion sans fil en question à la disposition de tous les utilisateurs pour ne pas avoir à saisir le mot de passe à chaque fois.

Le programme CLI utilisé est vpnc avec l’authentification hybride activée (compatible avec le client VPN Cisco) à partir de PPA de sroecker

EDIT: Je ne peux plus essayer les réponses (à cause de eduroam) et comme aucune réponse ne semble remporter la majorité des voix, je vais la laisser sans réponse pour le moment, jusqu’à ce que l’une d’elles soit votée, puis je vais l’accepter.

16
turbo

La solution suggérée par con-f-use devrait fonctionner mais ne fonctionne pas, en raison d'un bogue existant de longue date:

https://bugs.launchpad.net/ubuntu/+source/network-manager/+bug/280571

Il existe des solutions de contournement cependant. Pour les versions récentes de NetworkManager, il existe une utilité en ligne de commande, nmcliname__, qui peut être modifiée et sauvegardée sous quelque chose comme /etc/NetworkManager/dispatcher.d/vpn-up:

#! /bin/bash

REQUIRED_CONNECTION_NAME="<name-of-connection>"
VPN_CONNECTION_NAME="<name-of-vpn-connection>"


activ_con=$(nmcli con status | grep "${REQUIRED_CONNECTION_NAME}")
activ_vpn=$(nmcli con status | grep "${VPN_CONNECTION_NAME}")
if [ "${activ_con}" -a ! "${activ_vpn}" ];
then
    nmcli con up id "${VPN_CONNECTION_NAME}"
fi

[Je n'ai pas testé cela - n'hésitez pas à tester et à modifier en fonction des résultats]

Voir: https://wiki.archlinux.org/index.php/NetworkManager#Use_dispatcher_to_connect_to_a_vpn_after_a_network-connection_is_established contient plus d'informations.

17
Hugo Heden

Dans Ubuntu Trusty 14.04 VPN, la connexion automatique se connecte sur une interface utilisateur graphique avec des paramètres wi-fi enregistrés individuels. Paramètres système - Réseau - Vérifiez le Wi-Fi ou le réseau local intéressé - Paramètres (onglet Général) - sélectionnez "Connexion automatique au VPN ...".

8
Dr.Osd

Je peux confirmer cette solution suivante en travaillant pour moi. J'utilise Ubuntu 14.04 LTS.

Je suis allé à l'icône d'arrêt, puis les paramètres du système.

Lorsque l'écran des paramètres s'ouvre, je suis allé à "Réseau" et au réseau WiFi avec lequel j'étais connecté. Il y a une petite flèche sur l'un des côtés du nom du réseau.

Settings screen shot, its in Arabic

Cliquez sur cette icône et vous devriez voir une option appelée "paramètres" ou "options" (ou quelque chose de similaire) ici:

Click settings

Lorsque la fenêtre suivante s'ouvre, allez simplement dans l'onglet "Général" et vous devriez voir une option qui vous donne une option pour vous connecter automatiquement à un VPN. Choisissez le VPN que vous souhaitez connecter lorsque vous êtes connecté à ce réseau WiFi, et boum! Chaque fois que vous vous connecterez à ce réseau, Ubuntu vous connectera également à ce VPN. :)

Pour moi ça marche. J'espère que cela fonctionne pour tout le monde aussi. Ne nécessite aucun éditeur de texte ou éditeur de code, ni rien ..

3

Si je me souviens bien, cela a fonctionné pendant un moment et ne fonctionne plus.

  • Cela peut sembler évident, mais parfois je n'y pense pas. Avez-vous essayé la réinstallation comme ceci:

    Sudo apt-get purger network-manager-vpn Sudo apt-get installer network-manager-vpnc Ensuite: enter image description here

Maintenant, je veux que cette connexion VPN s'active automatiquement lorsque je suis dans un certain réseau sans fil.

  • Il existe un moyen de supprimer le type de messages "ne peut pas se connecter" lorsque vos utilisateurs se trouvent sur le mauvais réseau, mais ne se souviennent pas comment cela s'est passé. Je ne vois pas d'autre moyen de se connecter automatiquement de manière graphique. Peut-être devrez-vous écrire un script établissant la connexion lorsque vous vous trouvez dans le réseau wlan.

J'espère que ça a aidé.

3
con-f-use

Si vous préférez les terminaux, vous pouvez utiliser nmcli. Je l’ai fait à l’aide des commandes suivantes:

Tout d'abord, recherchez et ouvrez la connexion VPN que vous souhaitez mettre à jour

➜  ~ nmcli c show --active |grep vpn
MyVPN           115ae594-aa91-4d13-8c92-421af245f935  vpn     wlp61s0         
➜  ~ nmcli c edit MyVPN

Cela ouvrira l'invite nmcli. À partir de là, vous pouvez interroger les valeurs et les définir, comme suit:

===| nmcli interactive connection editor |===
...
nmcli> print connection.autoconnect
connection.autoconnect: no
nmcli> set connection.autoconnect yes
nmcli> save persistent
Saving the connection with 'autoconnect=yes'. That might result in an immediate activation of the connection.
Do you still want to save? (yes/no) [yes] yes
Connection 'MyVPN' (115ae594-aa91-4d13-8c92-421af245f935) successfully updated.

Et vous devriez avoir fini!

0
Gustaf

Vous n'avez plus besoin de scripts de répartiteur! Dans 14.04 (Trusty Tahr), il vous suffit de suivre les étapes suivantes après avoir défini l'option de connexion automatique dans l'interface graphique de NetworkManager.

Stockez les vpn-secrets clairement dans le fichier de configuration pour la connexion VPN sous /etc/NetworkManager/system-connections/YourVPNConnectionName.

Vous pouvez y parvenir en définissant IPSec secret-flags=0 et Xauth password-flags=0 dans le fichier de configuration. Accédez ensuite à l'interface graphique de NetworkManager et enregistrez à nouveau vos paramètres de connexion VPN. Maintenant, une section appelée [vpn-secrets] devrait être présente dans le fichier de configuration. Doublecheck it and autoconnection devrait fonctionner maintenant!

0
a.b.brandl

Utilisez le Pythonsuivant _ script Gist # 154766 .

Le premier paramètre du script est le nom de la connexion VPN dans NetworkManager et le second est le nom des réseaux séparés par des virgules qui doivent être ignorés (par exemple, utiliser une connexion VPN à la maison est inutile).

Exemple d'installation et laissez-le s'exécuter au démarrage:

git clone git://Gist.github.com/1547663.git /home/user/autovpn/
echo "python /home/user/autovpn/autovpn.py 'myvpn' 'Auto homenetwork,Auto worknetwork' > /var/log/autovpn.log&" > /etc/rc.local
/etc/rc.local

Maintenant, si vous vous connectez à un réseau (wifi ou ethernet), il essaiera également de configurer une connexion VPN.

0
iElectric

Même si la page de manuel répertorie nmcli con status en tant que commande valide, la solution ci-dessus fournie par Hugo Heden renvoie une erreur "Error: Object 'status' is unknown, try 'nmcli help'".

J'utilise nmcli 1.2.2 (nmcli -v) et j'ai testé et modifié ce qui suit pour /etc/NetworkManager/dispatcher.d/vpn-up et cela a fonctionné à merveille.

#! /bin/bash

REQUIRED_CONNECTION_NAME="<name-of-connection>"
VPN_CONNECTION_NAME="<name-of-vpn-connection>"


default_conn=$(nmcli con show --active | grep "${REQUIRED_CONNECTION_NAME}")
vpn_conn=$(nmcli con show id | grep "${VPN_CONNECTION_NAME}")
if [ "${default_conn}" -a ! "${vpn_conn}" ];
then
    nmcli con up id "${VPN_CONNECTION_NAME}"
fi

Remarque: vous pouvez utiliser nmcli con show pour afficher tous les noms de connexion car ils ne sont pas toujours identiques à ceux répertoriés dans l'interface graphique de Network Connections.

0
jw00druff