Öffentliche OpenVPN-IP auf der Tun0-Schnittstelle anstelle des VPN-Netzwerks

Öffentliche OpenVPN-IP auf der Tun0-Schnittstelle anstelle des VPN-Netzwerks

Ich kann mit der öffentlichen IP des VPN-Servers nicht auf Geräte im lokalen Netzwerk hinter dem OpenVPN-Client zugreifen.

Ein paar Informationen:

OpenVPN-Server (openVZ, Debian7)

Opevpn-Client (Raspberry Pi 2 Raspbian Jessie).

Alles funktioniert einwandfrei, wenn ich einen anderen VPN-Client verwende, um auf das lokale Netzwerk hinter dem anderen Client zuzugreifen (Client 1 VPN <> Server-VPN <> Client 2 VPN). Von Client 2 aus habe ich Zugriff auf das lokale Netzwerk hinter Client 1 VPN. In der Serverkonfiguration stelle ich iroute usw. ein.

Das Problem tritt auf, wenn ich versuche, beispielsweise auf eine IP-Kamera im lokalen Netzwerk hinter Client 1 zuzugreifen, indem ich die öffentliche IP des VPN-Servers verwende.

Legen Sie auf der Clientseite Folgendes fest:

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

Auf dem Server eingestellt:

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 ist die Raspberry Pi 2 IP-Adresse im VPN

Ich habe tcpdump verwendet, um zu sehen, warum es nicht funktioniert.

Der Grund dafür ist, dass die Pakete vom VPN-Server eine öffentliche IP in der Quelladresse haben. Wenn der VPN-Client dieses Paket mit öffentlicher IP-Quelladresse empfängt, antwortet er automatisch über die WAN-Schnittstelle, nicht über tun0.

Kann mir jemand helfen? Was muss ich in iptables auf dem Server einstellen?

PS: In der Firewall auf dem Server habe ich nur eine iptables-Regel:

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

verwandte Informationen