例のシナリオ

例のシナリオ

私は一日中この問題に閉じ込められていて、いくつかのiptablesの専門家がこれを読んで私を助けることができることを祈っています。

すべてのDockerコンテナからのアウトバウンドトラフィックがソックス5プロキシを通過するように強制したいと思います。

これは私が得た最も近いものです:

iptables -t nat -N REDSOCKS
iptables -t nat -A REDSOCKS -s 172.20.0.0/16 -d 0.0.0.0/8 -j RETURN
iptables -t nat -A REDSOCKS -s 172.20.0.0/16 -d 10.0.0.0/8 -j RETURN
iptables -t nat -A REDSOCKS -s 172.20.0.0/16 -d 127.0.0.0/8 -j RETURN
iptables -t nat -A REDSOCKS -s 172.20.0.0/16 -d 169.254.0.0/16 -j RETURN
iptables -t nat -A REDSOCKS -s 172.20.0.0/16 -d 172.16.0.0/12 -j RETURN
iptables -t nat -A REDSOCKS -s 172.20.0.0/16 -d 192.168.0.0/16 -j RETURN
iptables -t nat -A REDSOCKS -s 172.20.0.0/16 -d 224.0.0.0/4 -j RETURN
iptables -t nat -A REDSOCKS -s 172.20.0.0/16 -d 240.0.0.0/4 -j RETURN

iptables -t nat -A REDSOCKS -s 172.20.0.0/16 -p tcp -j DNAT --to-destination 172.17.0.1:12345
iptables -t nat -A OUTPUT -s 172.20.0.0/16 -j REDSOCKS
iptables -t nat -A PREROUTING -s 172.20.0.0/16 -j REDSOCKS

ほぼ完全に動作しますが、sock5プロキシは元のIPアドレスを認識しません。

リモートアドレスは常に「127.0.0.1」です。

元のIPアドレスを維持する方法はありますか?

例のシナリオ

  1. 上記のiptablesルールを私のDockerホストに適用しました。
  2. アドレスがあるドッカーコンテナがあります。172.20.0.2
  3. そのコンテナ内でexample.comをカーリングしました。
  4. 172.17.0.1:12345(Dockerホスト)に転送されるトラフィック
  5. 実行中のサーバーは、12345リモートIPアドレスを「127.0.0.1」とマークします。
  6. リモートIPアドレスを次のように表示したいと思います。172.20.0.2

とにかく、この問題を解決するのに役立つ人に感謝します。

ベストアンサー1

ネットワークの観点から出発地IPと目的地IPが同じ場合、セキュリティ上の問題が発生する可能性があります。地上攻撃

おすすめ記事