DipMeshSystems.

技術文書
技術文書 literature music このサイトについて
Apache/httpd bash Firebird git gpg grep & sed MacOS X メールサーバ ネットワーク プログラミング sambaファイル共有 screen ssh su / sudo TextConsoleLife vi / vim vnc xxd yum UNIX関係のその他の資料

ngrep


インストール方法

ngrepの公式サイト からソースコードをダウンロードして来てから、おきまりの以下を実行。
 >./configure
 >make
 >make install

注意するのは pcap 及び pcap-devel が必要なので、
 >%yum% install libpcap-devel

などでインストールして置くと良い。

概要

 ngrepは手軽で有意義なパケットキャプチャソフトウェアです。この種類のツールには、ネットワーク通信の盗聴など負のイメージを持たれることも多いですが、多くの常識的なソフト開発者にとっても非常に有効なツールとなります。
 活躍するシーンとしては、自分自身の作成したソフトウェアが何らかのネットワーク通信方法で送信、或いは受信を行う場合です。ソフトウェアが完成する以前の状態では、通信そのものの内容を検査することが難しいからです。
 そういった意味では開発そのもののツールとしてだけでなく、ngrepは有用なテストツールでもあります。開発したソフトウェアが特定の通信を正常に受信出来ない場合に、それが本来有効なデータが来ているにも関わらず正常に処理出来ていないのか、或いは、受信しているデータそのものに異常が認められるのかを確認出来るからです。これは、ソフトウェアが送信したデータの内容を確認するという目的にも使用出来ます。
 他のLinuxツールと同じく、たくさんの起動パラメータを持っているngrepですが、以下に使用方法を幾つかあげましょう。

使用方法


eth0ネットワークインターフェースを通過する、TCP80番ボートの通信(多くの場合はhttp)の内容に「ACCEPTED」を含む内容を16進数とASCII文字列の対応のDUMPリストの形で出力します。
  ngrep 'ACCEPTED' -d eth0 tcp port 80 -x

上記の例の 'ACCEPTED' にあたる検索文字列には、ツール名のngrepという名称が表す通り正規表現を用いることが出来ます。

バイナリデータを中心としたデータの送受信では上記のような使い方が便利ですが、場合によってはテキストベースのもっと可読性の高い出力が望ましいこともあります。
  ngrep 'SELECT' -d eth1 tcp port 3050 -W byline

上記の例は、eth1ネットワークインターフェースを通過する、TCP3050番ポートの通信(InterBase/Firebrdで良く使用されます)の内容に「SELECT」を含む内容を、パケット毎のテキストで出力出来ます。

ただし、条件を絞り込まないと量が多すぎて確認が煩雑になります。量が多い場合には、以下のようにリダイレクトを使用してファイル出力することも出来ます。(下の例では実行時ディレクトリに http_raw_data.log という名称で出力結果を保存する)
  ngrep 'ERROR' -d eth0 tcp port 80 -x > ./http_raw_data.log


いずれの場合でも、ngrepが自動で終了することはないので、任意のタイミングで CTRL+c などでBREAK信号を送り、中止させる必要があります。時には端末に接続していられるよりもずっと長い時間の監視を行いたい場合もありますが、その場合にはscreenコマンドを併用すると便利でしょう。


©1998-2014 DipMeshSystems.
this site is powered by OpenSylph / DipMeshSystems.
x