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