Tshark でライブトラフィックをキャプチャする

WiresharkWiresharkBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験では、Wireshark のコマンドラインツール tshark を使用して、ライブネットワークトラフィックをキャプチャする方法を学びます。-D を使用してネットワークインターフェイスを特定し、-i を使用して eth1 のようなインターフェイスを選択し、デフォルト設定でパケットをキャプチャする練習を行います。

この実験では、-w を使用してキャプチャを pcap ファイルに保存し、後で分析する方法を案内します。これらの基本的なスキルは、実際のシナリオでのネットワークトラブルシューティングやトラフィック監視に不可欠です。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL wireshark(("Wireshark")) -.-> wireshark/WiresharkGroup(["Wireshark"]) wireshark/WiresharkGroup -.-> wireshark/interface("Interface Overview") wireshark/WiresharkGroup -.-> wireshark/packet_capture("Packet Capture") wireshark/WiresharkGroup -.-> wireshark/protocol_dissection("Protocol Dissection") wireshark/WiresharkGroup -.-> wireshark/export_packets("Exporting Packets") wireshark/WiresharkGroup -.-> wireshark/commandline_usage("Command Line Usage") subgraph Lab Skills wireshark/interface -.-> lab-548916{{"Tshark でライブトラフィックをキャプチャする"}} wireshark/packet_capture -.-> lab-548916{{"Tshark でライブトラフィックをキャプチャする"}} wireshark/protocol_dissection -.-> lab-548916{{"Tshark でライブトラフィックをキャプチャする"}} wireshark/export_packets -.-> lab-548916{{"Tshark でライブトラフィックをキャプチャする"}} wireshark/commandline_usage -.-> lab-548916{{"Tshark でライブトラフィックをキャプチャする"}} end

-D でインターフェイスを一覧表示する

このステップでは、Wireshark のコマンドラインツール tshark を使用して、利用可能なネットワークインターフェイスを一覧表示する方法を学びます。ネットワークインターフェイスは、コンピュータがネットワークに接続する物理的または仮想的なポイントです。ネットワークトラフィックをキャプチャする前に、システム上でアクティブなインターフェイスを特定することが重要です。なぜなら、異なるインターフェイスが異なるタイプのネットワークトラフィックを処理するからです。

  1. まず、LabEx の仮想マシン (VM) 環境でターミナルを開きます。ターミナルは、コマンドを通じて Linux システムとやり取りするためのゲートウェイです。デフォルトの作業ディレクトリは ~/project です。これは、特に指定しない限り、作成するすべてのファイルがここに保存されることを意味します。
Capture-capable network interfaces
  1. 利用可能なすべてのネットワークインターフェイスを一覧表示するには、次のコマンドを実行します。
tshark -D
  1. このコマンドを実行すると、キャプチャ可能なすべてのネットワークインターフェイスが表示されます。典型的な出力は次のようになります。
1. eth1
2. any
3. lo (ループバック)
4. nflog
5. nfqueue
6. docker0
  1. -D フラグは、tshark に利用可能なインターフェイスを表示するよう指示する特定のコマンドオプションです。各インターフェイスにはそれぞれ異なる目的があります。

    • eth1: これは通常、主な有線ネットワークインターフェイスで、ほとんどの外部ネットワーク通信を処理します。
    • lo: ループバックインターフェイスは、自マシン内の内部ネットワークトラフィックを処理します。
    • any: すべての利用可能なインターフェイスから同時にトラフィックをキャプチャする特殊な仮想インターフェイスです。
  2. インターフェイスの一覧を注意深く確認してください。後でパケットをキャプチャする際に、どのネットワークインターフェイスのトラフィックを監視するかを正確に指定する必要があるため、これらのインターフェイス名を参照することになります。番号付けは、後続のコマンドでインターフェイスを選択する際に役立ちます。

-i eth1 でインターフェイスを選択する

このステップでは、Wireshark の tshark ツールを使用して、パケットキャプチャ用の特定のネットワークインターフェイスを選択する方法を学びます。ネットワークインターフェイスは、コンピュータがネットワークに接続する物理的または仮想的なポイントです。eth1 インターフェイスは、通常、Linux システムの最初の Ethernet ポートで、ほとんどの外部ネットワークトラフィックを処理します。

  1. まず、キャプチャファイルを保存する正しい作業ディレクトリにいることを確認します。
cd ~/project
  1. eth1 インターフェイスで具体的にパケットのキャプチャを開始するには、次のコマンドを実行します。
sudo tshark -i eth1
  1. このコマンドの各部分が何をするかを理解しましょう。

    • sudo: ネットワークインターフェイスにアクセスするために必要な管理者権限を付与します。
    • tshark: Wireshark のコマンドラインバージョンです。
    • -i eth1: tshark に eth1 インターフェイスを監視するよう指示します(システムが異なるインターフェイス名を使用している場合は、これを変更してください)。
  2. 実行すると、ターミナルに次のようにライブのネットワークトラフィックが表示されます。

Capturing on 'eth1'
1 0.000000000 192.168.1.100 → 192.168.1.1 TCP 74 55942 → 80 [SYN] Seq=0 Win=64240 Len=0
2 0.000123456 192.168.1.1 → 192.168.1.100 TCP 74 80 → 55942 [SYN, ACK] Seq=0 Ack=1 Win=65535 Len=0

各行は、ソース/宛先の IP アドレス、プロトコルタイプ、その他の技術的な詳細を示すネットワークパケットを表しています。

  1. パケットのキャプチャを停止するには、Ctrl+C を押します。すると、ターミナルにキャプチャされたトラフィックの概要統計情報が表示されます。

  2. 初心者にとっての重要な注意事項:

    • eth1 は、ほとんどの Linux システムで最初の Ethernet インターフェイスのデフォルト名です。
    • インターフェイスを一覧表示したときに見つけた正確なインターフェイス名を常に使用してください。
    • ネットワークトラフィックをキャプチャするには特別な権限が必要なので、sudo を使用する必要があります。
    • 出力には、システム上で実際に行われているネットワーク通信が表示されます。

デフォルト設定でキャプチャを開始する

このステップでは、Wireshark の tshark をデフォルト設定で使用して、基本的なパケットキャプチャを開始する方法を学びます。これは、前のステップでインターフェイスを特定し、eth1 を選択した内容を基に進めます。Linux システムで通常最初の Ethernet インターフェイスとなる eth1 を通るすべてのネットワークトラフィックのキャプチャを開始します。

  1. まず、キャプチャファイルを保存する正しい作業ディレクトリにいることを確認します。
cd ~/project
  1. eth1 インターフェイスでデフォルト設定でパケットのキャプチャを開始するには、次のコマンドを実行します。
sudo tshark -i eth1

ネットワークトラフィックのキャプチャには root 権限が必要なため、sudo コマンドが必要です。-i eth1 フラグは、tshark に eth1 ネットワークインターフェイスを具体的に監視するよう指示します。

  1. このコマンドの重要な側面:

    • eth1 を通過するすべてのパケットタイプ(TCP、UDP、ICMP など)をキャプチャします。
    • キャプチャされるパケットの概要をリアルタイムで表示します。
    • デフォルトのキャプチャフィルタを使用します(フィルタリングせずにすべてのトラフィックをキャプチャします)。
    • 次のような基本的なパケット情報を表示します。
      • パケット番号(1 から始まる連番)
      • タイムスタンプ(各パケットがキャプチャされた時刻を示す)
      • ソースと宛先の IP アドレス(トラフィックの送信元と送信先を示す)
      • プロトコル(ネットワークプロトコルのタイプを識別する)
      • パケット内容に関する基本情報
  2. 次のような出力が表示されるはずです。

1 0.000000000 192.168.1.100 → 8.8.8.8 DNS 74 Standard query
2 0.000123456 8.8.8.8 → 192.168.1.100 DNS 90 Standard query response

各行は 1 つのネットワークパケットを表しています。矢印 (→) は、ソースと宛先の IP アドレス間のトラフィックの流れの方向を示しています。

  1. 出力を一時的に一時停止する(キャプチャを停止しない)には、Ctrl+S を押します。再開するには Ctrl+Q を押します。新しいパケットが速すぎてスクロールしてしまうことなく、特定のパケットを調べたい場合に便利です。

  2. この基本的なキャプチャに関する重要なポイントを覚えておいてください。

    • デフォルトのキャプチャでは、表示を管理しやすくするためにパケットヘッダのみを表示します(完全なペイロードではありません)。
    • Ctrl+C で停止するまでキャプチャは続きます。
    • まだパケットはディスクに保存されていません(次のステップで取り上げます)。
    • ターミナルの出力は単なるライブビューです - この情報はまだ永続的に保存されていません。

-w capture.pcap で停止してファイルに保存する

このステップでは、パケットキャプチャセッションを適切に停止し、キャプチャしたパケットを後で分析するためにファイルに保存する方法を学びます。これで、基本的な Wireshark/tshark のワークフローが完了します。パケットをファイルに保存することは、後でネットワークトラフィックを分析したり、同僚とデータを共有したりする必要がある場合に不可欠です。

  1. まず、キャプチャファイルを保存する正しい作業ディレクトリにいることを確認してください。~/project ディレクトリは、実験(Lab)のチャレンジ(Challenge)でよく使用されます。
cd ~/project
  1. パケットを自動的にファイルに保存する新しいキャプチャセッションを開始するには、次のコマンドを実行します。-w フラグは、キャプチャしたデータをどこに保存するかを tshark に指示します。
tshark -i eth1 -w capture.pcap
  1. このコマンドの重要な側面を分解してみましょう。

    • -w capture.pcap: 出力ファイル名を指定し、標準の PCAP 形式でパケットを保存します。
    • ファイルは現在の作業ディレクトリ(~/project)に作成されます。
    • ライブモニタリングとは異なり、このコマンドはファイルに保存しながら画面に出力せずに静かに実行されます。

    パーミッションに関する重要な注意点:

    • このコマンドで sudo を使用しないでください(例:sudo tshark -i eth1 -w capture.pcap)。
    • ~/project ディレクトリには、root アクセスを含むアクセスを制限する特定のパーミッションがあります。
    • sudo を付けて実行すると、「Permission denied(許可がありません)」エラーが発生します。
    • sudo なしでコマンドを使用して、正しいパーミッションで適切なファイル作成を保証します。
  2. キャプチャを約 30 秒間実行して、意味のあるネットワークトラフィックを収集します。この時間により、過度に大きなファイルを作成せずに、さまざまな種類のパケットをキャプチャできます。

  3. キャプチャを正常に停止してファイルを確定するには、Ctrl+C を押します。ターミナルにキャプチャセッションに関する概要情報が表示されます。

^CCapturing on 'eth1'
45 packets captured
  1. ディレクトリの内容を一覧表示して、キャプチャファイルが正常に作成されたことを確認します。-lh フラグは、ファイルサイズを人間が読める形式で表示します。
ls -lh capture.pcap
  1. これと同様の出力が表示され、ファイルが適切なパーミッションで作成され、キャプチャされたデータが含まれていることが示されます。
-rw-r--r-- 1 labex labex 12K Aug 10 15:30 capture.pcap
  1. PCAP ファイルの操作に関する重要な注意点:
    • PCAP ファイルは、後で Wireshark GUI または tshark コマンドで分析できます。
    • ファイルサイズはキャプチャ時間とともに増加します。ディスク容量に注意してください。
    • 上書きを避けるために、個別のキャプチャセッションには一意のファイル名を使用してください。
    • .pcap 拡張子は、パケットキャプチャファイルの標準です。

まとめ

この実験では、Wireshark のコマンドラインツール tshark を使用して、ライブのネットワークトラフィックをキャプチャする方法を学びました。-D フラグを使用して利用可能なインターフェイスを一覧表示し、-i パラメータを使用して特定のインターフェイスでパケットをキャプチャする練習を行い、IP アドレスやプロトコルなどの重要なネットワーク詳細を観察しました。

この演習では、sudo 権限の適切な使用や基本的なキャプチャコントロールを含む、基本的な tshark コマンドの実践的な経験を得ました。これらの重要なスキルは、より高度なネットワーク分析やトラブルシューティングタスクの基礎となります。