OpenVPN - маршрут Недостающие переменные среды при передаче сценарию

Я погружаюсь в славу OpenVPN, и я испытываю немного затруднений, вручную настраивающих таблицы маршрутизации. Я нахожусь на Дуге Linux.

Я знаю, что OpenVPN автоматически обновляет таблицы маршрутизации при соединении, но я хочу записать сценарий для обновления их сам. Я узнал о OpenVPN “- маршрут-noexec” аргумент для предотвращения автоматических обновлений и “- маршрут” аргумент для передачи релевантной информации через переменные среды к сценарию моего выбора.

Это - то, где я сталкиваюсь с проблемой. Я ожидал бы, что переменные среды будут переданы сценарию, который происходит, но похоже, что я скучаю по некоторым. Особенно тот, который перечисляет мой удаленный IP-адрес, (untrusted/trusted_ip я верю), который мешает устанавливать iproute.

Переменные среды, которые получают мои сценарии, следующие:

dev_type=tun
proto_1=udp
tun_mtu=1500
script_type=route-up
verb=1
local_port_1=1194
dev=tun0
remote_port_1=1194
PWD=/tmp
daemon=0
SHLVL=1
script_context=init
daemon_start_time=1409367799
daemon_pid=927
daemon_log_redirect=0
link_mtu=1500
_=/usr/bin/printenv

Команда, которую я использую для запуска моей VPN, следующие:

sudo openvpn --dev tun --route-noexec --script-security 2 --route-up /tmp/print.sh

И наконец сценарий я передаю его чтениям следующим образом:

#!/bin/bash
printenv

Кто-либо знает, почему я пропускаю переменные? Любая справка ценилась бы!

3
задан 30 August 2014 в 06:40
1 ответ

Могло ли быть так, что вы также должны передать опцию "--config"? например

openvpn --config /etc/openvpn/vpn.conf --script-security 2 --ifconfig-noexec --route-noexec --up ./netnsvpn-up --route-up ./netnsvpn-up 

И netnsvpn-up что-то вроде:

case $script_type in
        up)
                ip netns add vpntun0
                ip netns exec vpntun0 ip link set dev lo up
                ip link set dev "$1" up netns vpntun0 mtu "$2"
env
                ip netns exec vpntun0 ip addr add dev "$1" "${ifconfig_local}"/"${ifconfig_netmask:-30}" 
                ;;
        route-up)
                ip netns exec vpntun0 ip route add default via "$route_vpn_gateway"
                ;;
        down)
                ip netns delete vpntun0
                ;;
esac

vpntun0 - это пространство имён.

.
0
ответ дан 3 December 2019 в 08:12

Теги

Похожие вопросы