3

組み込みデバイスが Apache 経由で weblogic と通信するアプリケーションがあります。Weblogic と Apache は同じ Solaris サーバー上にあり、Apache 用の weblogic モジュールを使用しています。

通信は http 経由で動作します

問題は https に直接関係しているようには見えませんが、https では機能しません (SSL セッションは正常にネゴシエートされ、いくつかのやり取りが発生します)。https が使用されている場合、デバイスは通信を異なる方法で処理しているようです。

これをデバッグするために http/https リクエストとレスポンスを確認したいと思います。

(例)wireshark を使用してデバイスとサーバー間のデータをキャプチャできますが、これは暗号化されているため、あまり役に立ちません。Wireshark (またはスヌープ) は、Apache と Weblogic の間のサーバー上のローカル トラフィックを認識しません。注: Linux ではこれを行うことができますが、Solaris ではできません。

Wireshark の低レベルのパケット キャプチャは実際には必要ありません。http 要求と応答のヘッダーと本文をキャプチャするだけで十分です。

誰でもこれを行う方法を知っていますか? おそらく通過するすべてのリクエストとレスポンスをログに記録するApache modはありますか(グーグルは明らかなものを何も示しませんでした)。これを行う他の創造的な方法はありますか?

4

4 に答える 4

1

私が選択した TCP キャプチャ プログラムは、balanceと呼ばれます。

 _           _
| |__   __ _| | __ _ _ __   ___ ___
| '_ \ / _` | |/ _` | '_ \ / __/ _ \
| |_) | (_| | | (_| | | | | (_|  __/
|_.__/ \__,_|_|\__,_|_| |_|\___\___|
  this is balance 3.42
  Copyright (c) 2000-2007,2008
  by Inlab Software GmbH, Gruenwald, Germany.
  All rights reserved.

これは tcp ロード バランサ ユーティリティとして設計されていますが、-p パケット ダンプ フラグを使用すると、すべてのトラフィックの入出力をログに記録できます。ASCII を ASCII で表示し、すべてを 16 進数としてエンコードします。1024 を超えるポートを使用する場合、非ルートとして問題なく動作します。

于 2009-10-20T05:44:10.153 に答える
1

これは何かの助けになるかもしれません。 http://httpd.apache.org/docs/2.2/mod/mod_log_forensic.html

于 2009-09-03T12:47:32.270 に答える
1

私は ServerFault で同様の質問をしましたが、最良の答えは、別のマシンに TCP プロキシを設定し、すべての通信をそこにバウンスさせることであると思われました。

したがって、代わりに:

Weblogic -> Apache

次のようになります。

Weblogic -> (across network) TCP Proxy -> (across network) -> Apache

その後、必要な tcpdump/wireshark を実行できます。私はうまく機能するrinetdを使用しましたが、少なくとも Linux では、組み込みの inetd にもプロキシ (およびログ) を実行する機能があることを知っています。

更新:ネットワーク経由で何もできない場合は、同じ概念とTcpProxyなどのようなもの (通常の inetd でさえも) を使用して、プロキシとログを実行できます。NetcatTCP Proxyとして使用することもできます。DTrace を使用してループバック トラフィックをスヌープすることを提案した人もいます。これは、カーネルに直接フックできるためです。

于 2009-09-03T12:47:37.650 に答える
0

トラスを使用して、プロセスの 1 つによって実行されるソケットの読み取りと書き込みをキャプチャできます。

于 2009-09-06T11:25:00.080 に答える