Como posso configurar o openvpn para o tráfego de proxy apenas para processos que se ligam à interface do tun?

5

Estou tentando configurar o openvpn para que apenas o tráfego de determinados processos ultrapasse o vpn, mas esses processos podem se conectar a qualquer lugar.

Eu estou tentando fazer isso com o openvpn não fazendo nenhuma configuração de rota ( --route-noexec ) e tendo aplicações explicitamente conectadas à interface tun (por exemplo: curl --interface tun0 'http://www.ipchicken.com' ), mas connect() parece expirar.

Existe algum outro passo que eu tenho que fazer para fazer a interface tun feliz?

    
por bobpoekert 15.01.2013 / 02:49

2 respostas

1

route-nopull

link

When used with --client or --pull, accept options pushed by server EXCEPT for routes. When used on the client, this option effectively bars the server from adding routes to the client's routing table, however note that this option still allows the server to set the TCP/IP properties of the client's TUN/TAP interface.

Portanto, adicione route-nopull ao seu arquivo de configuração do OpenVPN. Eu escrevi um post sobre como usar um OpenVPN VPN com cURL / PHP .

    
por 27.07.2013 / 01:58
2

Você pode consegui-lo usando uma tabela de roteamento diferente para o pacote vindo da sua interface tun0 .

# ip route add $VPN_NETWORK dev tun0
# ip route add default via $VPN_GATEWAY_IP table 1
# ip rule add iif tun0 table 1

A primeira rota vai para a tabela padrão (tabela 254), a segunda vai para a tabela 2, a terceira linha liga pacotes da interface tun0 para a segunda tabela de roteamento, você pode dar a esta tabela um nome em /etc/iproute2/rt_tables :

# echo '1 vpn' >> /etc/iproute2/rt_tables

Se o seu gateway VPN for 10.8.0.1/16 , você terá que digitar:

# ip route add 10.8.0.0/16 dev tun0
# ip route add default via 10.8.0.1 table vpn
# ip rule add iif tun0 table vpn

Isso é chamado Policy Routing e você deve ter CONFIG_IP_MULTIPLE_TABLE ativado na configuração do seu kernel para que isso funcione.

    
por 18.01.2013 / 02:00