
私のシナリオは次のとおりです。
設定
3つの機械があります:
A
:インターネットで:IP(a.a.a.a
)があり、ポートがpa
開いています。
B
:私のサーバー/ゲートウェイ:IP(b.b.b.b
)があり、ポートがpb
開いています。
C
:インターネットで:IP(c.c.c.c
)があり、ポートがpc
開いています。
制限
マシンの所有者はポートを介してA
サービスを提供し、pa
そのサービスはポートを介してマシンから接続する必要があります。問題は、マシンの所有者が自分のサーバー、つまりマシンのポートへの直接接続のみを許可できることです。C
pc
A
B
pb
気づく、A
そしてC
インターネットでしたがって、実際にはインターネット上の2つのシステム間でゲートウェイとして機能する必要があります(私が見つけたほとんどのファイアウォール文書はゲートウェイの役割について説明しています)。インターネットとローカル間ネットワーク)。
必要
C
私の使命は、エンドからのトラフィックとエンドからのトラフィックがある方法でサーバーを介してシステムにサービスを提供することを確認することです。A
B
A:pa
C:pc
C:pc
A:pa
それでは、iptables
他のLinux / Unixユーティリティを使用するなど、どのようにこれを達成できますか?可能ですか?
仮想ソリューション:
心の中に浮かんだアイデアは次のとおりです。しかし、それが正当なのか正当なのかはわかりません。
iptables -t nat -A PREROUTING -p tcp --source a.a.a.a --source-port pa \
--destination b.b.b.b --destination-port pb -j DNAT --to-destination c.c.c.c:pc
そして
iptables -t nat -A PREROUTING -p tcp --source c.c.c.c --source-port pc \
--destination b.b.b.b --destination-port pb -j DNAT --to-destination a.a.a.a:pa