Вопрос или проблема
Мне нужно подключиться к некоторой VPN через OpenVPN
.
Я использую Bionic
.
Это работает, когда я запускаю команду от имени sudo из терминала
~$ sudo openvpn --config somevpn.ovpn
...
Sun Jun 10 22:35:31 2018 TUN/TAP device tap0 opened
Sun Jun 10 22:35:31 2018 do_ifconfig, tt->did_ifconfig_ipv6_setup=0
Sun Jun 10 22:35:31 2018 /sbin/ip link set dev tap0 up mtu 1500
Sun Jun 10 22:35:31 2018 Initialization Sequence Completed
без sudo не удается
~$ openvpn --config somevpn.ovpn
...
Sun Jun 10 22:34:55 2018 ERROR: Cannot ioctl TUNSETIFF tap: Operation not permitted (errno=1)
Sun Jun 10 22:34:55 2018 Exiting due to fatal error
Ок, только sudo может создать устройство TUN/TAP. Я добавил пользователя в группу vpn и добавил эту группу в sudoer
%nm-openvpn ALL=NOPASSWD: /usr/sbin/openvpn
Но это помогает только в терминале, то есть пользователю не нужно вводить пароль при запуске команды. Это не помогает при попытке запустить VPN соединение через network-manager-openvpn-gnome
.
network-manager-openvpn-gnome
сообщает о тайм-ауте через несколько секунд после активации этого VPN соединения.
Как мне успешно запустить это VPN соединение через графический интерфейс?
Пожалуйста, проверьте ваш файл журнала на наличие сообщения об ошибке. У меня была похожая ошибка при попытке запустить ‘openvpn’ из командной строки. Однако при чтении файла журнала ошибка казалась связанной с невозможностью найти сертификаты.
В этом случае я переместил свои файлы в папку ‘Documents’, повторно импортировал файл через Network Manager, и тогда он заработал ожидаемо.
Ответ или решение
Чтобы решить проблему, связанную с ошибкой при использовании OpenVPN через network-manager-openvpn-gnome
, следует учесть несколько ключевых моментов, основанных на предоставленном описании проблемы.
Теория (Theory)
Проблема, с которой вы столкнулись, заключается в том, что OpenVPN требует административных прав для создания устройства TUN/TAP. Обходной путь с использованием sudo
в терминале работает, поскольку выполняется команда с повышением привилегий. Однако Network Manager, используемый через network-manager-openvpn-gnome
, по умолчанию не выполняет команды с повышенными привилегиями, что приводит к тайм-ауту при попытке установления VPN-соединения.
Пример (Example)
На основе вашего описания, проблемы в терминале решены добавлением пользователя в группу и предоставлением необходимых привилегий без пароля через файл sudoers
. Однако это решение не применяется автоматически к Network Manager, который работает в контексте обычного пользователя без привилегий суперпользователя.
Применение (Application)
-
Проверьте права доступа к файлам конфигурации и сертификатам: Убедитесь, что файлы конфигурации (
.ovpn
) и любые связанные сертификаты и ключи имеют правильные права доступа и расположены в папке, к которой Network Manager имеет доступ. Переезд файлов в папкуDocuments
, как упомянуто в вашем сообщении, может быть решением, если проблема связана с доступом к файловой системе. -
Очистите и повторно настройте соединение: Удалите существующую конфигурацию VPN из Network Manager и добавьте её заново. При этом важно убедиться, что все пути к сертификатам и ключам указаны правильно.
-
Используйте PolicyKit: Для того чтобы Network Manager мог использовать администратора OpenVPN без ввода пароля, может потребоваться создать или отредактировать PolicyKit правило. Это можно сделать в файле
/usr/share/polkit-1/actions/org.freedesktop.NetworkManager.policy
. Необходимо добавить правила, которые предоставляют необходимые привилегии. -
Проверьте логи: Если проблему не удалось решить, внимательно изучите лог файлы OpenVPN и Network Manager. Лог может содержать более подробную информацию о причине ошибки. Логи можно найти в
/var/log/syslog
или черезjournalctl
. -
Обновите и перепроверьте версии: Иногда проблемы могут быть вызваны определёнными версиями программного обеспечения. Убедитесь, что system и Network Manager обновлены до последних стабильных версий.
Следуя этим рекомендациям, есть высокая вероятность, что вы сможете решить проблему, и ваш Network Manager успешно подключит VPN через графический интерфейс без необходимости использования терминала.