2009-03-25 9 views
1

telnetトラフィックをプロキシするためのツールを作成し、レコーディングの目的でインバウンド/アウトバウンドストリームをフォークします(これはレガシーシステムをテストするためのテストツールです)。しかし、私たちはぶつかり合った。従来のシステムでは、特定のケースではクライアントのIPアドレスを知る必要がありますが、プロキシを使用する場合、クライアントのアドレスはすべてプロキシのアドレスに変更されます。レガシーシステムがゲートウェイとして使用するマシンを制御するので、私はiptablesや他のパケットマングリング技術を使ってこれを欺く方法がないのだろうかと思います。だから、他の言葉で、プロキシなしで我々は持っている:プロキシと透過的にtelnetトラフィックをプロキシしていますか?

[CLIENT A - 172.16.2.2]------| 
[CLIENT B - 172.16.2.3]------|------------[SERVER sees CLIENT A as 172.16.2.2, B as 2.3, so on] 
[CLIENT C - 172.16.2.4]------| 

我々が得る:

[CLIENT A - 172.16.2.2]---| 
[CLIENT B - 172.16.2.3]---|---[PROXY 172.16.2.5]--[SERVER sees all clients as 172.16.2.5] 
[CLIENT C - 172.16.2.4]---| 

我々は必要なもの:

[CLIENT A - 172.16.2.2]---| 
[CLIENT B - 172.16.2.3]---|---[PROXY 172.16.2.5]--[SERVER sees CLIENT A as 172.16.2.2, so on] 
[CLIENT C - 172.16.2.4]---| 

を達成するためにすべての可能な方法はありますこの?

ありがとうございます!

答えて

1

この質問はプログラミング関連ではありません。

しかし、私はLinuxカーネルのTPROXY機能を使って実行することができます。TPROXYはLinuxとは別に配布されていると思います。

TPROXYを使用すると、透過的にトラフィックをプロキシして、クライアントとサーバに独自の元のIPアドレスを表示させることができます。他のやり方もできます。

1

プロキシを使用する代わりに、ネットワークカードをプロミスキャスモードにして、tcpdumpなどを使って何が起こっているのかを把握できますか?

+0

これは実際には良いアイデアですが、再組み立ておよびシーケンシングのタスクビットが困難なようです。まともなtcp reassemblyユーティリティが存在するかどうかを調べます。 – jbwiv

+0

tcpdumpにはかなり洗練されたフィルタリング機構があります。それらを使用して、1つのポート上の1つのホストから1つのクライアントへのトラフィックだけをフィルタリングすることができます。 –

+0

ええと、chaosreaderというプロジェクトが見つかりました。箱の外で考えてくれてありがとう! – jbwiv

0

NATingについて:サーバーが本当に正確なIPを見たり、クライアントの固有のIPだけを見たりする必要がありますか?そうでない場合、どのようにやって:

172.16.88.2      --- 172.16.2.2 
172.16.88.3 --- PROXY  --- 172.16.2.3 --- SERVER 
172.16.88.4  w/ 3 IPs  --- 172.16.2.4 
+0

残念ながら...元のipsを見る必要があります。あなたの答えをありがとう。 – jbwiv

関連する問題