IP público OpenVPN na interface tun0 em vez da rede VPN

IP público OpenVPN na interface tun0 em vez da rede VPN

Não consigo acessar dispositivos na rede local atrás do cliente openvpn usando 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 atrás de outro cliente (cliente 1 VPN <> servidor VPN <> cliente 2 VPN). Do cliente 2 tenho acesso à rede local atrás da VPN do cliente 1. No servidor cfg eu configurei iroute etc.

O problema é quando tento acessar, por exemplo, câmera ip na rede local atrás do cliente 1 usando IP público do servidor VPN.

No lado do cliente, configure:

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

Usei o tcpdump para ver por que não funcionava.

O motivo é que os pacotes do servidor VPN possuem um IP público no endereço de origem. Quando o cliente VPN recebe este pacote com endereço de origem IP público, responde automaticamente usando a interface WAN e não o tun0.

Alguém pode me ajudar? O que devo fazer no iptables no servidor?

PS: No firewall do servidor tenho apenas uma regra de iptables:

-A POSTROUTING -s 10.8.0.0/24 -j SNAT --to-source PUBLICIP

informação relacionada