web-dev-qa-db-ja.com

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

説明されている同じ問題 VPNクライアントを使用したポート転送 に遭遇しましたが、失敗しました。

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

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

私の現在のセットアップは:

enter image description here

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

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

3
kym8886

この問題は、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
kym8886

SNATがDNATの異なるポート番号と一致し、図がこのように機能するため、OpenVPNクライアントがOpenVPNサーバー経由でインターネットに戻るルーターとして機能する場合にのみ機能します。

32400を8081に置き換える必要があります。

0
Timothy Baldwin