OpenVPN - route-up Variáveis de ambiente ausentes ao passar para script

3

Estou mergulhando na glória do OpenVPN e estou tendo um pouco de dificuldade para configurar manualmente as tabelas de roteamento. Estou no Arch Linux.

Eu sei que o OpenVPN atualiza automaticamente as tabelas de roteamento ao se conectar, mas eu quero escrever um script para atualizá-las. Aprendi sobre o argumento “--route-noexec” do OpenVPN para evitar que as atualizações automáticas e o argumento “-route-up” passem informações relevantes via variáveis de ambiente para um script de minha escolha.

Aqui é onde eu tenho problemas. Eu esperaria que variáveis de ambiente fossem passadas para o script, o que acontece, mas parece que estou perdendo algumas. Especialmente aquele que lista o meu endereço IP remoto, (não confiável / trusted_ip eu acredito), o que torna difícil definir iproute.

As variáveis de ambiente que meus scripts recebem são as seguintes:

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

O comando que uso para iniciar minha VPN é o seguinte:

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

E finalmente o script que eu passo para ele é o seguinte:

#!/bin/bash
printenv

Alguém sabe por que estou perdendo as variáveis? Qualquer ajuda seria apreciada!

    
por Nikto 30.08.2014 / 05:40

1 resposta

0

Será que você deve passar também a opção "--config"? por exemplo.

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

E netnsvpn-up algo como:

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 é o espaço do nome.

    
por 01.06.2016 / 12:32