como passar o tráfego para a porta 80 não através do openvpn?

1

Existe uma maneira de configurar clientes OpenVPN para rotear o tráfego para a porta HTTP 80 e a porta HTTPS 443 diretamente (ou seja, não através da VPN), mas através da gateway padrão que os clientes possuem. Todo o outro tráfego deve passar pela VPN.

Meu cliente está executando o OpenVPN no Windows e minha configuração atual é assim:

client
dev tun
proto tcp
remote my-server-2 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ../keys/ca.crt
cert ../keys/client1.crt
key ../keys/client1.key
ns-cert-type server
verb 3
route-metric 1
show-net-up
dhcp-renew
dhcp-release
route-delay 0 120
hand-window 180
management localhost 13010
management-hold
management-query-passwords
management-forget-disconnect
management-signal
auth-user-pass
    
por moti 13.05.2012 / 19:51

3 respostas

1

O OpenVPN não é capaz de filtrar tráfego - ele simplesmente envia os pacotes IP que são passados pelo túnel VPN. A funcionalidade que você deseja precisa ser fornecida pelo sistema operacional. O sistema operacional precisa decidir se deseja rotear um pacote usando o OpenVPN ou usando o gateway na rede local. No Linux, um faria isso usando o iptables para marcar certos pacotes, e o iproute2 para selecionar diferentes tabelas de roteamento. Até onde eu sei, isso não pode ser feito no Windows.

    
por 14.05.2012 / 01:34
0

Quando você se conecta à VPN, faz algumas alterações em sua tabela de roteamento para decidir qual tráfego vai para a interface openvpn e qual tráfego é enviado para o gateway local.

Pode ser configurado de duas formas, das quais 2 são as seguintes. (Eu acho que você precisa procurar no google por "Split Tunnel" configurações para mais detalhes).

1) A configuração (padrão) é para o servidor enviar ao cliente uma entrada da tabela de roteamento com o gateway da interface tun como a rota padrão, neste cenário o tráfego all (incluindo a porta 80 e 443) é encaminhado através do túnel openVPN.

2) O que (eu acho) você quer é configurar que, ao conectar o servidor openVPN para enviar apenas uma rota para o tráfego da rede privada para a tabela de roteamento, então todo o resto é enviado para o gateway local. (http, httpd, dns permanece local)

Normalmente, isso envolve a configuração da diretiva push no arquivo server.conf ;

 push "route 10.251.69.0 255.255.255.0"

Há um exemplo para desativar "O tráfego da Internet dos clientes deve ser roteado através da VPN?" no painel de administração da web do openvpn aqui

Você também pode fazer a configuração por cliente, mas de acordo com a postagem do blog vinculada nos comentários , é difícil (impossível ??) desmarcar as rotas enviadas do servidor sem executar algum script bash para envolvê-lo. (Por isso, mais fácil se você puder definir isso da mesma forma para todos os clientes em server.conf ).

    
por 14.05.2012 / 01:52
0

Se o seu cliente OpenVPN estiver no seu gateway de LAN, você pode fazer o seguinte.

Marcar o tráfego HTTP de entrada com iptables

( iptables -t mangle -A PREROUTING -p tcp --dport 80 -j MARK --set-mark 0x80 .

Em seguida, crie uma tabela de roteamento especialmente para tráfego marcado.

echo "80 http" >> /etc/iproute2/rt_tables

ip route add default 11.22.33.44 dev ethX table http

Por fim, adicione a regra para rotear o tráfego marcado de acordo com a nova tabela.

ip rule add fwmark 0x80 lookup 80

Você pode aprender mais sobre o roteamento de políticas do Linux no Howto de Roteamento avançado e controle de tráfego do Linux - link

    
por 10.03.2013 / 14:18