Этот вопрос был обновлен. Пожалуйста, смотрите конец этого поста.
Я пытаюсь настроить мой компьютер 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
Когда я запускаю этот скрипт на моей машине, я получаю следующую ошибку: [ 1113]
$ /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 без прав суперпользователя?
Принятие Вас имеет Вашу работу файлов учетных данных, необходимо смочь использовать a dispatcher.d
сценарий как Вы первоначально должен был запустить Вашу VPN. Я изменил Ваш сценарий немного для получения его работающий с 2 соединениями (Беспроводной маршрутизатор дома и проводное соединение на работе). Причина этого состоит в том, что я хочу, чтобы это запустило 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
При использовании клиентского сертификата с паролем для аутентификации к VPN, это немного не документировано.
После просматривания спецификации настроек NetworkManager 0.9 я не мог определить, как указать vpn передачу сертификата в файле конфигурации. Я открылся 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
Открытый /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
Проблема в том, что ваш пароль в связке ключей недоступен.
Упомянутое решение - открыть файл / etc / NetworkManager / system-connections / ConnectionName и установить
password-flags=0
и добавьте следующие строки в файл
[vpn-secrets]
password=YourPassword
Затем перезапустите диспетчер сети, чтобы получить изменения:
sudo restart network-manager