Fehler beim Versuch, beim Start eine VPN-Verbindung herzustellen

13

Diese Frage wurde aktualisiert. Bitte lesen Sie das Ende dieses Beitrags.

Ich versuche, meinen Mythbuntu-Computer so einzurichten, dass er beim Start eine Verbindung zu einem VPN-Dienst herstellt. Ich hoffe, dass der Mythbuntu-Computer das VPN immer für alle seine Internetverbindungen verwendet.

Ich habe ein Skript gefunden , das das angeblich tun wird, und es sieht so aus:

#!/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

Wenn ich dieses Skript auf meinem Computer ausführe, wird folgende Fehlermeldung angezeigt:

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

Ich dachte, es könnte ein Berechtigungsproblem sein, also habe ich versucht, es mit sudo auszuführen:

$ 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.

Wie stelle ich sicher, dass dieses Skript fehlerfrei ausgeführt wird, damit ich es beim Booten ausführen oder mich anmelden kann, um sicherzustellen, dass ich immer über VPN eine Verbindung herstelle.

Wenn jemand ein besseres Skript oder eine bessere Methode hat, würde dies auch als Antwort ausreichen.


Dies sind die Inhalte meiner / etc / NetworkManager / system-connections / MyVPN-Datei (einige Details werden aus Datenschutzgründen durch x Zeichen ersetzt):

[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

Außerdem möchte ich nur hinzufügen, dass das Einschalten des VPN über das Applet in der oberen rechten Ecke des Xfce-Panels kein Problem darstellt. Das Problem scheint mir nicht die falsche Autorisierung zu sein, sondern die Konfiguration, wenn Sie versuchen, dies über die Befehlszeile zu tun.

Aktualisieren:

Ich bin nicht ganz sicher, was sich geändert hat - möglicherweise im Upgrade auf 12.10 -, aber ich kann meinen VPN-Dienst jetzt über die Befehlszeile starten. Dieser Befehl funktioniert jedoch nur einmal, wenn ich den Computer zum ersten Mal starte, und er muss auch mit ausgeführt werden 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:~$

Da ich sudodies ausführen muss, kann ich es beim Start nicht automatisch ausführen.

Wie bekomme ich es, damit ich mein VPN ohne Superuser-Berechtigungen starten kann?

Fragesteller
quelle

Antworten:

8

Das Problem scheint zu sein, dass Ihr Passwort im Schlüsselbund nicht zugänglich ist.

Quelle

Die dort erwähnte Lösung besteht darin, die Datei / etc / NetworkManager / system-connections / ConnectionName zu öffnen und den

password-flags=0

und fügen Sie die folgenden Zeilen zur Datei hinzu

 [vpn-secrets]
 password=YourPassword

Starten Sie dann den Netzwerkmanager neu, um die Änderung zu übernehmen:

 sudo restart network-manager

Weitere Informationen finden Sie in der Quelle

devav2
quelle
Vielen Dank für diese hilfreichen Informationen. Ein Teil, an dem ich /etc/NetworkManager/system-connections/ConnectionNamefesthalte, ist, dass ich keine Datei hatte. Wenn also "Bearbeiten unter [vpn]" steht, bin ich mir nicht sicher, wie ich damit umgehen soll. Kann ich die Datei einfach erstellen?
Fragesteller
yes / etc / NetworkManager / system-connections / <Name-Ihrer-VPN-Verbindung> und ändern Sie die password-flagsForm 1 in 0. Verwenden Sie diese Option, um die Verbindungen aufzulisten nmcli con.
Devav2
Okay, ich habe es jetzt verstanden. Mir wurde klar, dass ich einen Fehler gemacht hatte, als ich die richtige Datei gefunden hatte. Jetzt habe ich jedoch alle vorgeschlagenen Änderungen vorgenommen. Leider wird immer noch derselbe Not authorized to control networkingFehler angezeigt.
Fragesteller
Versuchen Sie, den NetworkManager-Verbindungseditor erneut zu öffnen und die VPN-Kennwörter oder -Verschlüsselungen erneut einzugeben.
Devav2
Ich habe Network Manager geöffnet und das Kennwort erneut eingegeben (es war leer, als ich die Benutzeroberfläche öffnete). Ich habe nichts anderes im Zusammenhang mit "Geheimnissen" gesehen. Ich habe das Skript gespeichert und dann erneut versucht. Immer noch die selbe Fehlermeldung.
Fragesteller
2

So starten Sie VPN automatisch beim Start

Angenommen, Ihre Anmeldeinformationsdateien funktionieren, sollten Sie in der Lage sein, ein dispatcher.dSkript zu verwenden, wie Sie es ursprünglich zum Starten Ihres VPNs benötigt haben. Ich habe Ihr Skript ein wenig geändert, damit es mit 2 Verbindungen funktioniert (WLAN-Router zu Hause und Kabelverbindung bei der Arbeit). Der Grund dafür ist, dass ich möchte, dass das VPN gestartet wird, wenn es nicht gestartet wird, wenn eine meiner erforderlichen Internetverbindungen aktiv ist. In meinem Beispiel habe ich sie mit Standardnamen konfiguriert, aber Sie sollten sie so ändern, dass sie Ihren eigenen Namen entsprechen.

Gib dies in die Datei ein /etc/NetworkManager/dispatcher.d/vpn-upund mache es ausführbar mitchmod +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

So konfigurieren Sie Client-Zertifikate in NetworkManager

Wenn Sie ein Client-Zertifikat mit Kennwort zur Authentifizierung bei Ihrem VPN verwenden, ist es ein bisschen undokumentiert.

Nach dem Durchsuchen der NetworkManager 0.9-Einstellungsspezifikation konnte ich nicht feststellen, wie ein VPN-Zertifizierungspass in der Konfigurationsdatei angegeben werden soll. Ich öffnete seahorseund fand mein " VPN-Geheimnis " (Zertifikatspasswort).

Es wurde als " VPN-Zertifikat-Pass-Geheimnis für Mein VPN / org.freedesktop.NetworkManager.openvpn / vpn " aufgeführt. Ein Klick auf den Details-Tab gab mir einen Hinweis auf den setting-keyNamen:

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

So starten Sie ein VPN automatisch als root unter Ubuntu 12.04 (Precise Pangolin) mit NetworkManager 0.9.4.0:

Öffnen /etc/NetworkManager/system-connections/My VPNSie das cert-passVPN-Geheimnis und fügen Sie es hinzu, damit die Datei wie folgt aussieht:

[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
TrinitronX
quelle
Vielen Dank für diese Antwort. Meine system-connectionsunterscheidet sich jedoch von Ihrer, sodass ich mir nicht sicher bin, ob ich Ihre Änderungen übernehmen soll. Ich habe kein keyoder timestampund mein Verbindungstyp ist passwordnicht tls. Ich habe meine Datei zu meiner Frage hinzugefügt.
Fragesteller
Wenn Sie verwenden connection-type=password, sollten Sie wahrscheinlich password-flags=0und password=YourPasswordunter der [vpn-secrets]Überschrift verwenden, wie von devav2 vorgeschlagen.
TrinitronX
Die Fehlermeldung deutet jedoch darauf hin, dass der Benutzer, unter dem Sie ausgeführt werden, VPN_start.shkeine Berechtigungen zum Verwalten des Netzwerks hat. Wenn Sie VPN-Verbindungen als Benutzer ohne Rootberechtigung verwalten möchten, müssen Sie der /etc/dbus-1/system.d/org.freedesktop.NetworkManager.confDatei möglicherweise einige Richtlinien hinzufügen .
TrinitronX
Wenn es nur um Berechtigungen ginge, würde das Skript dann nicht funktionieren, wenn ich es mit sudoausführen würde ? Wie in meiner Frage erwähnt, schlägt es fehl, wenn ich es auch mit sudostarte.
Fragesteller
Guter Punkt! Ich bin mir nicht sicher, warum Ihnen dieser Fehler angezeigt wird, wenn Sie mit sudo arbeiten. Ich konnte Ihren VPN-Typ nicht selbst testen, da mein Router dafür anscheinend nicht einfach konfigurierbar ist. Wenn die VPN-Verbindung beim Starten über das NetworkManager-Applet einwandfrei funktioniert, weiß ich nicht, was ich sonst überprüfen soll.
TrinitronX