Connecter / déconnecter du VPN à partir de la ligne de commande

132

J'ai deux configurations de VPN sur ma machine Ubuntu, une utilisant vpnc et une utilisant PPTP. Celles-ci ont été configurées à l'aide de l'interface du gestionnaire de réseau GNOME et fonctionnent parfaitement. Cependant, il me faut parfois accéder à cette machine à distance - existe-t-il un moyen de se connecter ou de se déconnecter de ces VPN à partir de la ligne de commande?

Fontaine Tim
la source
La commande vpnc détaillée ici ne fonctionne-t-elle pas pour vous? De plus, il y a des instructions pour configurer et se connecter à PPTP ici. Est-ce qu'ils ne travaillent pas?
Kris Harper

Réponses:

192

Si vous souhaitez interagir avec NetworkManager à partir de la ligne de commande, vous pouvez utiliser la commande "nmcli".

liste toutes les connexions NM: nmcli con

établir la connexion (wifi, vpn, etc.): nmcli con up id ConnectionName

connexion vers le bas: nmcli con down id ConnectionName

(plus de commandes nmcli dans la page de manuel nmcli ).


Notez également que les utilisateurs normaux n’ont généralement pas l’autorisation de contrôler le réseau. L'utilisation des commandes ci-dessus avec sudodevrait fonctionner pour la plupart des connexions, mais le VPN pourrait échouer avec "Erreur: Echec de l'activation de la connexion: aucun secret VPN valide".

Si cela vous arrive, il est probable que le mot de passe VPN soit stocké dans le gnome-keyring de votre utilisateur, ce qui le rend inaccessible à l'utilisateur root. Ce commentaire explique pourquoi.

Pour résoudre ce problème, modifiez / etc / NetworkManager / system-connections / ConnectionName et sous [vpn], modifiez la ligne des indicateurs de mot de passe en:

password-flags=0

Si une ligne commence par Xauth password-flags, changez-la à la place.

Puis ajoutez ce qui suit sous le [vpn]bloc:

[vpn-secrets]
password=YourPassword

(Si vous avez modifié la ligne à l'étape précédente Xauth password-flags, ajoutez-la à la Xauth password=...place.)

Maintenant, redémarrez le gestionnaire de réseau en:

sudo service network-manager restart

Ensuite, le démarrage de la connexion VPN sudo nmcli con up id ConnectionNamedevrait fonctionner sans problèmes.

ihashacks
la source
1
Je souhaite qu'il y ait une commande de déconnexion générale qui déconnecterait tout VPN sans avoir à spécifier son identifiant. Cela rendrait probablement cette fonctionnalité (je le souhaite) plus facile à implémenter.
Lonnie Best
Si vous utilisez ipsec (par exemple, vpnc), vous devrez peut-être également ajouter "IPSec secret-flags = 0" et "IPSec secret = <grouppw>" à leurs emplacements respectifs
Matt
Cela ne m'a toujours pas corrigé :( J'ai reçu le message "Erreur: L'activation de la connexion a échoué: raison inconnue."
dano
Je reprends ça ... après la 3ème fois que j'ai exécuté la commande, cela a fonctionné. La 1ère fois est vite ratée. La 2ème fois a échoué lentement. Troisième fois travaillé!
dano
2
Texte en clair PWs ?? Vraiment?? Est-ce que quelqu'un a une solution SECURE?
user447607
4

La réponse de ihashacks avec les commentaires de Matt a fonctionné pour moi ... ou presque. J'ai dû modifier une ligne.

ma ligne d'indicateur de mot de passe se lit effectivement comme suit: "Xauth identificateur de mot de passe". La réponse acceptée ne fonctionnera pas pour moi jusqu'à ce que je passe à la suivante

[vpn]
...
Xauth password-flag=0
IPSec secret-flags=0

[vpn-secrets]
Xauth password=<my pw> ## This is the one I changed.
IPSec secret=<group pw>

Je ne sais pas pourquoi mes connexions vpn ont "Xauth" avant chaque mention de mot de passe.

(Désolé, ceci est une nouvelle réponse, je ne peux pas encore faire de commentaires.)

John
la source
2
Ceci concerne certains types de VPN, par exemple celui de Cisco; très utile pour ces cas! Il y a cependant une erreur: le cas correct d'une clé est IPSec secret- sinon, ce n'est pas reconnu par NM.
Marcus le
Merci Marcus, j'ai corrigé ma réponse afin que personne ne tente de copier / coller une faute de frappe.
John