Kesalahan saat mencoba terhubung ke VPN saat startup

13

Pertanyaan ini telah diperbarui. Silakan lihat ujung ekor dari posting ini.

Saya mencoba mengatur komputer Mythbuntu saya untuk terhubung ke layanan VPN saat dinyalakan. Harapan saya adalah bahwa komputer Mythbuntu akan selalu menggunakan VPN untuk semua koneksi internetnya.

Saya menemukan skrip yang seharusnya melakukan itu, dan kelihatannya seperti ini:

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

Ketika saya menjalankan skrip ini di komputer saya, saya mendapatkan kesalahan berikut:

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

Saya pikir itu mungkin masalah izin, jadi saya mencoba menjalankannya dengan 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.

Bagaimana cara menjalankan skrip ini tanpa kesalahan sehingga saya dapat menjalankannya saat boot atau login sehingga saya dapat memastikan bahwa saya selalu terhubung dengan VPN.

Jika ada yang punya skrip atau metode yang lebih baik, itu juga sudah cukup sebagai jawaban.


Ini adalah isi file / etc / NetworkManager / koneksi-sistem / MyVPN saya (beberapa detail diganti dengan x karakter untuk privasi):

[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

Juga, saya hanya ingin menambahkan bahwa ketika saya menghidupkan VPN menggunakan applet di sudut kanan atas panel Xfce, itu menghubungkan tidak ada masalah. Jadi masalah bagi saya tampaknya bukan salah otorisasi, tetapi tentang konfigurasi ketika mencoba melakukan ini dari baris perintah.

Memperbarui:

Saya tidak sepenuhnya yakin apa yang telah berubah - mungkin sesuatu dalam peningkatan ke 12.10 - tetapi sekarang saya dapat memulai layanan VPN dari baris perintah. Namun, perintah ini hanya berfungsi sekali ketika saya pertama kali memulai komputer, dan juga perlu dijalankan 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:~$

Karena saya perlu menggunakan sudountuk menjalankan ini, saya tidak dapat menjalankannya secara otomatis saat startup.

Bagaimana saya mendapatkannya sehingga saya bisa memulai VPN saya tanpa izin pengguna super?

Penanya
sumber

Jawaban:

8

Masalahnya tampaknya, bahwa kata sandi Anda dalam keyring tidak dapat diakses.

Sumber

Solusi yang disebutkan ada untuk membuka file / etc / NetworkManager / system-koneksi / ConnectionName dan mengatur

password-flags=0

dan tambahkan baris di bawah ini ke file

 [vpn-secrets]
 password=YourPassword

Kemudian mulai ulang manajer jaringan untuk mengambil perubahan:

 sudo restart network-manager

Untuk info lebih lanjut lihat sumbernya

devav2
sumber
Terima kasih atas informasi yang bermanfaat itu. Salah satu bagian yang saya terjebak adalah bahwa saya tidak memiliki /etc/NetworkManager/system-connections/ConnectionNamefile, jadi ketika dikatakan untuk "mengedit di bawah [vpn]", saya tidak yakin bagaimana menangani itu. Bisakah saya membuat file?
Penanya
ya / etc / NetworkManager / system-koneksi / <name-of-your-vpn-connection> dan ubah password-flagsformulir 1 menjadi 0. Gunakan nmcli conuntuk membuat daftar koneksi.
devav2
Oke, saya mengerti sekarang. Saya menyadari saya membuat kesalahan dalam menemukan file yang tepat. Namun, sekarang saya sudah melakukan semua pengeditan yang disarankan, saya sayangnya masih mendapatkan Not authorized to control networkingkesalahan yang sama .
Penanya
Cobalah untuk membuka kembali editor koneksi NetworkManager dan masukkan kembali kata sandi atau rahasia VPN.
devav2
Saya membuka Network Manager dan memasukkan kembali kata sandi (itu kosong ketika saya membuka antarmuka). Saya tidak melihat hal lain yang berhubungan dengan "rahasia". Saya menyimpan dan mencoba kembali skrip. Masih pesan kesalahan yang sama.
Penanya
2

Untuk memulai VPN secara otomatis saat startup

Dengan asumsi Anda memiliki file kredensial Anda berfungsi, Anda harus dapat menggunakan dispatcher.dskrip seperti Anda awalnya harus memulai VPN Anda. Saya telah sedikit memodifikasi skrip Anda agar berfungsi dengan 2 koneksi (Router nirkabel di rumah, dan koneksi kabel di tempat kerja). Alasan untuk ini adalah bahwa saya ingin memulai VPN jika tidak dimulai ketika salah satu koneksi internet yang diperlukan saya masih hidup. Dalam contoh saya, saya telah mengonfigurasinya dengan nama default, tetapi Anda harus mengubahnya agar sesuai dengan nama Anda sendiri.

Masukkan ini ke dalam file /etc/NetworkManager/dispatcher.d/vpn-up, dan buat bisa dieksekusi denganchmod +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

Untuk mengkonfigurasi sertifikat klien di NetworkManager

Jika Anda menggunakan sertifikat klien dengan kata sandi untuk mengautentikasi ke VPN Anda, itu agak tidak berdokumen.

Setelah menjelajah melalui spesifikasi pengaturan NetworkManager 0.9 , saya tidak dapat menentukan cara menentukan pass vpn cert dalam file konfigurasi. Saya membuka seahorsedan menemukan ' rahasia VPN ' saya (kata sandi sertifikat).

Itu terdaftar sebagai sesuatu seperti ' VPN cert-pass secret untuk My VPN / org.freedesktop.NetworkManager.openvpn / vpn '. Mengklik pada tab detail memberi saya petunjuk untuk setting-keynama:

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

Untuk memulai VPN secara otomatis sebagai root pada Ubuntu 12.04 (Precise Pangolin) menggunakan NetworkManager 0.9.4.0:

Buka /etc/NetworkManager/system-connections/My VPNdan tambahkan cert-passrahasia VPN sehingga file tersebut terlihat seperti:

[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
sumber
Terima kasih atas jawaban ini. Saya system-connectionsberbeda dengan milik Anda, jadi saya tidak yakin tentang penerapan suntingan Anda. Saya tidak punya keyatau timestamp, dan jenis koneksi saya password, tidak tls. Saya telah menambahkan file saya ke pertanyaan saya.
Penanya
Jika Anda menggunakan connection-type=passwordAnda mungkin harus menggunakan password-flags=0dan di password=YourPasswordbawah [vpn-secrets]judul seperti yang disarankan oleh devav2.
TrinitronX
Namun, kesalahan yang Anda peroleh menunjukkan bahwa pengguna yang Anda jalankan VPN_start.shtidak memiliki izin untuk mengelola jaringan. Jika Anda ingin mengelola koneksi VPN sebagai pengguna non-root yang tidak memiliki izin, Anda mungkin perlu menambahkan beberapa kebijakan ke /etc/dbus-1/system.d/org.freedesktop.NetworkManager.conffile.
TrinitronX
Jika itu hanya masalah izin, bukankah skrip akan berfungsi jika saya menjalankannya sudo? Seperti disebutkan dalam pertanyaan saya, gagal ketika saya menjalankannya sudojuga.
Penanya
Poin bagus! Saya tidak yakin mengapa ini akan memberi Anda kesalahan ini jika Anda menjalankan dengan sudo. Saya sendiri belum dapat menguji jenis VPN Anda, karena router saya tampaknya tidak mudah dikonfigurasi untuk itu. Jika koneksi VPN berfungsi dengan baik ketika dimulai melalui applet NetworkManager, maka saya tidak tahu harus memeriksa apa lagi.
TrinitronX