VPN 네트워크 대신 tun0 인터페이스의 OpenVPN 공용 IP

VPN 네트워크 대신 tun0 인터페이스의 OpenVPN 공용 IP

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

약간의 정보:

OpenVPN 서버(openVZ, Debian7)

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

다른 VPN 클라이언트를 사용하여 다른 클라이언트 뒤의 로컬 네트워크에 액세스할 때 Everythink는 잘 작동합니다(클라이언트 1 VPN <> 서버 VPN <> 클라이언트 2 VPN). 클라이언트 2에서는 클라이언트 1 VPN 뒤의 로컬 네트워크에 액세스할 수 있습니다. 서버 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의 라즈베리 파이 2 IP 주소입니다.

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

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

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

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

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

관련 정보