VPN クライアントへのポート転送とクライアントからローカル IP への追加転送

VPN クライアントへのポート転送とクライアントからローカル IP への追加転送

openvpnサーバーに接続されたraspbianオペレーティングシステムを備えたラズベリーパイがあります。 OpenvpnサーバーにはパブリックIPがあり、Ubuntuを実行します。この方法でVPNサーバーでポート転送を有効にすると(XXX.XXX.XXX.XXXがパブリックIP)、VPNサーバーのパブリックIPアドレスを介してRaspberry Piで実行されているWebアプリケーションにアクセスできます。

iptables -t nat -A PREROUTING -d XXX.XXX.XXX.XXX -p tcp --dport 8765 -j DNAT --to-dest 10.8.0.6:8765

しかし、ラズベリーパイと同じLANにあるIPカメラも接続したいと思います。残念ながら、IPカメラでopenvpnクライアントを実行できないため、IPカメラはローカルIP 192.168.1.110のみを持ち、ポート80でリッスンします。パブリックIPのポートをraspberry pi openvpnクライアントに転送してから、ローカルLANのWebカメラにさらに転送できますか?

答え1

Raspberry Piで以下を試してください。

# echo 1 > /proc/sys/net/ipv4/ip_forward
# iptables -t nat -I PREROUTING -p tcp --dport 8088 -j DNAT --to <cameraip>:<camera port>
# iptables -t nat -I POSTROUTING -s <cameraip>/255.255.255.0 -j MASQUERADE

次に、piからアプリケーションにアクセスするのと同じ方法でカメラにアクセスします。ただし、8765の代わりにポート8088を使用してください。頑張ってください。

答え2

コンピュータでIP転送を有効にしない別のソリューションです。

  1. OpenVPN サーバーから Raspberry にポートを転送します。
iptables -t nat -A PREROUTING \ 
   -d XXX.XXX.XXX.XXX -p tcp --dport 8888 \
   -j DNAT --to-dest 10.8.0.6:8888
  1. Raspberryでsocatなどを使用して、着信接続をカメラに転送します。
socat TCP-LISTEN:8888,fork TCP:192.168.1.110:80

これの利点は、副作用がある可能性があるコンピュータでIP転送を有効にする必要がないことです。 (ファイアウォールルールを追加せずに)ローカルコンピュータでIP転送を有効にすると、潜在的にLAN上のコンピュータがOpenVPNサーバーネットワーク上のコンピュータを攻撃する可能性があります(OpenVPNサーバーがそれを許可すると仮定します)。

関連情報