サーバーから A の代わりにローカル コンピューター B に着信パケットを再ルーティングします。

サーバーから A の代わりにローカル コンピューター B に着信パケットを再ルーティングします。

サーバーからローカルコンピュータBに着信TCPパケットをリダイレクトしようとしています。

ローカルコンピュータA()のアプリケーションクライアントは192.168.0.7サーバー(1.2.3.4)に接続されているため、サーバーからのすべてのTCPパケットはポート38xxを介してローカルコンピュータAに到達します。

  1. 192.168.0.20ローカルマシンAの代わりにサーバーからローカルマシンB()にパケットをリダイレクトする方法は?
  2. その後、ローカルコンピュータBからサーバーにパケットを再送信しますが、ローカルコンピュータAから来たように見えるようにするにはどうすればよいですか?

私は以下を試しました:

  • ファイルを編集してポート転送を有効にしますsysctl.conf
  • IPテーブルコマンドを実行します。
iptables -t nat -A PREROUTING -d 192.168.0.7 -p tcp -m tcp --dport 38xx -j DNAT --to-destination 192.168.0.120:38xx
iptables -t nat -A POSTROUTING -j MASQUERADE

しかし、Wiresharkを使用してトラフィックを分析しても何も起こらないようです。

とても感謝しています。

答え1

転送トラフィック:[client] --> [proxy] --> [server-A] --> [server-B]

往復トランスファー:[server-B] --> [server-A] --> [proxy] --> [client]

トラフィックが同じである必要がある場合は、server-Aフォワーディングトラフィックと迷彩トラフィックを設定する必要があります。server-Aからトラフィックが受信されるとproxyに転送されますserver-B

server-BIPはですが、次のように192.168.0.20仮定しますserver-A

eth0 is facing the proxy
eth1 is facing server-B
TCP 3800 is listening on server-A and server-B respectively

で、server-A次の操作を行います。

$ sudo echo 1 > /proc/sys/net/ipv4/ip_forward
$ sudo iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 3800 -j DNAT --to-destination 192.168.0.20:3800
$ sudo iptables -t nat -A POSTROUTING -j MASQUERADE

関連情報