Como não passar pelo túnel openvpn para uma porta específica

1

Após longas horas de escavação e muitas tentativas, ainda não consigo descobrir como não ter tráfego em uma determinada porta que passa pelo túnel openvpn. Abaixo da minha configuração:

(enp0s25)<ovpn server>(tun0) <--> (tun0)<ovpn client>(enp2s0) <--> app connecting on port 10011

O ovpn server está configurado para enviar a configuração da rota para o cliente com push "redirect-gateway def1 bypass-dhcp" para que todo o tráfego seja redirecionado através do túnel que é o que eu quero e está funcionando perfeitamente, exceto que eu quero a porta tcp 10011 não passando o túnel ...

A tabela principal de roteamento do kernel de <ovpn client> é:

0.0.0.0/1 via 192.168.88.9 dev tun0
default via 192.168.0.1 dev enp2s0
128.0.0.0/1 via 192.168.88.9 dev tun0  # not sure why it's there..
192.168.0.0/24 dev enp2s0  proto kernel  scope link  src 192.168.0.29
192.168.88.0/24 via 192.168.88.9 dev tun0
192.168.88.9 dev tun0  proto kernel  scope link  src 192.168.88.10

Aqui está minha última tentativa em <ovpn client> :

  1. Definir uma tabela de roteamento openvpn

    default via 192.168.0.1 dev enp2s0
    192.168.0.0/24 dev enp2s0  proto kernel  scope link  src 192.168.0.29
    
  2. Defina a regra 1000: from all fwmark 0x64 lookup openvpn

  3. Defina as seguintes regras mangle do iptables:

    -A OUTPUT -p tcp -m tcp --sport 10011 -j MARK --set-xmark 0x64/0xffffffff
    -A OUTPUT -p tcp -m tcp --sport 10011 -j LOG --log-prefix "(OUTPUT) fwmark 100: "
    

A idéia (que pode ser ruim) é que as comunicações <ovpn client> --> app connecting on port 10011 não sejam transmitidas através do túnel por causa da entrada da tabela de roteamento 0.0.0.0/1 via 192.168.88.9 dev tun0 , mas use a tabela de roteamento openvpn, que é uma "rede local" muito básica "tabela de roteamento.

Eu uso o mangle OUTPUT porque ele vem logo após o processo enviar os dados na porta 10011 e antes do POSTROUTING, então eu pensei que seria a corrente certa para usar.

Ao iniciar o openvpn em <ovpn client> e tentar conectar na porta 10011, não consigo ver nenhum log do sistema gerado pela regra LOG iptables, enquanto com o openvpn parado, vejo os logs e tudo funciona bem.

Talvez o IP de origem do tráfego de saída para o aplicativo seja o da interface tun0, de modo que o roteamento seja quebrado em algum lugar.

    
por Alex 12.03.2016 / 21:22

0 respostas