Помилка при спробі підключення до VPN при запуску


13

Це питання було оновлено. Будь ласка, дивіться хвостовий кінець цієї публікації.

Я намагаюся налаштувати мій комп'ютер Mythbuntu для підключення до послуги VPN при його запуску. Я сподіваюся, що комп'ютер Mythbuntu завжди буде використовувати VPN для всіх своїх інтернет-підключень.

Я знайшов сценарій, який нібито зробить це, і виглядає так:

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

Коли я запускаю цей скрипт на своїй машині, я отримую таку помилку:

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

Я подумав, що це може бути проблема дозволу, тому я спробував запустити його з 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.

Як змусити цей скрипт працювати без помилок, щоб я міг запустити його під час завантаження або входу, щоб переконатися, що я завжди підключаюся через VPN.

Якщо хтось має кращий сценарій чи метод, цього також вистачить як відповідь.


Це вміст мого / etc / NetworkManager / системного з'єднання / файлу MyVPN (деякі деталі замінені x символами для конфіденційності):

[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

Крім того, я просто хочу додати, що коли я вмикаю VPN за допомогою аплету у верхньому правому куті панелі Xfce, він підключається без проблем. Тож ця проблема, здається, не є неправильною авторизацією, але конфігурацією при спробі зробити це з командного рядка.

Оновлення:

Я не зовсім впевнений, що змінилося - можливо, щось було оновлено до 12.10 - але тепер я можу запустити свою службу VPN з командного рядка. Однак ця команда працює лише один раз, коли я вперше запускаю комп'ютер, а також його потрібно запускати 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:~$

Оскільки мені потрібно sudoзапустити це, я не можу запустити його автоматично при запуску.

Як отримати його, щоб я міг запускати свою VPN без дозволів користувача?

Відповіді:


8

Проблема, здається, полягає в тому, що ваш пароль у брелоку не доступний.

Джерело

Згадане рішення полягає в тому, щоб відкрити файл / і т.д. / NetworkManager / системні з'єднання / ConnectionName та встановити значення

password-flags=0

і додайте у файл рядки нижче

 [vpn-secrets]
 password=YourPassword

Потім перезапустіть менеджер мережі, щоб отримати зміну:

 sudo restart network-manager

Для отримання додаткової інформації зверніться до джерела


Дякую за корисну інформацію. Одна частина, на якій я застрягла, - це те, що у мене не було /etc/NetworkManager/system-connections/ConnectionNameфайлу, тому, коли він говорить "редагувати під [vpn]", я не знаю, як з цим впоратися. Чи можу я просто створити файл?
Запитувач

так / і т.д. / NetworkManager / підключення до системи / <ім'я-of-your-vpn-connection> та змініть password-flagsформу від 1 до 0. Використовуйте nmcli conдля переліку з'єднань.
devav2

Гаразд, я це зараз зрозумів. Я зрозумів, що помилявся в пошуку потрібного файлу. Однак тепер я вніс усі запропоновані зміни, на жаль, я все-таки отримую ту саму Not authorized to control networkingпомилку.
Запитувач

Спробуйте заново відкрити редактор з’єднань NetworkManager та повторно введіть паролі та секрети VPN.
devav2

Я відкрив Менеджер мережі та знову ввів пароль (він був порожнім, коли я відкрив інтерфейс). Я не бачив нічого іншого, що стосувалося "секретів". Я зберег, а потім повторно спробував сценарій. Ще те саме повідомлення про помилку.
Запитувач

2

Автоматичне запуску VPN при запуску

Якщо припустимо, що ваші файли облікових даних працюють, ви повинні мати можливість використовувати dispatcher.dсценарій, як спочатку потрібно було запустити VPN. Я трохи змінив ваш сценарій, щоб він працював з двома підключеннями (бездротовий маршрутизатор вдома та дротовий зв’язок на роботі). Причиною цього є те, що я хочу, щоб він запустив VPN, якщо він не запускається, коли будь-який з потрібних мені підключень до Інтернету активований. У моєму прикладі я налаштував їх за іменами за замовчуванням, але слід змінити їх так, щоб вони відповідали власним іменам.

Помістіть це у файл /etc/NetworkManager/dispatcher.d/vpn-upта зробіть його виконуваним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

Налаштування клієнтських сертифікатів у NetworkManager

Якщо ви використовуєте сертифікат клієнта з паролем для аутентифікації до свого VPN, він трохи недокументований.

Після перегляду специфікацій налаштувань NetworkManager 0.9 я не зміг визначити, як вказати пропуск vpn cert у конфігураційному файлі. Я відкрив seahorseі знайшов свій " секрет VPN " (пароль сертифіката).

Він був вказаний як щось на кшталт " секрет передачі VPN для мого VPN / org.freedesktop.NetworkManager.openvpn / vpn ". Клацнувши на вкладці "Подробиці", я дав підказку для setting-keyімені:

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

Щоб запустити VPN автоматично як root на Ubuntu 12.04 (Precision Pangolin) за допомогою NetworkManager 0.9.4.0:

Відкрийте /etc/NetworkManager/system-connections/My VPNта додайте cert-passсекрет VPN, щоб файл виглядав так:

[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

Дякую за цю відповідь. Моя system-connections, однак, відрізняється від вашої, тому я не впевнений у застосуванні ваших змін. У мене немає keyабо timestamp, а тип мого з'єднання - passwordні tls. Я додав свій файл до свого запитання.
Запитувач

Якщо ви користуєтесь, connection-type=passwordви, ймовірно, повинні використовувати password-flags=0та password=YourPasswordпід [vpn-secrets]заголовком, як запропонував devav2.
TrinitronX

Однак помилка, яку ви отримуєте, говорить про те, що користувач, якого ви працюєте VPN_start.sh, не має дозволу на управління мережею. Якщо ви хочете керувати VPN-підключеннями як некоріозний користувач, який не має дозволів, можливо, вам доведеться додати деякі /etc/dbus-1/system.d/org.freedesktop.NetworkManager.confфайли до файлу.
TrinitronX

Якби це було лише питанням дозволів, чи не працював би сценарій, якби я запускав його sudo? Як було зазначено в моєму запитанні, він не вдається, коли я також запускаю його sudo.
Запитувач

Гарна думка! Я не впевнений, чому це дало б вам цю помилку, якщо ви працюєте з судо. Я не зміг сам перевірити ваш тип VPN, оскільки мій маршрутизатор не може бути легко налаштований для цього. Якщо підключення VPN працює нормально, коли запускається через аплет NetworkManager, я не знаю, що ще перевірити.
TrinitronX
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.