OpenVPNクライアントを使用したポート転送

OpenVPNクライアントを使用したポート転送

説明したのと同じ問題が発生しました。ポート転送にVPNクライアントを使用するしかし、成功しませんでした。

OpenVPN Access Serverバージョン2.5とサイト間ルーティングで構成されたクライアントがあります。クライアントとサーバーの両方がプライベートIPアドレスを使用して互いに通信できます。クライアント側には、ポート8081をリッスンするApacheサーバーがあります。

目的は、OpenVPNサーバーのパブリックIPに接続し、ユーザーが背後にあるApacheサーバーにアクセスできるように接続をクライアントに転送することです。

私の現在の設定は次のとおりです

ここに画像の説明を入力してください。

sysctl -w net.ipv4.ip_forward=1

iptables -t nat -A PREROUTING -d 50.xxx.xxx.xxx -p tcp --dport 8081 -j DNAT --to-dest 192.168.2.86:8081

iptables -t nat -A POSTROUTING -d 192.168.2.86 -p tcp --dport 8081 -j SNAT --to-source 10.0.2.42

私が間違っている簡単なことはありますか?ありがとうございます。

答え1

問題はiptablesルールに関連しています。次のルールを追加すると、すべてが期待どおりに機能します。

iptables -t nat -I PREROUTING 1 -d {SERVER_LOCAL_IP_ADDRESS} -p tcp --dport {CLIENT_PORT} -j DNAT --to-dest {CLIENT_LOCAL_IP_ADDRESS}:{CLIENT_PORT}

iptables -t nat -I POSTROUTING 1 -d {CLIENT_LOCAL_IP_ADDRESS} -p tcp --dport {CLIENT_PORT} -j SNAT --to-source {VPN_GATEWAY_IP}

iptables -I FORWARD 1 -d {CLIENT_LOCAL_IP_ADDRESS} -p tcp --dport {CLIENT_PORT} -j ACCEPT

答え2

SNATは他のポート番号DNATとチャートと一致するため、この設定はOpenVPNクライアントがOpenVPNサーバーを介してインターネットにルーターとして機能する場合にのみ機能します。

32400を8081に変更する必要があるようです。

関連情報