はじめに
この実験では、パケットキャプチャファイルからプロトコル統計情報を生成することで、Wireshark のコマンドラインツール tshark を使用してネットワークトラフィックを分析する方法を学びます。ファイルを読み込むための -r、クワイエットモードを設定する -q、プロトコル階層統計情報を取得する -z io,phs などの重要なオプションを探索します。
この演習では、キャプチャファイルの検証、パケットの概要表示、プロトコルの分布の解釈などの手順を案内します。この実践的な経験を通じて、tshark の統計機能を用いたネットワーク分析スキルを向上させることができます。
-r capture.pcap でファイルを読み取る
このステップでは、Wireshark のコマンドラインツール tshark を使用してパケットキャプチャファイルを開き、分析する方法を学びます。-r オプションは、読み込むパケットキャプチャファイルを指定するための基本的なオプションです。これは、テキストエディタでドキュメントを開くときに、どのファイルを操作するかをプログラムに指示するのと同じようなものです。
まず、正しいディレクトリにいることを確認します。ターミナルを開き、以下のコマンドを実行します。
cd ~/projectこのコマンドは、サンプルのキャプチャファイルが保存されているプロジェクトディレクトリに移動します。これは、ファイルにアクセスする前に正しいフォルダを開くのと同じようなものです。
実験環境には
capture.pcapという名前のサンプルキャプチャファイルが用意されています。その存在を確認します。ls -l capture.pcap期待される出力は、以下のようなファイルの詳細を表示します。
-rw-r--r-- 1 labex labex 12345 Jan 1 00:00 capture.pcapls -lコマンドは、ファイルのパーミッション、サイズ、および変更時刻を表示します。これにより、ファイルが存在し、分析を試みる前にアクセス可能であることが確認できます。tsharkでキャプチャファイルを読み込むには、以下のコマンドを実行します。tshark -r capture.pcapこのコマンドは
capture.pcapファイルを読み込み、各ネットワークパケットの概要情報を表示します。以下の列が表示されます。- パケット番号(キャプチャ内の順序)
- タイムスタンプ(キャプチャされた時刻)
- 送信元と宛先の IP アドレス
- 使用されたプロトコル(TCP、UDP など)
- パケットに関する基本情報
パケット番号とプロトコルのみを表示するクリーンな出力を得るには、
-q(クワイエット)オプションを追加します。tshark -r capture.pcap -q-qフラグは、一部の詳細を抑制することで出力を簡素化します。これは、キャプチャ内のトラフィックの種類をすばやく確認したい場合に便利です。パケットの一覧表示を終了するには、十分な出力を見たら
Ctrl+Cを押します。このキーボードショートカットは、コマンドの実行を停止し、ターミナルプロンプトに戻ります。
これらのコマンドは、キャプチャされたパケットを表示するだけであり、ファイルを何らかの方法で変更することはありません。次のステップでは、このトラフィックをより詳細に分析する方法を説明します。
-z io,phs で階層統計を計算する
このステップでは、Wireshark のコマンドラインツール tshark を使用してプロトコル階層統計を生成することで、ネットワークトラフィックを分析する方法を探索します。-z io,phs オプションは、キャプチャしたトラフィック内で異なるネットワークプロトコルがどのように関連しているかを示す構造化された概要を作成します。
まず、キャプチャファイルが保存されている正しい作業ディレクトリにいることを確認しましょう。
cd ~/projectこのコマンドは、パケットキャプチャファイルを操作するプロジェクトディレクトリに移動します。
次に、
capture.pcapファイルを分析して、プロトコルの分布を確認しましょう。以下のコマンドを実行します。tshark -r capture.pcap -z io,phs各部分の機能は以下の通りです。
-r capture.pcapはパケットキャプチャファイルを読み込みます。-z io,phsはプロトコル階層統計を生成します。
このコマンドは、ネットワークトラフィック内のプロトコルの階層構造を示す出力を生成します。以下はサンプルの構造です。
====================================================== Protocol Hierarchy Statistics Filter: eth frames:100 bytes:10000 ip frames:90 bytes:9000 tcp frames:80 bytes:8000 http frames:70 bytes:7000 udp frames:10 bytes:1000 arp frames:10 bytes:1000 ======================================================このツリー構造は以下のことを明らかにします。
- イーサネット (eth) がすべてのトラフィックを運ぶ基本層であること。
- IP パケットがイーサネットフレームの 90% を占めること。
- TCP が IP 内で支配的なトランスポートプロトコルであること。
- HTTP トラフィックがほとんどの TCP パケットを占めること。
この統計情報は、各プロトコルに関する 3 つの重要な情報を提供します。
- 総トラフィックに占める割合(フレーム数から推測される)
- 送信されたフレームとバイトの絶対数
- プロトコル間のカプセル化関係
追加のキャプチャ情報を含まないクリーンな表示を得るには、
-q(クワイエット)オプションを追加します。tshark -r capture.pcap -z io,phs -q-qフラグは余分な詳細を抑制し、プロトコル階層統計のみを表示します。これは、プロトコルの内訳のみが必要な場合に特に便利です。
-q でパケット詳細を抑制する
このステップでは、ネットワークトラフィックを分析する際に出力を簡素化するのに役立つ、tshark の -q オプションについて学びます。これは、詳細なパケット内容ではなく統計情報のみが必要な場合に特に便利です。
まず、パケットキャプチャファイルが保存されている作業ディレクトリに移動しましょう。
cd ~/projectこれにより、サンプルのキャプチャファイルにアクセスするための正しい場所にいることが保証されます。
まず、
-qオプションを使用せずに通常の tshark の出力がどのようになるかを見てみましょう。tshark -r capture.pcapこのコマンドは、プロトコルヘッダーやペイロードデータを含む完全なパケット情報を表示します。初心者にとっては、全体の統計情報のみに興味がある場合、この出力は細かすぎて圧倒的に感じるかもしれません。
次に、
-q(クワイエット)オプションを使用して同じコマンドを試してみましょう。tshark -r capture.pcap -qこれにより詳細なパケット情報が抑制され、クリーンな出力が得られることに注目してください。
-qオプションは tshark に概要情報のみを表示するよう指示します。パケットレベルの詳細が必要ない場合、これは読みやすくなります。-qを先ほど学んだプロトコル階層統計と組み合わせてみましょう。tshark -r capture.pcap -z io,phs -qこの強力な組み合わせにより、迷惑なパケット詳細を一切含まずにプロトコル統計のみが得られます。
-z io,phsが統計を生成し、-qが統計概要のみを表示することを保証します。注目すべき主な違い:
-qなし:すべてのプロトコル層を含む完全なパケット解析を表示します。-qあり:概要/統計情報のみを表示するクリーンな表示を提供します。- 統計オプション (
-z) と組み合わせると、集中的な分析に特に役立ちます。
覚えておいてください、個々のパケットの詳細ではなく全体像に焦点を当てたい場合、-q オプションはあなたの味方です。これは、ネットワーク分析に必要な本質的な情報を提供しながら、視覚的な煩雑さを減らすのに役立ちます。
コンソールで統計情報を表示する
このステップでは、tshark の強力な統計機能を使って、ターミナル上で直接ネットワークトラフィックのパターンを分析する方法を学びます。これらのコマンドを使うと、トラフィックの分布を把握したり、主要な通信元を特定したり、キャプチャしたネットワークデータ内の異常なパターンを見つけたりすることができます。
まず、キャプチャファイルが保存されている正しい作業ディレクトリにいることを確認してください。tshark がファイルにアクセスする必要があるため、これは重要です。
cd ~/project時間間隔を指定して基本的なキャプチャファイルの統計情報を表示します。
-qフラグはパケットの詳細を抑制し、-z io,stat,60は 60 秒ごとの概要ブロックを作成します。tshark -r capture.pcap -q -z io,stat,60これにより、1 分間隔でトラフィック量がどのように変化するかが表示されます。
どの IP アドレスが最もアクティブであるか(エンドポイント統計)を確認するには、このコマンドで各アドレスのトラフィックをカウントします。
tshark -r capture.pcap -q -z endpoints,ipこれにより、通信しているすべての IP アドレスと、それぞれが送信/受信したパケット数とバイト数が一覧表示されます。
どの IP ペアが通信しているか、そしてどれだけ通信しているかを示す会話統計を表示するには、次のコマンドを使用します。
tshark -r capture.pcap -q -z conv,ipこれにより、特定の送信元 - 宛先ペア間の通信パターンが明らかになります。
包括的な分析のために、複数の統計情報を 1 つのコマンドで組み合わせます。
tshark -r capture.pcap -q -z io,stat,60 -z endpoints,ip -z conv,ip統計情報を確認する際には、次の重要な指標に注目してください。
- 総パケット数とバイト数:全体のトラフィック量
- 時間経過に伴うトラフィック分布:ピークや異常なパターンを見つける
- 主要な通信エンドポイント:多くのトラフィックを発生させるユーザーを特定する
- 会話ペア:誰が誰とどれだけ通信しているかを理解する
まとめ
この実験では、ネットワークトラフィック分析に Wireshark のコマンドラインツール tshark を使用する方法を学びました。-r オプションを使ってパケットキャプチャファイルを読み取る練習をし、読みやすさを向上させるために -q フラグで出力を簡素化しました。
さらに、-z io,phs オプションを通じてプロトコル階層統計を生成する方法を探索しました。これにより、ネットワークトラフィック内のプロトコル分布に関する貴重な洞察が得られます。この手法を使うと、個々のパケットを調べることなくトラフィックの構成を迅速に評価することができます。


