web-dev-qa-db-fra.com

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

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.

Je ai trouvé un script qui le fera soi-disant, 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, le message d'erreur suivant s'affiche:

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

Je pensais que c'était peut-être un problème de permission, alors j'ai 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 faire en sorte que ce script s'exécute sans erreur afin de pouvoir l'exécuter au démarrage ou lors de 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 ont été remplacés par x caractères pour des raisons de 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

En outre, je veux juste ajouter que lorsque j'active le VPN en utilisant l'applet situé dans le coin supérieur droit du panneau Xfce, il ne connecte aucun problème. Donc, le problème ne me semble pas être une autorisation incorrecte, mais la configuration lorsque vous essayez de le faire depuis la ligne de commande.

Mettre à jour:

Je ne suis pas tout à fait sûr de 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 lors du premier démarrage de l'ordinateur et 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:~$

Etant donné que je dois utiliser Sudo pour 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 autorisations de super utilisateur?

13
Questioner

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

Source

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

password-flags=0

et ajoutez les lignes ci-dessous au fichier

 [vpn-secrets]
 password=YourPassword

Puis redémarrez le gestionnaire de réseau pour prendre en charge le changement:

 Sudo restart network-manager

Pour plus d'informations, consultez le source

8
devav2

Pour démarrer VPN automatiquement au démarrage

En supposant que vos fichiers d’identifiants fonctionnent, vous devriez pouvoir utiliser un script dispatcher.d, comme vous l’aviez initialement prévu 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é alors que l'une de mes connexions Internet requises est active. 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.

Placez ceci dans le fichier /etc/NetworkManager/dispatcher.d/vpn-up et rendez-le exécutable avec chmod +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 un mot de passe pour vous authentifier sur votre VPN, il est un peu non documenté.

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

Il était répertorié comme quelque chose comme ' secret de cert-pass VPN pour Mon VPN/org.freedesktop.NetworkManager.openvpn/vpn '. En cliquant sur l'onglet Détails, j'ai eu un indice sur le nom setting-key:

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

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

Ouvrez /etc/NetworkManager/system-connections/My VPN et ajoutez le secret VPN cert-pass afin que le fichier se présente comme suit:

[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
2
TrinitronX