このトラフィックを転送する発信ポートと送信元

このトラフィックを転送する発信ポートと送信元

私はインターネットを検索していくつかの設定を試しましたが、これまでは停滞しているので、私よりもこの問題についてより良い経験を持つ人がいる場合は、助けが必要になります。 :)

プロキシの後に server1 というサーバーがあります。プロキシサーバーには1つのパブリックIPと1つの内部IPがあります。プロキシを介してソースを介してserver1からインターネット上の特定のホスト:ポートに接続したいと思います。 server1のその他のトラフィック(更新など)は、プロキシを介さずにインターネットに直接移動します。

前任者:

  • server1で接続を試みます。http://myApidestination.tld:81/myAPI
  • トラフィックはプロキシのポート8080にリダイレクトされます。
  • プロキシはポート8080でトラフィックをリッスンし、それをポート81のmyApidestination.tldに転送します。
  • このトラフィックは、宛先 Web サーバーがプロキシに応答するようにソースが提供されます。

私がしたこと:

サーバー1から:

iptables -t nat -I OUTPUT -p tcp -d myApidestination.tld --dport 81 -j DNAT --to-destination proxy:8080

エージェントから:

iptables -A FORWARD -i INT_IF -o EXT_IF -p tcp --dport 8080 -m conntrack --ctstate NEW -j ACCEPT
iptables -A FORWARD -i INT_IF  -o EXT_IF -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i EXT_IF -o INT_IF  -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -P FORWARD DROP

iptables -t nat -A PREROUTING -i INT_IF -p tcp --dport 8080 -j DNAT --to-destination myApidestination.tld:81
iptables -t nat -A POSTROUTING -o EXT_IF -p tcp --dport 81 -d myApidestination.tld -j SNAT --to-source proxyPUBLIC_IP

カーネルで転送を有効にしてモジュールをロードします。

予想どおり、server1のトラフィックはプロキシを通過してポート8080に到達します。

ただし、トラフィックはプロキシを通過せず、ボックスから出ることもありません。ルールが正しく作成されておらず、Paquetがプロキシの外部に渡されないようです。

どんなアイデアがありますか?

よろしくお願いします。

ヤン

ベストアンサー1

まず、奇妙な方法でトラフィックをルーティングしようとしています。

ルール付きプロキシでは、パケットは事前ルーティングからポート81に転送され、転送チェーンでブロックされます。

少なくとも交換する必要があります。

iptables -A FORWARD -i INT_IF -o EXT_IF -p tcp --dport8080-m conntrack --ctstate new -j を受け入れる

そして

iptables -A FORWARD -i INT_IF -o EXT_IF -p tcp --dport81-m conntrack --ctstate new -j を受け入れる

また、プロキシのルーティングテーブルを確認してください。

チャートを検討してください https://www.frozentux.net/iptables-tutorial/chunkyhtml/images/tables_traverse.jpg

~から Netfilterチェーンとテーブル巡回

おすすめ記事