Tshark でキャプチャサイズを制限する方法

WiresharkBeginner
オンラインで実践に進む

はじめに

この実験では、Tshark コマンドを使用して Wireshark でパケットキャプチャのサイズを制御する方法を学びます。合計パケット数を -c 500 で制限する、およびパケット長を -s 128 で制限してヘッダーのみをキャプチャし、ストレージ容量を節約する、2 つの重要なテクニックを探索します。

eth1 インターフェースでの実習を通して、トラフィックを limited.pcap にキャプチャし、異なる設定がキャプチャにどのように影響するかを観察します。この実践的な経験は、さまざまな分析シナリオでパケット収集を最適化することに役立ちます。

パケット数を -c 500 で設定する

このステップでは、Tshark が収集するパケット数を制限することで、パケットキャプチャの期間を制御する方法を学びます。Tshark は Wireshark のコマンドライン版であり、自動キャプチャに最適です。-c オプションは、継続的なキャプチャでシステムを圧倒することなく、ネットワークトラフィックの代表的なサンプルが必要な場合に特に役立ちます。

  1. LabEx VM のターミナルを開きます。システムは自動的に正しい作業ディレクトリ (~/project) に配置されるため、すぐに作業を開始できます。

  2. コマンド構造は、この基本的なパターンを使用します。

    tshark -c [数値] [その他のオプション]

    ここで、[数値] は、収集する最大パケット数を指定することで、キャプチャがいつ停止するかを正確に決定します。これにより、ストレージを埋める可能性のある無限ループを防ぎます。

  3. まず、利用可能なネットワークインターフェースを特定しましょう。次のコマンドを実行します。

    tshark -D

    次の例のようなインターフェースのリストが表示されます。

    1. eth0
    2. eth1 (ダミーインターフェース)
    3. any
    4. lo (ループバック)
    ...

    この実験では、一貫したトラフィック生成を保証するために作成されたダミーインターフェースである eth1 をキャプチャに使用します。

  4. 主要な演習として、500 個のパケットをキャプチャしましょう。次のコマンドを実行します。

    tshark -c 500 -i eth1

    パケットキャプチャには管理者権限が必要なため、sudo コマンドが必要です。これは、tsharketh1 ネットワーク接続を監視するように指示します。

  5. tshark がキャプチャするトラフィックを生成するために、新しいターミナルタブ (または現在のターミナルを分割) を開き、次のコマンドを実行します。

    ping -c 10 google.com

    これにより、google.com に 10 個の ICMP パケットが送信され、tshark がキャプチャできる eth1 上のネットワークアクティビティが生成されます。

  6. パケットが流れるにつれて、tshark ターミナルでリアルタイムの出力が表示されます。正確に 500 個のパケット後、tshark は自動的に終了します。出力は次の例のようになります (500 個のパケットの場合、はるかに長い出力になります)。

    'eth1' をキャプチャ中
        1 0.000000000 192.168.X.X -> 142.250.X.X ICMP 84 エコー (ping) リクエスト  id=0xXXXX, seq=1/256, ttl=64 (2 秒後に応答)
        2 0.000000000 142.250.X.X -> 192.168.X.X ICMP 84 エコー (ping) 応答    id=0xXXXX, seq=1/256, ttl=117 (1 秒後にリクエスト)
    ... (さらに多くの行)
    500 packets captured
  7. 500 個のパケットの完全なキャプチャの前に、メカニズムを理解するために、より小さなサンプルでテストします。この 10 個のパケットの試行は、設定が正しく動作していることを確認するのに役立ちます。

    tshark -c 10 -i eth1

    このコマンドを実行している間、別のターミナルでトラフィックを生成することを忘れないでください。

スナップショット長を -s 128 で定義する

このステップでは、Tshark でパケットをキャプチャする際に -s オプションを使用してスナップショット長 (snaplen) を設定する方法を学びます。これは、各パケットのどの程度をキャプチャするかを決定し、128 バイトは一般的な値で、パケットヘッダーをキャプチャしながらストレージ容量を節約します。スナップショット長は、完全なパケット内容ではなく、パケットヘッダーのみを分析する必要がある場合に特に役立ちます。

  1. まず、ターミナルでデフォルトの作業ディレクトリ ~/project にいることを確認します。これは、整理するためにすべてのキャプチャコマンドを実行する場所です。

  2. スナップショット長オプション (-s) は、記録するバイト数を指定することで、各パケットのどの程度をキャプチャするかを制限します。値が小さいとディスク容量は節約されますが、重要なペイロードデータを見逃す可能性があります。基本的な構文は次のとおりです。

    tshark -s [長さ] [その他のオプション]
  3. 前のステップのパケット数と組み合わせた、128 バイトのスナップショット長でパケットをキャプチャしましょう。このコマンドは、各パケットの先頭 128 バイトを 500 個のパケットに達するまでキャプチャします。

    tshark -c 500 -s 128 -i eth1

    tshark を実行している間、別のターミナルでトラフィックを生成してください (例:ping -c 10 google.com)。

  4. 各パケットの先頭 128 バイトが表示されます。-c オプションで指定されたとおり、500 個のパケット後、キャプチャは自動的に停止します。この組み合わせにより、キャプチャサイズと期間の両方を管理できます。出力は前のステップと似ていますが、パケットの詳細が 128 バイトを超える場合、切り詰められる可能性があります。

    'eth1' をキャプチャ中
        1 0.000000000 192.168.X.X -> 142.250.X.X ICMP 84 エコー (ping) リクエスト  id=0xXXXX, seq=1/256, ttl=64 (reply in 2)
    ... (さらに多くの行)
    500 packets captured
  5. スナップショット長がキャプチャにどのように影響するかをよりよく理解するために、これらの比較コマンドを試してください。異なる -s 値で表示されるデータ量に注意してください。各コマンドに対してトラフィックを生成することを忘れないでください。

    tshark -c 5 -s 64 -i eth1 ## 各パケット 64 バイトのみをキャプチャ
    tshark -c 5 -s 0 -i eth1  ## 完全なパケットをキャプチャ (デフォルト)

    -s 0 設定は、tshark に完全なパケットをキャプチャするように指示します。これは、完全なパケット内容が必要な場合に役立ちますが、より多くのストレージ容量を消費します。

インターフェース eth1 でトラフィックをキャプチャする

このステップでは、Tshark の -i オプションを使用して特定のインターフェースからのネットワークトラフィックをキャプチャすることに焦点を当てます。ネットワークインターフェースは、コンピュータがネットワークと通信するために使用する物理的または仮想的な接続です。Wi-Fi とイーサネットのような複数のインターフェースがある場合、適切なインターフェースを指定することは、ターゲットを絞ったパケット分析に不可欠です。

  1. ターミナルを開き、作業ディレクトリに移動します。

    cd ~/project
  2. -i フラグは、Tshark に監視するネットワークインターフェースを指示します。基本的なコマンド構造は次のとおりです。

    tshark -i [インターフェース] [その他のオプション]

    ここで、[インターフェース] は、実際のインターフェース名に置き換える必要があります。今回の実験環境では通常 eth1 です。

  3. これで、パケット制限 (-c) とスナップショット長 (-s) について学んだことを組み合わせましょう。このコマンドは、eth1 インターフェースから 500 個のパケットをキャプチャし、各パケットの先頭 128 バイトのみを保存します。

    tshark -c 500 -s 128 -i eth1

    パケットキャプチャには管理者権限が必要なため、sudo が必要です。

  4. キャプチャ中にテストトラフィックを生成するために、別のターミナルタブを開き、次のコマンドを実行します。

    ping -c 3 google.com

    これにより、Google のサーバーに 3 つの ICMP パケットが送信され、キャプチャに表示されるはずです。これらの既知のパケットを観察することで、キャプチャが正しく動作していることを確認できます。

  5. キャプチャは 500 個のパケット後自動的に停止しますが、いつでも Ctrl+C キーを押して手動で停止できます。

    Ctrl+C

    このキーボード割り込みは、キャプチャされたデータは保持したまま、キャプチャプロセスを安全に終了します。

ファイル "limited.pcap" に保存する

この手順では、後で分析するためにキャプチャしたネットワークトラフィックをファイルに保存する方法を学びます。Tshark の -w オプションは、キャプチャしたすべてのネットワークデータを保持するパケットキャプチャ (pcap) ファイルを作成します。これは、オフラインでトラフィックパターンを調べたり、同僚とキャプチャを共有したりする場合に特に役立ちます。

  1. 開始する前に、ターミナルが正しい作業ディレクトリにあることを確認してください。次のコマンドを入力します。

    cd ~/project

    これにより、すべてのキャプチャファイルが指定されたプロジェクトフォルダに保存されます。

  2. -w フラグは、キャプチャしたパケットを保存する場所を Tshark に指示します。基本的なコマンド構造は次のとおりです。

    tshark -w [ファイル名] [その他のオプション]

    ファイル名は、パケットキャプチャファイルの標準形式である .pcap 拡張子で終わる必要があります。

  3. 今、これまで学んだすべてのオプションを実際の例にまとめましょう。このコマンドは次のことを行います。

    • 正確に 500 個のパケットをキャプチャ (-c 500)
    • 各パケットを 128 バイトに制限 (-s 128)
    • eth1 インターフェースでリスニング (-i eth1)
    • すべてのデータを limited.pcap というファイルに保存 (-w limited.pcap)
    tshark -c 500 -s 128 -i eth1 -w limited.pcap
  4. tshark が実行されている間、別のターミナルウィンドウを開いてテストトラフィックを生成します。これらのコマンドは、一般的なネットワークアクティビティを作成します。

    ping -c 3 google.com
    curl http://example.com

    このシミュレートされたトラフィックは、実行中の tshark セッションによってキャプチャされます。

  5. 500 個のパケットをキャプチャした後 (または、Ctrl+C を押して早期に停止する)、キャプチャファイルが存在し、そのサイズを確認します。

    ls -lh limited.pcap

    出力には、サイズと作成日時を含むファイルの詳細が表示されます。例:

    -rw-r--r-- 1 root root 56K Aug 10 XX:XX limited.pcap
  6. 後でキャプチャしたパケットを確認するには、次の 2 つの主なオプションがあります。

    • tshark (コマンドライン) を使用して:

      tshark -r limited.pcap

      これにより、パケットの内容がキャプチャされたとおりに表示され、トラフィックを好きなときに分析できます。

    • wireshark (GUI) を使用して:

      注記:このコマンドはデスクトップインターフェースで実行する必要があります。

      wireshark limited.pcap &

      これにより、キャプチャしたパケットを分析するためのより視覚的でインタラクティブな方法を提供する、limited.pcap ファイルが Wireshark のグラフィカルユーザーインターフェースで開きます。& はコマンドをバックグラウンドで実行するため、ターミナルを継続して使用できます。

まとめ

この実験では、Tshark でパケットキャプチャのサイズを制御するための重要なコマンドラインパラメータの使い方を学びました。-c 500 でパケット数を制限し、-s 128 でパケット長を制限することで、これらのオプションがキャプチャ動作と保存効率にどのように影響するかを観察しました。

これらの練習では、ターゲットを絞ったトラフィック分析のためにインターフェース選択 (-i eth1) とこれらの技術を組み合わせる方法を実演しました。tshark -c 500 -s 128 -i eth1 -w limited.pcap のようなコマンドを通して、複数のキャプチャ制約を同時に適用し、tsharkwireshark の両方を使用してオフライン分析のために結果を保存する実践的な経験を得ました。