Erreur lors de la tentative de connexion au VPN au démarrage


13

Cette question a été mise à jour. S'il vous plaît voir la fin de ce post.

J'essaie de configurer mon ordinateur Mythbuntu pour qu'il se connecte à un service VPN au démarrage. J'espère que l'ordinateur Mythbuntu utilisera toujours le VPN pour toutes ses connexions Internet.

J'ai trouvé un script qui ferait ça, et ça ressemble à ça:

#!/bin/bash
while [ "true" ]
do
    VPNCON=$(nmcli con status)
    if [[ $VPNCON != "*MyVPNConnectionName*" ]]; then
        echo "Disconnected, trying to reconnect..."
        (sleep 1s && nmcli con up uuid df648abc-d8f7-4ce4-bdd6-3e12cdf0f494)
    else
        echo "Already connected !"
    fi
    sleep 30
done

Lorsque j'exécute ce script sur ma machine, j'obtiens l'erreur suivante:

$ /home/mythbuntu/VPN_start.sh
Disconnected, trying to reconnect...
Error: Connection activation failed: Not authorized to control networking.

Je pensais que cela pourrait être un problème d'autorisation, j'ai donc essayé de l'exécuter avec sudo:

$ sudo /home/mythbuntu/VPN_start.sh
[sudo] password for mythbuntu: 
Disconnected, trying to reconnect...
Active connection state: unknown
Active connection path: /org/freedesktop/NetworkManager/ActiveConnection/1
state: VPN connecting (need authentication) (2)
Error: Connection activation failed: no valid VPN secrets.

Comment puis-je exécuter ce script sans erreur afin de pouvoir l'exécuter au démarrage ou à la connexion afin de m'assurer que je me connecte toujours par VPN.

Si quelqu'un a un meilleur script ou une meilleure méthode, cela suffirait également comme réponse.


Voici le contenu de mon fichier / etc / NetworkManager / system-connections / MyVPN (certains détails remplacés par x caractères pour la confidentialité):

[connection]
id=MyVPN
uuid=xxxxxxxxxx-xxxx-xxxx-xxxxx-xxxxxxxxxxxxxxx
type=vpn

[vpn]
service-type=org.xxxxxxxxxxxxxx.xxxxxxxxxxxxxxx.openvpn
username=xxxxxxxxxx
comp-lzo=yes
remote=us-xxxxxx.xxxxxxx.com
connection-type=password
password-flags=0
ca=/etc/openvpn/xxxxxxx.crt

[vpn-secrets]
password=xxxxxxxxxxx

[ipv4]
method=auto
never-default=true

De plus, je veux juste ajouter que lorsque j'allume le VPN en utilisant l'applet dans le coin supérieur droit du panneau Xfce, il ne se connecte pas de problème. Le problème ne me semble donc pas être une autorisation incorrecte, mais de la configuration lorsque vous essayez de le faire à partir de la ligne de commande.

Mise à jour:

Je ne sais pas exactement ce qui a changé - peut-être quelque chose dans la mise à niveau vers 12.10 - mais je peux maintenant démarrer mon service VPN à partir de la ligne de commande. Cependant, cette commande ne fonctionne qu'une seule fois lorsque je démarre l'ordinateur pour la première fois, et elle doit également être exécutée avec sudo.

mythbuntu@mythbuntu:~$ nmcli con up id "Private Internet Access SSL"
Error: Connection activation failed: Not authorized to control networking.
mythbuntu@mythbuntu:~$ sudo nmcli con up id "Private Internet Access SSL"
[sudo] password for mythbuntu: 
mythbuntu@mythbuntu:~$

Comme je dois l'utiliser sudopour l'exécuter, je ne peux pas l'exécuter automatiquement au démarrage.

Comment l'obtenir afin de pouvoir démarrer mon VPN sans les autorisations de super utilisateur?

Réponses:


8

Le problème semble être que votre mot de passe dans le trousseau de clés n'est pas accessible.

La source

La solution mentionnée ici consiste à ouvrir le fichier / etc / NetworkManager / system-connections / ConnectionName et à définir

password-flags=0

et ajoutez les lignes ci-dessous au fichier

 [vpn-secrets]
 password=YourPassword

Redémarrez ensuite le gestionnaire de réseau pour reprendre la modification:

 sudo restart network-manager

Pour plus d'informations référez-vous à la source


Merci pour ces informations utiles. Une partie sur laquelle je suis coincé est que je n'avais pas de /etc/NetworkManager/system-connections/ConnectionNamefichier, donc quand il est dit de "modifier sous [vpn]", je ne sais pas comment gérer cela. Puis-je simplement créer le fichier?
Interlocuteur

oui / etc / NetworkManager / system-connections / <name-of-your-vpn-connection> et changez le password-flagsformulaire 1 en 0. Utilisez nmcli conpour lister les connexions.
devav2

D'accord, je l'ai maintenant. J'ai réalisé que je faisais une erreur en trouvant le bon fichier. Cependant, maintenant que j'ai effectué toutes les modifications suggérées, je reçois malheureusement toujours la même Not authorized to control networkingerreur.
Interlocuteur

Essayez de rouvrir l'éditeur de connexion NetworkManager et entrez à nouveau les mots de passe ou secrets VPN.
devav2

J'ai ouvert Network Manager et ressaisi le mot de passe (il était vide lorsque j'ai ouvert l'interface). Je n'ai rien vu d'autre concernant les "secrets". J'ai enregistré puis réessayé le script. Toujours le même message d'erreur.
Questionneur

2

Pour démarrer VPN automatiquement au démarrage

En supposant que vos fichiers d'informations d'identification fonctionnent, vous devriez pouvoir utiliser un dispatcher.dscript comme vous aviez à l'origine pour démarrer votre VPN. J'ai un peu modifié votre script pour le faire fonctionner avec 2 connexions (routeur sans fil à la maison et connexion filaire au travail). La raison en est que je veux qu'il démarre le VPN s'il n'est pas démarré lorsque l'une de mes connexions Internet requises est en vie. Dans mon exemple, je les ai configurés avec des noms par défaut, mais vous devez les modifier pour qu'ils correspondent à vos propres noms.

Mettez ceci dans le fichier /etc/NetworkManager/dispatcher.d/vpn-up, et rendez exécutable avecchmod +x

#! /bin/bash

REQUIRED_CONNECTION1_NAME="linksys"
REQUIRED_CONNECTION2_NAME="Wired connection 1"
VPN_CONNECTION_NAME="My VPN"


activ_con=$(nmcli con status | grep "${REQUIRED_CONNECTION1_NAME}\|${REQUIRED_CONNECTION2_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

Pour configurer les certificats clients dans NetworkManager

Si vous utilisez un certificat client avec mot de passe pour vous authentifier auprès de votre VPN, il est un peu non documenté.

Après avoir parcouru la spécification des paramètres de NetworkManager 0.9 , je n'ai pas pu déterminer comment spécifier une passe de certificat vpn dans le fichier de configuration. J'ai ouvert seahorseet trouvé mon « secret VPN » (mot de passe du certificat).

Il a été répertorié comme quelque chose comme « Secret de passe-passe VPN pour My VPN / org.freedesktop.NetworkManager.openvpn / vpn ». Cliquer sur l'onglet détails m'a donné un indice pour le setting-keynom:

setting-name: vpn
setting-key: cert-pass
connection-uuid: 0badcafe-f00d-dead-beef-feedfacef00d

Pour démarrer un VPN automatiquement en tant que root sur Ubuntu 12.04 (Precise Pangolin) à l'aide de NetworkManager 0.9.4.0:

Ouvrez /etc/NetworkManager/system-connections/My VPNet ajoutez le cert-passsecret VPN pour que le fichier ressemble à:

[connection]
id=My VPN
uuid=0badcafe-f00d-dead-beef-feedfacef00d
type=vpn
timestamp=1234567890

[vpn]
service-type=org.freedesktop.NetworkManager.openvpn
key=/home/<your-user>/path/to/certs/your.secure.key
ca=/home/<your-user>/path/to/certs/your.vpnca.crt
connection-type=tls
cert=/home/<your-user>/path/to/certs/your.crt
remote=your.vpn-server.com
cert-pass-flags=0
[vpn-secrets]
cert-pass=your-vpn-pass

[ipv4]
method=auto
never-default=true

Merci pour cette réponse. Mon system-connectionsdiffère du vôtre, cependant, donc je ne suis pas sûr d'appliquer vos modifications. Je n'ai pas de keyou timestamp, et mon type de connexion ne l'est passwordpas tls. J'ai ajouté mon dossier à ma question.
Interlocuteur

Si vous utilisez, connection-type=passwordvous devriez probablement utiliser password-flags=0et password=YourPasswordsous l'en- [vpn-secrets]tête comme suggéré par devav2.
TrinitronX

Cependant, l'erreur que vous obtenez suggère que l'utilisateur que vous exécutez VPN_start.shn'a pas les autorisations pour gérer le réseau. Si vous souhaitez gérer les connexions VPN en tant qu'utilisateur non root qui ne dispose pas d'autorisations, vous devrez peut-être ajouter certaines stratégies au /etc/dbus-1/system.d/org.freedesktop.NetworkManager.conffichier.
TrinitronX

S'il ne s'agissait que d'une question d'autorisations, le script ne fonctionnerait-il pas si je l'exécutais avec sudo? Comme indiqué dans ma question, il échoue également lorsque je l'exécute avec sudo.
Interlocuteur

Bon point! Je ne sais pas pourquoi cela vous donnerait cette erreur si vous utilisez sudo. Je n'ai pas pu tester moi-même votre type de VPN, car mon routeur ne semble pas être facilement configurable pour cela. Si la connexion VPN fonctionne correctement lorsqu'elle est démarrée via l'applet NetworkManager, je ne sais pas quoi vérifier d'autre.
TrinitronX
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.