Problema SNAT no iptables

2

Estou tentando redirecionar o tráfego de dispositivos específicos da minha casa para o openvpn. Para isso, criei um túnel OpenVPN entre o roteador wifi da minha casa e o meu servidor.

Aqui está minha configuração:

Wifi router's outgoing interface IP: 192.168.1.102
Wifi router's openvpn tun0: 10.8.0.2
Server's openvpn tun0: 10.8.0.1

My PC                   WiFi                                          Server
                              ,- 10.8.0.2(tun0)    10.8.0.1(tun0) --.
                             |                                      |  _
 __  _                       '                 .-,(   ),-.          ' |-|
[__]|=|    wireless     ___|_      VPN      .-(           )-.   VPN   |=|
/::/|_|  <- - - - - >  [__...]  < - - - >  (    internet     ) < - >  |=|
                          .                 '-(          ).-'         "^"
                          |                    '-.(  ).-'
                          '-- 192.168.1.102

Configuração do iptable do servidor:

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A FORWARD -i eth0 -o tun0 -m state --state RELATED, ESTABLISHED -j ACCEPT
iptables -A FORWARD -i tun0 -o eth2 -j ACCEPT

Configuração do roteador Wifi (com uma nova tabela de roteamento openvpn-route):

ip route add default via 10.8.0.1 dev tun0 table openvpn-route
ip rule add fwmark 0x1 table openvpn-route
iptables -t mangle -A PREROUTING -m mac --mac-source aa:aa:aa:aa:aa:aa -j MARK --set-mark 1
iptables -A POSTROUTING -t nat -o tun0 -p tcp --dport 80 -j SNAT --to 10.8.0.2

Agora, sempre que acesso sites do meu laptop, vejo o tráfego indo para o dispositivo tun do roteador wifi e, a partir daí, para o servidor. No entanto, o endereço IP SRC do tráfego é 192.168.1.102 (IP de interface de saída do roteador wifi). Por causa disso, acho que o servidor ignora esse tráfego.

Quando vejo quantos pacotes correspondem à regra SNATing para alterar o IP do SRC para 10.8.0.2, vejo que contam como zero. Então essa regra não está sendo correspondida por nenhum pacote.

Como posso corrigir isso?

    
por rugmi 10.09.2013 / 23:43

0 respostas