Этот вопрос был обновлен. Пожалуйста, смотрите конец этого поста.
Я пытаюсь настроить свой компьютер 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 / system-connections / 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 без прав суперпользователя?
/etc/NetworkManager/system-connections/ConnectionName
файла, поэтому, когда он говорит «редактировать в [vpn]», я не уверен, как с этим справиться. Могу ли я просто создать файл?password-flags
форму 1 на 0. Используйтеnmcli con
для просмотра списка соединений.Not authorized to control networking
ошибку.Для автоматического запуска VPN при запуске
Предполагая, что у вас работают файлы учетных данных, вы должны иметь возможность использовать
dispatcher.d
сценарий, который вы изначально использовали для запуска VPN. Я немного изменил ваш скрипт, чтобы он работал с двумя подключениями (беспроводной маршрутизатор дома и проводное подключение на работе). Причина этого в том, что я хочу, чтобы он запускал VPN, если он не запущен, когда любое из моих требуемых подключений к Интернету живо. В моем примере я настроил их с именами по умолчанию, но вы должны изменить их, чтобы они соответствовали вашим собственным именам.Поместите это в файл
/etc/NetworkManager/dispatcher.d/vpn-up
и сделайте исполняемым сchmod +x
Чтобы настроить клиентские сертификаты в NetworkManager
Если вы используете клиентский сертификат с паролем для аутентификации в вашей VPN, это немного недокументировано.
После просмотра спецификации параметров NetworkManager 0.9 я не смог определить, как указать пропуск сертификата vpn в файле конфигурации. Я открыл
seahorse
и нашел свой « VPN-секрет » (пароль сертификата).Он был указан как что-то вроде « Секрет сертификата VPN для My VPN / org.freedesktop.NetworkManager.openvpn / vpn ». Нажатие на вкладку сведений дало мне подсказку для
setting-key
названия:Чтобы запустить VPN автоматически от имени пользователя root в Ubuntu 12.04 (Precise Pangolin) с помощью NetworkManager 0.9.4.0:
Откройте
/etc/NetworkManager/system-connections/My VPN
и добавьтеcert-pass
секрет VPN, чтобы файл выглядел следующим образом:источник
system-connections
отличается от вашего, тем не менее, поэтому я не уверен в применении ваших правок. У меня нетkey
илиtimestamp
, и мой тип подключения -password
нетtls
. Я добавил свой файл в свой вопрос.connection-type=password
вы, вероятно, должны использоватьpassword-flags=0
иpassword=YourPassword
под[vpn-secrets]
заголовком, как предложено devav2.VPN_start.sh
, нет прав на управление сетью. Если вы хотите управлять VPN-подключениями как пользователь без полномочий root, у которого нет разрешений, вам может потребоваться добавить некоторые политики в/etc/dbus-1/system.d/org.freedesktop.NetworkManager.conf
файл.sudo
? Как отмечено в моем вопросе, он не работает, когда я запускаю егоsudo
также.