iptablesで受信パケットのIPアドレスを変更する

iptablesで受信パケットのIPアドレスを変更する

LAN 内にサーバー (S1) があり、ルーターは制御外です。サーバーには openvpn がインストールされており、ssh でログインできます。LAN 上に別のサーバー (S2) があり、S2 のポートをポート S1 に転送したいと考えています。

私が行った場合

sudo iptables -t nat -A PREROUTING  -p tcp -m tcp -d S1 --dport 8001 -j DNAT --to-destination S2:80

次に、S1 の LAN インターフェイスにあるコンピューターから S1:8001 に接続してみます。

IP **my_vpn_ip**.48174 > S2.80: Flags [S], seq 4243753453, win 14600, options [mss 1368,sackOK,TS val 89266048 ecr 0,nop,wscale 7], length 0

S2 には私のコンピュータへのルートがなく、応答を送信できないため、明らかに機能しません。S1 で送信元を偽装してパケットを返送し、NAT を実行することは可能ですか?

S2 は機能が非常に制限された IP カメラであるため、ルートを変更することはできません。

答え1

接続先のホストで SNAT/マスカレードを設定します。これにより、送信元アドレスが NAT ボックスからのプロキシとして表示されるように変更されます。

このような単純なルールで、望みどおりの結果が得られる可能性があります。

iptables -t nat -A POSTROUTING --destination S2 -j MASQ

関連情報