network-manager-openvpn
не предоставляет такой функциональности, вы должны использовать openvpn
непосредственно.
Проходить --script-security 2 --up /path/to/your/script
к нему при подключении. Если вы используете конфигурационный файл, расположенный по адресу /etc/openvpn/
, добавьте следующие строки в свой конфигурационный файл:
script-security 2# run /etc/openvpn/up.sh when the connection is set upup /etc/openvpn/up.sh
Из Справочная страница OpenVPN:
--сценарий-уровень безопасности [метод] Эта директива обеспечивает контроль на уровне политики над использованием OpenVPN внешних программ и скриптов. Значения более низкого уровня являются более ограничительными, более высокие значения являются более разрешающими. Настройки для уровня: 0 - Строго запрещен вызов внешних программ. 1 -- (по умолчанию) Вызывайте только встроенные исполняемые файлы, такие как ifconfig, ip, route или netsh. 2 - Разрешить вызов встроенных исполняемых файлов и пользовательских скриптов. 3 - Разрешить передачу паролей скриптам через переменные среды (потенциально небезопасно). --команда командной оболочки up cmd для запуска после успешного открытия устройства TUN /TAP (изменение UID перед пользователем). Сценарий up полезен для указания команд маршрутизации, которые направляют IP-трафик, предназначенный для частных подсетей, которые существуют на другом конце VPN-соединения, в туннель. Порядок выполнения сценария - up Выполняется после привязки сокета TCP/UDP и открытия TUN/TAP. --down Выполняется после закрытия TCP/UDP и TUN/TAP.
Есть еще несколько событий для выполнения скрипта, их можно найти на страница руководства.
Создавать /etc/openvpn/up.sh
, и дайте ему разрешения на выполнение (скажем, 755 или 700). Пример содержимого для добавления адреса IPv6 и маршрута (показан в образовательных целях, не копируйте его напрямую):
#!/bin/sh# add an IPv6 address to device $dev (environment variable)ip -6 addr add 2001:db8::1:2/112 dev $dev# and the IPv6 route for this net using gateway 2001:db8::1ip -6 route add 2001:db8::1:0/112 via 2001:db8::1 dev $dev
Обратите внимание, что это up
скрипт запускается от имени пользователя root. Если вы не указали User
и Group
настройка, OpenVPN будет запускать скрипты, такие как down
как корень тоже.