VPN 네트워크가 아닌 tun0 인터페이스의 OpenVPN 공용 IP

VPN 네트워크가 아닌 tun0 인터페이스의 OpenVPN 공용 IP

VPN 서버의 공용 IP를 사용하여 openvpn 클라이언트 뒤에 있는 로컬 네트워크의 장치에 액세스할 수 없습니다.

약간의 정보:

OpenVPN 서버(openVZ, Debian7)

Opevpn 클라이언트(라즈베리 파이 2 raspbian jessie).

다른 VPN 클라이언트를 사용하여 다른 클라이언트 뒤의 로컬 네트워크(클라이언트 1 VPN <> 서버 VPN <> 클라이언트 2 VPN)에 액세스하면 Everythink가 제대로 작동합니다. 클라이언트 2에서 VPN 뒤의 클라이언트 1의 로컬 네트워크에 액세스할 수 있습니다. 서버 cfg에서 iroute 등을 설정했습니다.

문제는 VPN 서버의 공인 IP를 사용하여 클라이언트 1 뒤의 로컬 네트워크에 있는 IP 카메라에 접속하려고 할 때입니다.

클라이언트 측에서:

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

서버에 설정:

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은 VPN의 Raspberry Pi 2 IP 주소입니다.

tcpdump를 사용하여 왜 작동하지 않는지 확인했습니다.

그 이유는 VPN 서버에서 들어오는 패킷의 소스 주소가 공인 IP를 갖고 있기 때문입니다. VPN 클라이언트가 공용 IP 소스 주소로 이 패킷을 수신하면 tun0 대신 WAN 인터페이스를 사용하여 자동으로 응답합니다.

누구든지 나를 도와줄 수 있나요? 서버의 iptables에 무엇을 설정해야 합니까?

추신: 서버의 방화벽에는 iptables 규칙이 하나만 있습니다.

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

관련 정보