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?