OpenVPN - SSL Bypass VPN em um PORT específico

0

Eu estou olhando para ter uma VPN habilitada em todas as portas, exceto a porta de entrada 80 para o meu servidor Apache. Meu computador está conectado ao openvpn no Ubuntu para um roteador que não está conectado a um vpn. É uma conexão vpn por dispositivo.

Primeiro, verifiquei para desativar a filtragem de caminho inverso. Eu chequei todo o rp_filter com isso

sysctl -a | grep \.rp_filter

e desativado:

sudo sysctl -w net.ipv4.conf.eth0.rp_filter=0
sudo sysctl -w net.ipv4.conf.tun0.rp_filter=0
etc..

Eu olhei para a tabela principal de roteamento IP quando a VPN está desconectada:

ip route

Volte-me isto:

default via 192.168.2.1 dev eth0  proto static
192.168.2.0/24 dev eth0  proto kernel  scope link src 192.168.2.20  metric 1

Então, para fins de teste, usei a porta de saída 80 e 443 em combinação com um whatismyip.com ou algo assim.

sudo iptables -t mangle -A PREROUTING -p tcp --dport 80 -j MARK --set-mark 2
sudo iptables -t mangle -A PREROUTING -p tcp --dport 443 -j MARK --set-mark 2
sudo ip rule add fwmark 2 table 2
ip route flush cache

E, em seguida, criou uma tabela com a mesma conexão que parece quando a VPN foi desconectada

sudo ip route add 192.168.2.0/24 table 2 dev eth0  proto kernel  scope link  src 192.168.2.20  metric 1
sudo ip route add default table 2 via 192.168.2.1 dev eth0 proto static

E nenhum resultado até agora :(. Eu estou usando uma VPN criptografada sobre SSL. Ele nunca bybass a VPN.

Alguém poderia me ajudar nisso? Parece que minha filtragem de porta não está funcionando e não está entrando na minha tabela de consulta 2. Se a minha tabela 2 estiver vazia, tudo ainda funcionará na porta 80.

Existe um melhor para depurar os pacotes PREROUTING e verificar se eles estão realmente marcados?

EDIT: Depois de mais pesquisas parece com configuração CONFIG_IP_ROUTE_FWMARK no kernel não está disponível no Ubuntu que é necessário: (...

    
por TheMedServ 14.01.2015 / 06:34

1 resposta

0

Eu finalmente encontrei! Estava oculto nos parâmetros do kernel.

Os pacotes de marcação simplesmente não estavam funcionando, mas com uma nova opção de Kernel no kernel 3.16+, faça: sysctl -w net.ipv4.tcp_fwmark_accept = 1

link

Obrigado!

    
por TheMedServ 20.01.2015 / 07:16