Как автоматически подключить OpenVPN при загрузке с использованием openvpn3-autoload?

Вопрос или проблема

Я пытаюсь создать решение OpenVPN на своем виртуальном сервере Ubuntu 20.04. Я нашел, что есть два клиента, которые могут подключаться к серверу OpenVPN (работающему в pfSense): один – network-manager-gnome, а другой – openvpn3.

Для network-manager-gnome я могу импортировать файл .ovpn, но не могу подключиться к серверу OpenVPN с его помощью. Затем я попробовал openvpn3, который требует командной строки для работы, и он смог подключиться к серверу OpenVPN. Я также обнаружил, что openvpn3-autoload можно использовать для подключения к серверу OpenVPN одной командой.

Однако я хочу создать автоматическое решение, чтобы рабочий стол мог подключаться к серверу OpenVPN при запуске без каких-либо ручных действий. Я хотел бы узнать, есть ли решение для этой задачи.

Спасибо.

Нашел решение.

Хотя я прочитал и следовал руководству (https://openvpn.net/openvpn-3-linux-and-auth-user-pass/), я забыл выполнить systemctl daemon-reload. Без этой команды systemd не знает, что существует новый файл службы.

Сначала нам нужно следовать руководству, чтобы создать директорию, скопировать файлы client.ovpn и создать файлы openvpn_profile.autoload для службы openvpn3-autoload.

Не забудьте изменить права доступа:

chmod 600 $HOME/.openvpn3/autoload/openvpn_profile.ovpn && chmod 600 $HOME/.openvpn3/autoload/openvpn_profile.autoload

Затем скопируйте файл службы:

sudo cp /usr/lib/systemd/system/openvpn3-autoload.service /usr/lib/systemd/system/openvpn3-autoload.service

И отредактируйте файл службы, чтобы добавить пользователя и изменить директорию конфигурации по умолчанию:

sudo vim /usr/lib/systemd/system/openvpn3-autoload.service
[Unit]
Description=OpenVPN 3 Linux configuration auto loader and starter
After=network.target dbus.service

[Service]
Type=oneshot
User=myusername
ExecStart=/usr/sbin/openvpn3-autoload --directory /home/myusername/.openvpn3/autoload
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

Перезагрузите демон, включите и запустите службу:

systemctl daemon-reload
systemctl enable openvpn3-autoload.service
systemctl start openvpn3-autoload.service

Перезагрузите виртуальную машину и подтвердите результат.

Существует более простой способ сделать это, и он изложен в учебном пособии “Учебник: Узнайте, как установить и управлять клиентом OpenVPN 3“.

После установки openvpn3 создание службы для автоматического подключения к вашей VPN при загрузке выглядит следующим образом:

1. Импортируйте конфигурационный файл

openvpn3 config-import --config /file/to/profile.ovpn --name CustomNameForVPN --persistent

Это импортирует ваш .opvn конфигурационный файл в менеджер конфигураций openvpn3, сохраняя его под пользовательским именем CustomNameForVPN. Чтобы гарантировать, что конфигурационный файл сохраняется после перезагрузки, используйте флаг --persistent.

2. Предоставьте пользователю root доступ к этому конфигурационному файлу

openvpn3 config-acl --show --lock-down true --grant root --config CustomNameForVPN

Цитируя из учебного пособия, указанного выше:

Это дает пользователю root доступ к импортированному профилю конфигурации CloudConnexa. Аргумент –lock-down true является необязательным, но ограничивает пользователя root в извлечении содержимого профиля конфигурации с помощью команд openvpn3 (или через D-Bus API).

Добавив –transfer-owner-session true к вышеуказанной команде, текущий пользователь, выполняющий эту команду (владелец профиля), также становится «владельцем VPN-сессии», если root является пользователем, который начинает VPN-сессию (обычно через systemd [email protected]).

3. Включите службу

sudo systemctl enable --now [email protected]

Это включает службу, чтобы она запускалась при загрузке, а флаг --now указывает на то, что она должна запуститься немедленно после выполнения этой команды.


Управление сессией

Чтобы проверить статус службы:

systemctl status [email protected]

Чтобы перечислить активные VPN-сессии:

openvpn3 sessions-list

Чтобы перечислить конфигурации:

openvpn3 configs-list

Чтобы перечислить статистику для VPN-сессии:

openvpn3 session-stats --config CustomNameForVPN


Одно последнее замечание: если вы не включили --transfer-owner-session, то вышеуказанные команды придется выполнять с sudo. По данным учебного пособия:

Если ACL профиля конфигурации имеет включенный –transfer-owner-session, конечный пользователь также сможет полностью управлять VPN-сессией без необходимости в привилегиях root.

Ответ или решение

Для автоматического подключения OpenVPN при запуске системы на Ubuntu 20.04 с использованием openvpn3-autoload, выполните следующие шаги:

Шаг 1: Установка openvpn3

Если openvpn3 ещё не установлен, выполните установку:

sudo apt update
sudo apt install openvpn3

Шаг 2: Импорт конфигурационного файла

Импортируйте ваш .ovpn файл в OpenVPN 3 и задайте ему имя:

openvpn3 config-import --config /путь/к/вашему/profile.ovpn --name CustomNameForVPN --persistent

Флаг --persistent позволит сохранить конфигурацию после перезагрузки.

Шаг 3: Настройка прав доступа

Чтобы обеспечить доступ к конфигурационному файлу для пользователя root, выполните следующую команду:

openvpn3 config-acl --show --lock-down true --grant root --config CustomNameForVPN

Флаг --lock-down true не обязателен, но его стоит использовать, если вы хотите ограничить доступ к содержимому профиля.

Шаг 4: Создание файла службы systemd

Создайте новый системный файл службы для авто-загрузки OpenVPN. Откройте текстовый редактор и создайте файл:

sudo vim /etc/systemd/system/openvpn3-autoload.service

Заполните его следующим содержимым, заменив myusername на ваше имя пользователя:

[Unit]
Description=OpenVPN 3 Linux auto-loader
After=network.target

[Service]
Type=oneshot
User=myusername
ExecStart=/usr/sbin/openvpn3-autoload
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

Шаг 5: Перезагрузка демона systemd

После создания или изменения системного файла службы, обновите системный демон:

sudo systemctl daemon-reload

Шаг 6: Включение и запуск службы

Теперь включите службу, чтобы она запускалась автоматически при старте системы:

sudo systemctl enable --now openvpn3-autoload.service

Шаг 7: Проверка работы

Перезагрузите вашу виртуальную машину и проверьте статус службы:

sudo systemctl status openvpn3-autoload.service

Также вы можете посмотреть активные сессии VPN с помощью:

openvpn3 sessions-list

Заключение

С помощью описанных шагов вы успешно настроили автоматическое подключение к OpenVPN при запуске системы на Ubuntu 20.04 с использованием openvpn3-autoload. Не забудьте проверить, работает ли соединение VPN после перезагрузки и при необходимости выполните отладку, используя команды openvpn3 для просмотра статуса и конфигурации.

Оцените материал
Добавить комментарий

Капча загружается...