PIDのネットワークトラフィックとそのすべてのフォーク/子プロセスをキャプチャするためのメソッド/ハック/カーネルモジュールを探しています。
いくつかのWebページを開き、フラッシュストリーミング、wmv、またはその他のストリーミングプロトコル、およびimg、js、その他の「静的」コンテンツの「単純な」ダウンロードでコンテンツのストリーミングを開始するFirefoxアプリケーションがあります。
このトラフィックをキャプチャし、最終的にこれらのストリームを分離することに興味があります。
WiresharkはプロセスIDによるキャプチャをサポートしていませんが、これは回避できると思います(これが私の質問の核心です)。明らかに、完全な仮想マシンをセットアップし、wiresharkを含むFirefoxだけを実行することは機能しますが、おそらくchrootに基づく軽量のソリューションにはるかに満足していますか? iptables所有者モジュールと組み合わせる。
したがって、アイデアや完全なソリューションをいただければ幸いです。
-編集:
人々は私が取り組んでいるOSを正しく推測しています:質問は主にLinux OSに向けられていますが、Windows/OpenSolaris/MacOSXまたはその他の合理的にハッカーがアクセスできるOSで実行可能な解決策が見つかった場合、その答えは受け入れられます。
所有者一致モジュールと組み合わせた、iptablesのULOGターゲットを見てください。それはあなたが求めていたものではありませんが、テスト専用のユーザーを作成し、そのユーザーとして監視しようとしているアプリケーションのみを実行する場合は、かなり近いはずです。
ULOGDは、少なくとも私が知る限り、生のパケットを含むファイルを書き込みます。私は自分でやったことがないので保証できませんが、あなたが望むことをするようです。
理想的には、マシンに別のIPアドレスを追加し、Firefoxにアウトバウンド接続を開くときにそれを使用させることで、Firefoxトラフィックを分離できます。
これは、たとえばOpenSSHで可能です。
ssh -b 192.0.2.64 [...]
しかし、Firefoxでそのためのコマンドラインオプションまたは設定エントリを見つけることができませんでした。
代わりに、tinyproxy
のような単純な(ローカル)HTTPプロキシを使用し、プロキシはそのアウトバウンドトラフィックに一意のIPアドレスを使用することができます。 tinyproxy
は、tinyproxy.conf
のBind
設定でこれを行います。例:
Bind 192.0.2.64
最後に、完全なVMよりも少し軽量なものを調査できます。 iptables
についておっしゃっていたので、Linuxホストを使用していると思います。 [〜#〜] lxc [〜#〜] や OpenVZ のようないくつかの解決策がありますが、HTTPプロキシが選択できない場合は、これでうまくいく可能性があります。
Httpプロキシを設定し、Firefoxがそれを通過するように設定して、それを分析することができます。何もしていない別のマシン(VMでさえ)を介してプロキシを実行すると、その上にWiresharkをスローできます...これでトラフィックが十分に分離されると思います。