To pytanie zostało zaktualizowane. Zobacz koniec tego postu.
Próbuję skonfigurować komputer Mythbuntu, aby łączył się z usługą VPN podczas uruchamiania. Mam nadzieję, że komputer Mythbuntu zawsze będzie korzystał z VPN dla wszystkich swoich połączeń internetowych.
I znalazłem skrypt , który podobno to zrobić, a wygląda to tak:
#!/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
Po uruchomieniu tego skryptu na moim komputerze pojawia się następujący błąd:
$ /home/mythbuntu/VPN_start.sh
Disconnected, trying to reconnect...
Error: Connection activation failed: Not authorized to control networking.
Pomyślałem, że może to być problem z uprawnieniami, więc spróbowałem uruchomić go z 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.
W jaki sposób mogę uruchomić ten skrypt bezbłędnie, aby można go było uruchomić podczas rozruchu lub logowania, aby mieć pewność, że zawsze łączę się przez VPN.
Jeśli ktoś ma lepszy skrypt lub metodę, wystarczyłoby to również jako odpowiedź.
Oto zawartość mojego pliku / etc / NetworkManager / system-connection / MyVPN (niektóre szczegóły zostały zastąpione znakami x dla zachowania prywatności):
[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
Chcę też dodać, że kiedy włączam VPN za pomocą apletu w prawym górnym rogu panelu Xfce, nie łączy się to z żadnym problemem. Wydaje mi się, że problemem nie jest nieprawidłowa autoryzacja, ale konfiguracja przy próbie zrobienia tego z wiersza poleceń.
Aktualizacja:
Nie jestem do końca pewien, co się zmieniło - być może coś w aktualizacji do 12.10 - ale teraz mogę uruchomić moją usługę VPN z wiersza poleceń. Jednak to polecenie działa tylko raz, gdy uruchamiam komputer po raz pierwszy, a także musi zostać uruchomione 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:~$
Ponieważ muszę go użyć sudo
do uruchomienia tego, nie mogę uruchomić go automatycznie podczas uruchamiania.
Jak go zdobyć, aby móc uruchomić VPN bez uprawnień superużytkownika?
/etc/NetworkManager/system-connections/ConnectionName
rzeczy, która mnie utknęła, jest to, że nie miałem pliku, więc kiedy mówi się „edytuj pod [VPN]”, nie jestem pewien, jak sobie z tym poradzić. Czy mogę po prostu utworzyć plik?password-flags
formę z 1 na 0. Użyj,nmcli con
aby wyświetlić listę połączeń.Not authorized to control networking
błąd.Aby automatycznie uruchomić VPN przy uruchomieniu
Zakładając, że masz działające pliki poświadczeń, powinieneś być w stanie użyć
dispatcher.d
skryptu, tak jak pierwotnie musiałeś uruchomić VPN. Zmodyfikowałem nieco twój skrypt, aby działał z 2 połączeniami (router bezprzewodowy w domu i połączenie przewodowe w pracy). Powodem tego jest to, że chcę, aby uruchomiła VPN, jeśli nie zostanie uruchomiona, gdy jedno z moich wymaganych połączeń internetowych jest aktywne. W moim przykładzie skonfigurowałem je z domyślnymi nazwami, ale powinieneś je zmienić, aby pasowały do własnych nazw.Umieść to w pliku
/etc/NetworkManager/dispatcher.d/vpn-up
i wykonaj za pomocąchmod +x
Aby skonfigurować certyfikaty klienta w NetworkManager
Jeśli używasz certyfikatu klienta z hasłem do uwierzytelnienia w sieci VPN, jest to trochę nieudokumentowane.
Po przejrzeniu specyfikacji ustawień NetworkManager 0.9 nie byłem w stanie określić, w jaki sposób określić certyfikat VPN w pliku konfiguracyjnym. Otworzyłem
seahorse
i znalazłem swój „ tajny VPN ” (hasło certyfikatu).Został wymieniony jako coś w rodzaju „ Tajnego klucza certyfikatu VPN dla My VPN / org.freedesktop.NetworkManager.openvpn / vpn ”. Kliknięcie zakładki szczegółów dało mi wskazówkę co do
setting-key
nazwy:Aby automatycznie uruchomić VPN jako root na Ubuntu 12.04 (Precise Pangolin) za pomocą NetworkManager 0.9.4.0:
Otwórz
/etc/NetworkManager/system-connections/My VPN
i dodajcert-pass
klucz VPN, aby plik wyglądał następująco:źródło
system-connections
różni się jednak od twojego, więc nie jestem pewien, czy zastosuję zmiany. Nie mamkey
lubtimestamp
, a mój typ połączenia topassword
nietls
. Dodałem mój plik do mojego pytania.connection-type=password
, prawdopodobnie powinieneś używaćpassword-flags=0
ipassword=YourPassword
pod[vpn-secrets]
nagłówkiem, jak sugeruje devav2.VPN_start.sh
nie ma uprawnień do zarządzania siecią. Jeśli chcesz zarządzać połączeniami VPN jako użytkownik inny niż root, który nie ma uprawnień, może być konieczne dodanie niektórych zasad do/etc/dbus-1/system.d/org.freedesktop.NetworkManager.conf
pliku.sudo
? Jak zauważono w moim pytaniu, nie działa, gdy go uruchamiamsudo
.