Comment se connecter automatiquement au VPN avec Network-Manager


17

J'ai une connexion VPN fonctionnelle. Maintenant, je veux que cette connexion VPN s'active automatiquement lorsque je suis dans un certain réseau sans fil. Existe-t-il un moyen graphique non intrusif utilisant l'applet de gestionnaire de réseau? Si je me souviens bien, cela a fonctionné pendant un certain temps 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 Hybrid-Auth activé (compatible avec Cisco VPN-client) à partir du PPA de sroecker

EDIT: Je ne peux plus essayer les réponses (à cause d'eduroam) et comme aucune réponse ne semble gagner la majorité des votes, je vais juste laisser la réponse sans réponse jusqu'à ce que l'un soit voté, puis je vais l'accepter.


comment vous en sortez-vous?
rlemon

Je n'en avais plus besoin depuis longtemps. Peut-être venir en avril dans une nouvelle université.
turbo


@fossfreedom n'est pas un doublon exactement parce que ma question concerne vpnc plutôt que openconnect.
turbo

J'ai écrit un court message de blocage sur la façon de bloquer votre connexion Internet à moins que le VPN ne soit opérationnel: mentat.za.net/blog/2015/01/24/vpn-only-internet
Stefan van der Walt, le

Réponses:


18

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

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

Il existe cependant des solutions de contournement. Pour les versions récentes de NetworkManager, il existe une fonctionnalité de ligne de commande nmcli, qui peut être modifiée et enregistrée sous la forme /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 a plus d'informations.


notez qu'en 13.04 j'ai dû mettre ce script dans /etc/network/if-up.d et corriger / etc / NetworkManager / system-connections / connection-name selon askubuntu.com/questions/198136/… pour éviter "Non erreur de secrets VPN valides "
OlegYch

Le hack wiki Arch fonctionne en fait! J'ai essayé le script sur le wiki arch le 11 juillet 2013, et le modifier de 'nmcli ...' en 'su [user] -c "nmcli ..."' ne fonctionne pas! suivez les instructions comme dans le wiki et n'oubliez pas les acclamations chmod + x;)!

Le bug mentionné par Hugo Eden ( bugs.launchpad.net/ubuntu/+source/network-manager/+bug/280571 ) a été corrigé en amont il y a plus de 5 mois. Cependant, je le vis toujours dans Precise ... Qu'est-ce qui donne?
iGadget

Cela ne fonctionnait pas pour moi, j'ai donc décidé de chercher /var/log/sysloget j'ai vu l'erreur suivante: Mar 4 13:49:51 oleg-HP nm-dispatcher.action: Cannot execute /etc/NetworkManager/dispatcher.d/vpn-up ': non exécutable par le propriétaire.' La solution serait desudo chmod 755 /etc/NetworkManager/dispatcher.d/vpn-up
Oleg Belousov

8

Dans Ubuntu Trusty 14.04, VPN se connecte automatiquement au magasin sur l'interface graphique sur les paramètres wi-fi enregistrés individuellement. Paramètres système - Réseau - vérifiez le Wi-Fi ou le LAN intéressé - Paramètres (onglet Général) - sélectionnez "Connexion automatique au VPN ..."


3

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

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

    sudo apt-get purge network-manager-vpn sudo apt-get install network-manager-vpnc Ensuite: entrez la description de l'image ici

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 message "impossible de se connecter" lorsque vos utilisateurs sont 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. Vous devrez peut-être écrire un script faisant la connexion lorsque vous vous trouvez dans le réseau wlan.

J'espère que cela a aidé.


Je ne suis toujours pas venu pour tester cela. Je marquerai la réponse quand je le ferai. Promettre.
turbo

d'après mon expérience, cela ne fonctionne pas vraiment. Je pense que c'est un bug dans NetworkManager
Conor Rynne

3
Oui, cela est cassé, même dans Precise. Il ne se connecte pas automatiquement O_o
eggonlegs

Ouaip - cassé. Ne fonctionne pas (Ubunutu 12.04).
user48956

3

Je peux confirmer que cette solution suivante fonctionne pour moi. J'utilise Ubuntu 14.04 LTS.

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

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

Capture d'écran des paramètres, son en arabe

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

Cliquez sur paramètres

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

Pour moi, ça marche. J'espère que ça marche pour tout le monde aussi. Ne nécessite aucune sorte d'éditeur de texte ou d'éditeur de code ou quoi que ce soit ..


0

Utilisez le script Python suivant Gist # 1547663 .

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

Exemple à installer et à laisser 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 la connexion VPN.


1
Je pense que cette approche est moins élégante, car un processus d'arrière-plan est actif tout le temps, alors qu'il pourrait être piloté par les événements comme dans la réponse de @hugoheden.
gertvdijk

Il fait plus que sa réponse: il gère également la reconnexion VPN et les cas où l'utilisateur désactive manuellement la connexion VPN (ce qui signifie qu'il ne devrait pas essayer de reconnecter VPN dans ce cas)
iElectric

0

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=0et Xauth password-flags=0dans le fichier de configuration. Ensuite, accédez à 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. Vérifiez-le et la connexion automatique devrait fonctionner maintenant!


0

Même si la page de manuel apparaît nmcli con statuscomme une commande valide, la solution ci-dessus fournie par Hugo Hedenrenvoie une erreur"Error: Object 'status' is unknown, try 'nmcli help'"

J'utilise nmcli 1.2.2 ( nmcli -v) et j'ai testé et modifié les éléments suivants pour /etc/NetworkManager/dispatcher.d/vpn-upet cela a fonctionné comme un charme.

#! /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 showpour voir tous les noms de connexion car ils ne sont pas toujours les mêmes que ceux répertoriés dans l'interface graphique des connexions réseau


L'OP pose des questions sur Ubuntu.
fosslinux

Kali et Ubuntu sont tous deux basés sur Debian, donc la solution est souvent la même. Je viens d'aller de l'avant et de tester cela sur une instance Ubuntu 15.10 et l'erreur nmcli était la même que celle que j'avais mentionnée ci-dessus. La solution a également fonctionné de la même manière. La version nmcli installée sur la boîte 15.10 est 1.0.4.
jw00druff

0

Si vous préférez les terminaux, vous pouvez utiliser nmcli, je l'ai fait en utilisant les 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 d'ici, vous pouvez interroger les valeurs et les définir, comme ceci:

===| 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 terminé!


En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.