- Создатель Вадим Кузнецов, отредактировано 28.06.24
Общие сведения
Функция быстрого запуска VPN позволяет запускать и останавливать VPN нажатием на соответствующую кнопку на панели быстрого запуска в режиме «Мобильный» ОС СН.
Конфигурационный файл
Настройки быстрого запуска VPN задаются в конфигурационном файле /etc/xdg/vpn-helperrc
.
Отображение кнопки быстрого запуска VPN задается в секции [GENERAL]
параметром Enabled
(по умолчанию false
).
Файлы скриптов запуска, остановки и проверки статуса VPN указываются в секции [SCRIPTS]
:
Start
— скрипт запуска VPN (по умолчанию/usr/lib/astra-mobile/astra-mobile-vpn-start
).Status
— скрипт проверки статуса VPN (по умолчанию/usr/lib/astra-mobile/astra-mobile-vpn-status
). Периодичность проверки статуса задается в секции[GENERAL]
параметромUpdateTimeout
(по умолчанию — 3 секунды).Stop
— скрипт остановки VPN (по умолчанию/usr/lib/astra-mobile/astra-mobile-vpn-stop
).
Выполнение скриптов от учетной записи root
задается параметром AsRoot
. При значении true
запуск выполняется от от учетной записи root
, при значении false
— от имени текущего пользователя.
Скрипты по умолчанию
Скрипт запуска
Скрипт запуска VPN по умолчанию — /usr/lib/astra-mobile/astra-mobile-vpn-start
.
Секция Функции
содержит описания функций, включающих поддерживаемые по умолчанию реализации VPN с нужными параметрами.
Секция Выбор реализации
содержит закомментированные вызовы этих функций.
Скрипт проверки статуса
Скрипт проверки статуса VPN по умолчанию — /usr/lib/astra-mobile/astra-mobile-vpn-status
.
Секция Функции
содержит описания функций, проверяющих статус поддерживаемых по умолчанию реализаций VPN.
Секция Выбор реализации
содержит закомментированные вызовы этих функций.
Скрипт остановки
Скрипт остановки VPN по умолчанию — /usr/lib/astra-mobile/astra-mobile-vpn-stop
.
Секция Функции
содержит описания функций, выключащих поддерживаемые по умолчанию реализации VPN.
Секция Выбор реализации
содержит закомментированные вызовы этих функций.
Порядок настройки быстрого запуска VPN
OpenConnect
- Отредактировать скрипт запуска VPN (
/usr/lib/astra-mobile/astra-mobile-vpn-start
):function main() {
disconnect
# connect_not_mpl
connect_openconnect_impl
# connect_vipnet_impl
# connect_continent_ap_impl
# connect_imitation_impl
return $?
}
- В скрипте запуска VPN (
/usr/lib/astra-mobile/astra-mobile-vpn-start
) указать параметры подключения:local URL="<URL-адрес сервера VPN>"
local GROUP="<Рабочая группа>"
local USERNAME="<Имя пользователя>"
local PASSWORD="<Пароль>"
ВНИМАНИЕ! Хранение логина и пароля в открытом виде небезопасно! Рекомендуется настроить подключение по сертификатам и доработать соответствующим образом скрипт запуска. - Отредактировать скрипт проверки статуса VPN (
/usr/lib/astra-mobile/astra-mobile-vpn-status
):function main() {
# status_not_mpl
status_openconnect_impl
# status_vipnet_impl
# status_continent_ap_impl
# status_imitation_impl
return $?
}
- Отредактировать скрипт остановки VPN (
/usr/lib/astra-mobile/astra-mobile-vpn-stop
):function main() {
# disconnec_not_mpl
disconnect_openconnect_impl
# disconnect_vipnet_impl
# disconnect_continent_ap_impl
# disconnect_imitation_impl
return $?
}
- В конфигурационном файле
/etc/xdg/vpn-helperrc
включить запуск от учетной записиroot
:AsRoot=true
ViPNet
- Отредактировать скрипт запуска VPN (
/usr/lib/astra-mobile/astra-mobile-vpn-start
):function main() {
disconnect
# connect_not_mpl
#
connect_openconnect_impl
connect_vipnet_impl
# connect_continent_ap_impl
# connect_imitation_impl
return $?
}
- Отредактировать скрипт проверки статуса VPN (
/usr/lib/astra-mobile/astra-mobile-vpn-status
):function main() {
# status_not_mpl
#
status_openconnect_impl
status_vipnet_impl
# status_continent_ap_impl
# status_imitation_impl
return $?
}
- Отредактировать скрипт остановки VPN (
/usr/lib/astra-mobile/astra-mobile-vpn-stop
):function main() {
# disconnec_not_mpl
#
disconnect_openconnect_impl
disconnect_vipnet_impl
# disconnect_continent_ap_impl
# disconnect_imitation_impl
return $?
}
- Если предполагается использование одного общего ключа (заданного учетной записи
root
), то включить запуск от учетной записиroot
, указав в конфигурационном файле/etc/xdg/vpn-helperrc
параметрAsRoot=true
. Если предполагается использование индивидуального ключа для каждого пользователя, то указатьAsRoot=false
.
Континент-АП
- Отредактировать скрипт запуска VPN (
/usr/lib/astra-mobile/astra-mobile-vpn-start
):function main() {
disconnect
# connect_not_mpl
#
connect_openconnect_impl
# connect_vipnet_impl
connect_continent_ap_impl
# connect_imitation_impl
return $?
}
- В скрипте запуска VPN (
/usr/lib/astra-mobile/astra-mobile-vpn-start
) указать параметры подключения:local NAME="<Имя пользователя>"
local PASS="<Пароль>"
ВНИМАНИЕ! Хранение логина и пароля в открытом виде небезопасно! Рекомендуется настроить подключение по сертификатам и доработать соответствующим образом скрипт запуска. - Отредактировать скрипт проверки статуса VPN (
/usr/lib/astra-mobile/astra-mobile-vpn-status
):function main() {
# status_not_mpl
#
status_openconnect_impl
# status_vipnet_impl
status_continent_ap_impl
# status_imitation_impl
return $?
}
- Отредактировать скрипт остановки VPN (
/usr/lib/astra-mobile/astra-mobile-vpn-stop
):function main() {
# disconnec_not_mpl
#
disconnect_openconnect_impl
# disconnect_vipnet_impl
disconnect_continent_ap_impl
# disconnect_imitation_impl
return $?
}
Использование других реализаций
Если используется реализация VPN, не поддерживаемая по умолчанию, необходимо либо доработать существующие скрипты, либо написать новые и указать их расположение в конфигурационном файле /etc/xdg/vpn-helperrc
(см. Конфигурационный файл). В качестве шаблонов можно использовать скрипты по умолчанию (см. Скрипты по умолчанию).
Скрипт запуска VPN должен удовлетворять следующим требованиям:
- При успешном запуске VPN программа должна возвращать 0;
- При неуспешном запуске VPN программа должна возвращать 1;
- Запуск VPN не должен блокировать программу, т. е. программа выполняется, запускает VPN и сразу завершается. Процесс VPN должен продолжать существовать.
Скрипт проверки статуса VPN должен удовлетворять следующим требованиям:
- При активном VPN программа должна возвращать 0;
- При неактивном VPN программа должна возвращать 1;
- В случае если программа существует но по какой либо причине не удаётся реализовать функционал, программа должна возвращать -1. В данном случае система будет игнорировать обновление статуса, как будто эта программа не указана в конфигурационном файле. Рекомендуется не использовать данное поведение, а в конфигурационном файле сделать путь к программе пустым (
Status=
).
Скрипт остановки VPN должен удовлетворять следующим требованиям:
- При успешной остановке VPN программа должна возвращать 0;
- При неуспешной остановке VPN программа должна возвращать 1.
Данная статья применима к:
- Astra Linux Special Edition РУСБ.10152-02 (очередное обновление 4.7) с установленным обновлением БЮЛЛЕТЕНЬ № 2024-0416SE47 (оперативное обновление 4.7.5)