Thank you for reading this post, don't forget to subscribe!
OpenVPN 3 — это новый клиент, построенный поверх OpenVPN 3 Core Library, которая также используется в различных клиентах OpenVPN Connect и OpenVPN для Android. В этой статье мы рассмотрим как установить OpenVPN 3 на Linux: Ubuntu, Debian, CentOS и их производные.
Этот клиент построен вокруг совершенно другой архитектуры в отношении использования. Он в значительной степени строится на D-Bus и позволяет непривилегированным пользователям запускать и управлять своими собственными VPN-туннелями из коробки. Системные администраторы, желающие получить больше контроля, также могут контролировать и ограничивать этот доступ как путем ужесточения политики D-Bus OpenVPN 3 по умолчанию, так и путем упрощения функций в OpenVPN 3 Linux.
Даже если имя проекта несет «Linux», это не означает, что он ограничен только Linux. Любая платформа, имеющая доступную шину D, способна запускать этот клиент теоретически. Но поскольку D-Bus наиболее часто используется в средах Linux, это, естественно, будет основным направлением для проекта.
Примечания к выпуску хранятся в тегах git в репозитории project git. Их также можно посмотреть здесь: https://github.com/OpenVPN/openvpn3-linux/releases
Установка OpenVPN 3 на Linux
Debian, Ubuntu
Во первых убедитесь что ваш apt поддерживает транспорт https:
# apt install apt-transport-https
Установите ключ репозитория OpenVPN, используемый пакетами OpenVPN 3 Linux
# wget https://swupdate.openvpn.net/repos/openvpn-repo-pkg-key.pub
# apt-key add openvpn-repo-pkg-key.pub
Затем вам нужно установить соответствующий репозиторий. Замените $DISTRO именем выпуска в зависимости от вашего дистрибутива Debian/Ubuntu.
# wget -O /etc/apt/sources.list.d/openvpn3.list https://swupdate.openvpn.net/community/openvpn3/repos/openvpn3-$DISTRO.list
# apt update
Поддерживаемые дистрибутивы:
ДИСТРИБУТИВ | РЕЛИЗ | ИМЯ РЕЛИЗА ($DISTRO) |
---|---|---|
Debian | 9 | stretch |
Debian | 10 | buster |
Ubuntu | 16.04 | xenial |
Ubuntu | 18.04 | bionic |
Ubuntu | 19.10 | eoan |
Ubuntu | 20.04 | focal |
Ubuntu | 20.10 | groovy |
И наконец можно установить пакет OpenVPN 3
# apt install openvpn3
Fedora, Red Hat Enterprise Linux, CentOS, Scientific Linux
Пакеты для этих дистрибутивов предоставляются через репозиторий Fedora Copr.
Поддерживаемые версии:
ДИСТРИБУТИВ | ВЕРСИЯ РЕЛИЗА |
---|---|
Fedora | 32, 33, Rawhide |
Red Hat Enterprise Linux / CentOS | 7, 8 |
Если вы используете Red Hat Enterprise Linux или ее производные, вам необходимо сначала установить как репозиторий Fedora EPEL, так и модуль yum copr.
Инструкции по включению Fedora EPEL можно найти здесь: https://fedoraproject.org/wiki/EPEL. Выпуски Fedora обычно имеют предустановленный модуль yum/dnf copr.
# yum install yum-plugin-copr
Теперь, когда модуль Copr доступен, пришло время включить репозиторий OpenVPN 3 Copr.
# yum copr enable dsommers/openvpn3
И тогда клиент OpenVPN 3 Linux может быть установлен
# yum install openvpn3-client
Как пользоваться новым OpenVPN 3 в Linux
С установленным пакетом OpenVPN 3, все должно быть готово к использованию. По умолчанию любая учетная запись пользователя в системе должна иметь возможность запускать VPN-туннели.
Использование openvpn2
Для пользователей, знакомых с классической командной строкой OpenVPN 2.x, openvpn2front-end стремится быть довольно близким к старому поведению.
$ openvpn2 --config ${MY_CONFIGURATION_FILE} --verb 6
Замените ${MY_CONFIGURATION_FILE} конфигурационным файлом OpenVPN, который вы хотите использовать. Если эта конфигурация включает эту —daemon опцию, сеанс VPN будет запущен в фоновом режиме, и пользователю снова будет предоставлена командная строка. Для дальнейшего управления этим сеансом VPN openvpn3 session-manage необходимо использовать интерфейс командной строки. Без —daemon этого консоль будет заполнена лог-данными от VPN-сеанса, а сам сеанс можно отключить с помощью простого нажатия CTRL-C в терминале.
Дополнительные сведения:
$ openvpn2 --help
$ man openvpn2
Использование openvpn3
Для более продвинутого использования OpenVPN 3 командная строка предлагает гораздо больше возможностей. Профили конфигурации в OpenVPN 3 для Linux управляются менеджером конфигурации до запуска сеанса VPN через Диспетчер сеансов . openvpn3Утилита предоставляет доступ к функциям, которые предоставляют эти службы диспетчера.
Запуск профиля конфигурации
Означает, что файл конфигурации анализируется, загружается и удаляется из управления конфигурацией, как только сеанс VPN был запущен. Файл конфигурации не доступен для повторного использования после этого подхода. Это достигается непосредственно командой openvpn3 session-start.
$ openvpn3 session-start --config ${MY_CONFIGURATION_FILE}
Импорт файла конфигурации для повторного использования и запуск сеанса VPN
При таком подходе импортированный конфигурационный файл можно использовать несколько раз, и доступ к самому конфигурационному файлу не требуется для запуска VPN-туннелей. По умолчанию импортированные профили конфигурации доступны только тому пользователю, который импортировал файл конфигурации. Но OpenVPN 3 также предоставляет функцию списка контроля доступа через openvpn3 config-acl для предоставления доступа определенным или всем пользователям системы.
$ openvpn3 config-import --config ${MY_CONFIGURATION_FILE}
Это загружает профиль конфигурации и сохраняет его только в памяти. Это означает, что при перезагрузке системы профиль конфигурации не сохраняется. Если добавлен аргумент —persistent в командную строку выше, профиль конфигурации будет сохранен на диске в каталоге, доступном только openvpn пользователю. Всякий раз, когда запускается Configuration Manager, файлы конфигурации, импортированные вместе с —persistent, также автоматически загружаются.
Чтобы вывести список всех доступных профилей конфигурации, выполните следующую команду:
$ openvpn3 configs-list
Файл конфигурации обычно содержит общие параметры для подключения к определенному серверу, независимо от самого устройства. OpenVPN 3 для Linux также поддерживает установку более специфичных для хоста параметров в профиле конфигурации. Это обрабатывается через интерфейс openvpn3 config-manage. Любые настройки здесь также будут сохранены при загрузке, если профиль конфигурации был импортирован с —persistent аргументом.
Запуск нового сеанса VPN из импортированного профиля конфигурации
Когда профиль конфигурации доступен через openvpn3 configs-list, его можно легко запустить с помощью openvpn3 session-start и имени профиля конфигурации (обычно это имя файла, используемое при импорте)
$ openvpn3 session-start --config ${CONFIGURATION_PROFILE_NAME}
или же можно использовать путь D-Bus к профилю конфигурации:
$ openvpn3 session-start --config-path /net/openvpn/v3/configuration/.........
В любом из этих случаев он обязательно должен иметь доступ к профилю конфигурации на диске. Пока профили конфигурации доступны через openvpn3 configs-list
него , все необходимое для запуска сеанса VPN должно присутствовать.
Управление запущенным сеансом VPN
После того, как сеанс VPN был запущен, это должно быть видно с помощью команды:
$ openvpn3 sessions-list
В команде openvpn3 session-manage есть много вещей, которые могут быть сделаны, но чаще всего это —disconnect или —restart ,они наиболее часто используются.
$ openvpn3 session-manage --config ${CONFIGURATION_PROFILE_NAME} --restart
Это отключает и повторно подключает к серверу снова, повторно устанавливая соединение. ${CONFIGURATION_PROFILE_NAME} — это имя конфигурации, как показано в openvpn3 sessions-list. Также можно использовать путь D-Bus к сеансу:
$ openvpn3 session-manage --session-path /net/openvpn/v3/sessions/..... --disconnect
Приведенная выше команда отключит запущенный сеанс. Как только эта операция будет завершена, она будет удалена из openvpn3 sessions-list.
Кроме того, можно получить статистику туннелей в реальном времени из запущенных сеансов:
$ openvpn3 session-stats --config ${CONFIGURATION_PROFILE_NAME}
$ openvpn3 session-stats --session-path /net/openvpn/v3/sessions/.....
А чтобы получить события журнала в реальном времени по мере их возникновения, выполните приведенную ниже команду:
$ openvpn3 log --config ${CONFIGURATION_PROFILE_NAME}
Там может быть мало информации, так как журнал не предоставляет никаких событий из прошлого. Если выполнить команду openvpn3 session-manage —restart с другого терминала, то события журнала начнут появляться. Возможно, вы захотите повысить уровень журнала, делайте это командой —log-level 6. Допустимые уровни журнала: от 0 до 6, где 6 — самый подробный.