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.
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?
Le problème semble être que votre mot de passe dans le trousseau n'est pas accessible.
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
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
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
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