0

これが状況です。イントラネット 192.168.1.0/24 には複数のサーバーがあり、そのうちの 1 つはすべてのデフォルト ゲートウェイであり、2 つのインターフェイス ($GATEWAY_INTERNAL_IP と $GATEWAY_EXTERNAL_IP) があります。

$PUBLICHOST_EXTERNAL_IP と $PUBLICHOST_INTERNAL_IP の 2 つの IP を持つ別のサーバー PUBLICHOST2 もあります。

1 つの IP $PRIVIP のみを持ち、ポート $PORT にバインドする 3 番目のサーバー SERVER があります。

必要なのは、$PUBLICHOST_EXTERNAL_IP のポート $PORT を $PRIVIP のホスト SERVER に転送できるようにすることです。

しかし、PUBLICHOST2 で iptables を使用してポート転送を行うと、SERVER はリクエストを受け取りますが、応答はゲートウェイを通過し、接続は成功しません。

応答が PUBLICHOST2 を介して返されるように、どのようにセットアップを適切に行うことができますか?

ありがとう

4

3 に答える 3

1

インターフェイスの転送をオンに設定する必要がある場合があります。tne コマンドを試してください。

sysctl -w net.ipv4.conf.eth0.forwarding=1

追加のヘルプが必要な場合は、routeback またはShorewall FAQ に関するドキュメントを探してください。

于 2011-07-06T02:17:20.107 に答える
0

ここで何が起こるか:

  • Client1 が PublicHost にリクエストを送信します
  • リクエストが到着し、iptables ルールがトラフィック (PAT) を正しい AppPort 上のサーバーにリダイレクトします。
  • サーバーは、ゲートウェイによってルーティングされる Client1 に応答を返します
  • ゲートウェイは NAT を実行しており、送信元 IP を独自のものに置き換えます
  • Client1 または Client1sGateway は、Gateway を送信元として IP パケットを受信しますが、IP パケットの送信元フィールドに PublicHost の IP が含まれていることを予期していました。
  • 最終的に、Client1 は SYN/ACK (synproxy を使用している場合を除く) を PublicHost に再送信し、ネットワーク関連のタイマーが期限切れになると接続を切断します。

これを修正する場合は、サーバーから送信されるすべての TCP トラフィックを、AppPort のソース ポートを使用して PublicHost にルーティングする必要があります。

これが機能しない場合は、PublicHost が正しく構成されていません。必ず tcpdump を使用して構成をテストしてください。

于 2011-07-06T02:30:38.590 に答える
0

私は似たようなことをしようとしてきました。接続をWiresharkして、宛先アドレスがまだ外部IPアドレスに設定されていることを発見するまで(あなたが説明したのとまったく同じように)、動作しないように見える一連のチュートリアルを実行した後、ポストルーティングチェーンを使用して送信元 IP アドレスをサーバーの IP アドレスに:

iptables -t nat -A POSTROUTING -p <tcp/udp> --dport <destination_port> -j SNAT --to <$PUBLICHOST_INTERNAL_IP>

そのルールを追加した後、接続はプライベート ネットワークに転送され、応答パケットはネットワーク ゲートウェイを経由するのではなく、同じパスをたどってクライアントに戻りました。応答パケットがファイアウォール サーバーを通過することを許可した理由は定かではありませんが、確立された接続を許可するために INPUT チェーンに既に設定していたルールが原因だったと思います。

iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

このソリューションで必ず覚えておくべきことは、ファイアウォール サーバーの内部 IP アドレスを変更した場合は、上記の POSTROUTING ルールを更新する必要があるということです。(言うまでもなく、ファイアウォール サーバーに静的に割り当てられた内部 IP アドレスがある場合は、おそらく最適です)。

于 2015-05-26T01:52:02.517 に答える