Não consigo acessar dispositivos na rede local por trás do cliente openvpn usando o IP público do servidor VPN.
Um pouco de informação:
Servidor OpenVPN (openVZ, Debian7)
Cliente Opevpn (raspberry pi 2 raspbian jessie).
Everythink funciona bem, quando eu uso outro cliente vpn para acessar a rede local por trás de outro cliente (VPN do cliente VPN do servidor VPN do cliente 1). Do cliente 2 eu tenho acesso à rede local por trás do cliente 1 VPN. No servidor cfg eu configurei iroute etc.
O problema é quando eu tento acessar, por exemplo, a câmera ip na rede local atrás do cliente 1 usando o IP público do servidor VPN.
No lado do cliente:
iptables -I FORWARD -i tun0 -p tcp -d 192.168.2.2 --dport 8080 -j ACCEPT
iptables -t nat -I PREROUTING -i tun0 -p tcp --dport 8080 -j DNAT --to-destination 192.168.2.2:8080
No conjunto de servidores:
iptables -I FORWARD -i venet0 -p tcp -d 10.8.0.6 --dport 8080 -j ACCEPT
iptables -t nat -I PREROUTING -i venet0 -p tcp --dport 8080 -j DNAT --to-destination 10.8.0.6:8080
10.8.0.6 é o endereço ip do raspberry pi 2 na VPN
Eu usei o tcpdump para ver porque não funciona.
O motivo é que os pacotes do servidor VPN têm um IP público no endereço de origem. Quando o cliente vpn recebe esse pacote com o endereço de origem ip público, responde automaticamente usando a interface WAN, não tun0.
Alguém pode me ajudar? O que devo fazer no iptables no servidor?
PS: No firewall no servidor eu tenho apenas uma regra iptables:
-A POSTROUTING -s 10.8.0.0/24 -j SNAT --to-source PUBLICIP
Tags openvpn