web-dev-qa-db-ja.com

手動NATチェックポイント(すべてのhttpリクエストをローカルWebサーバーにリダイレクト)

内部ネットワークにプロキシサーバーがあり、すべてのインターネットhttpリクエストをローカルネットワークのWebサーバーにリダイレクトしたいと思います。 「直接接続は利用できません。プロキシを設定するなど」と書かれたネットワークビルボードのようになります。例えば:

  • ユーザーがコンピューターを起動します
  • ブラウザを開きます
  • Www.google.comを開こうとします
  • ローカルネットワーク上でWebサーバーの出力を確認する必要があります
  • インターネット上の別のWebサイトを試します
  • ローカルネットワーク上でWebサーバーの出力を確認する必要があります
  • プロキシを設定します
  • Webサイトに接続しようとします
  • Webサイトをロードする必要があります

Checkpointファイアウォールでのアドレス変換に簡単なマニュアルNATルールを追加しましたが、単に機能しません。これが私のアドレス変換ルールです。

Source Destination Service T.Source T.Destination T.Service
MY_PC  A_GOOGLE_IP ALL     ORIGINAL INT_WEB_SRV   ORIGINAL

次に、A_GOOGLE_IPにpingを実行すると、予想どおり、INT_WEB_SRVから応答が返されます。しかし、ブラウザからA_GOOGLE_IPに接続しようとすると( http:// A_GOOGLE_IP )、SYN_SENTからの応答がなく、タイムアウトになります。 INT_WEB_SRVのファイアウォールログを見ると、MY_PCからの着信接続要求が受け入れられ、拒否されていないことがわかります。ちなみに、ブラウザからINT_WEB_SRVhttp:// INT_WEB_SRV )を見るのは問題ありません。

私の理解では、チェックポイントNGXR60のNATルールにはリターンパケットが含まれていません。間違いなく助けが必要です。

3

NATの問題が発生した場合、私は常にいくつかのSSHセッションを開き、内部インターフェイスと外部インターフェイスの両方でtcpdumpを実行することから始めます。

何かのようなもの:

tcpdump -i eth0 proto ICMP

または

tcpdump -i eth0 Host A_GOOGLE_IP

そして、Nat'dIPアドレスが何であるかを確認してください。それは少なくともあなたにどこかから始めることを与えるはずです!

1
JakeRobinson

チェックポイントのリターントラフィックは、ナット化する必要があります。トラフィックはWebサーバーのサーバーログに表示されていますか?また、fw monitorを使用して、チェックポイントが正しくナッティングされていることを確認し、次のような方法でトラフィックを双方向に渡すことも価値があります。

fw monitor -e 'accept (src=<Host address> and dport=80) or (dst=<Host address> and sport=80);'

これにより、preおよびpost NATアドレスを含む、パケットごとに4行が表示されます。

0
Cian

内部サーバーがクライアントと同じサブネット内にある場合は、DNATだけでなくSNATも実行する必要があります。これは、次のように機能するためです。

iptables -t nat -A PREROUTING -i LAN_IFACE -d A_GOOGLE_IP -j DNAT --to-destination INT_WEB_SRV
  • クライアントPCはTCP SYNをA_GOOGLE_IPに送信します
  • ルーターはそれをINT_WEB_SRVにDNATします
  • INT_WEB_SRVは、LAN IPからの要求を確認し、直接応答します
  • クライアントは、A_GOOGLE_IPではなくINT_WEB_SRVIPから応答を受信します

SNATの場合、次のように機能します。

iptables -t nat -A PREROUTING -i LAN_IFACE -d A_GOOGLE_IP -j DNAT --to-destination INT_WEB_SRV
iptables -t nat -A POSTROUTING -s LAN_RANGE/mask -d INT_WEB_SRV -j SNAT --to-source ROUTER_IP
  • クライアントPCはTCP SYNをA_GOOGLE_IPに送信します
  • ルーターはそれをINT_WEB_SRVにDNATし、ソースIPを独自のIPに置き換えます
  • INT_WEB_SRVは、ルーターからの要求を確認し、それに応答します。
  • ルーターはパケットをクライアントPCにDNATし、送信元IPをA_GOOGLE_IPに置き換えます
  • クライアントは、A_GOOGLE_IPに接続されていると考えています

ただし、すべてのユーザーにプロキシの使用を強制するだけの場合は、プロキシサーバーへのすべての発信HTTP接続をDNATするだけで(いわゆる透過プロキシを取得できます)、クライアントはコンピューターの設定を変更する必要はありません。 。

0
Pentium100