いまさら聞けない「Wireshark」と「tcpdump」の特徴と違い:パケットキャプチャー入門【前編】
ネットワークのパケットを収集して分析する定番ツールに「Wireshark」と「tcpdump」がある。パケットを分析するための両者の特徴と操作方法などを解説する。違いは何か。
ネットワークの流れは、水道管を流れる水のようなものだ。もし、水道管を流れる水の経路や個々の水滴の状態まで確認できればどんなに便利だろうか。これを実現するツールがパケットキャプチャーツールだ。ネットワークアナライザー、パケットスニファーと呼ばれることもある。
ネットワーク管理者がネットワークを適切に運用するためには、パケットキャプチャーツールは欠かせない。有名なツールとしては「Wireshark」と「tcpdump」がある。両者の違いを確認しよう。
Wiresharkとtcpdumpの違いとは
併せて読みたいお薦め記事
LANのパケットを分析する
Wiresharkとtcpdumpはどちらもネットワークのパケット(ネットワークを流れる分割されたデータ)をキャプチャー(データとして保存すること)する。ネットワーク管理者は、使用しているプロトコルやIPアドレスなどの情報を得ることができる。
Wiresharkとtcpdumpの目的は似ているが、それぞれ異なる動作をし、ユースケース(想定される使用例)も異なる。
例えばUI(ユーザーインタフェース)について、WiresharkはGUI(グラフィカルユーザーインタフェース)とCLI(コマンドラインインタフェース)の両方で操作できるが、tcpdumpはCLIでのみ利用できる。
それぞれのツールの特徴を詳しく見ていこう。
Wireshark
Wiresharkはtcpdumpと比較すると、以下の特徴がある。
- 詳細なパケット分析
- 高度なフィルタリング
- GUIの有無
Wiresharkは、レイヤー2(データリンク層)とレイヤー3(ネットワーク層)のヘッダーとペイロード(データから宛先などの制御情報を除いた本体)を区別し、パケットに関する情報をネットワーク管理者に表示する。Wiresharkはリアルタイムでパケットの情報を表示しつつ、キャプチャーしたデータを保存できるため、ネットワーク管理者は後で詳細に分析することが可能になる。ネットワークの規模が大きくなり複雑になるほど、キャプチャーするデータも膨大になる。ネットワーク管理者はWiresharkのフィルタリング機能を利用して効率的にデータを分析できる。
WiresharkはOSの「UNIX」と「Windows」にインストール可能だ。ネットワーク管理者はWiresharkを利用して以下の情報などを得られる。
- 送信元/宛先MACアドレス
- 送信元/宛先IPアドレス
- 送信元/宛先ポート番号
- プロトコル種別
- ペイロード
通信やファイルが暗号化されていない場合、Wiresharkを利用してデータの中身を見ることができるため、メールの宛先や本文、印刷したいファイルなどを確認できる(図1)。
Wiresharkを利用する手順は次の通り。
- Wiresharkを起動する(図2)。
- トラフィックをキャプチャーするインタフェースを選択する。
- キャプチャーフィルターを設定し、結果を必要なプロトコルのみに限定する。
- 「パケットキャプチャを開始します」を選択する。すぐに複数の結果が表示される。過剰な結果を防ぐため、必要以上にキャプチャーを実行しないこと。
- 「パケットキャプチャを停止します」を選択し、キャプチャーを停止する。
- 特定のパケットを選択して詳細を確認する。
WiresharkはGUIで操作できる他、コマンドラインツール「TShirk」が付属している。TShirkによってCLIからWiresharkと同様のパケットキャプチャーや分析が可能となる。
tcpdump
Wiresharkとは異なり、tcpdumpはCLIでのみ利用できるパケットキャプチャーツールであり、コマンドの名前だ。CLIからコマンドとパラメータやオプションによって操作できる。一部のOSにはあらかじめtcpdumpがインストールされている。
特定のインタフェース(ここではeth0)を流れるパケットをキャプチャーし、その結果をファイル(dump.pcap)に保存するには以下のコマンドを使用する(図3)。
$ tcpdump -i eth0 -w dump.pcap
キャプチャーを終了するには、「Ctrl」「C」を同時に入力する。
代表的なオプションは以下の通り。その他、詳細なコマンドはtcpdumpの公式ドキュメントを参照することが望ましい。
- 「-i」
- キャプチャーするインタフェースを指定する。
- 「-D」
- キャプチャー可能なネットワークインタフェースのリストを表示する
- 「port 80」
- ポート番号でキャプチャーをフィルタリングする
- この例ではポート80(HTTP)を使用するトラフィックのみをキャプチャーする
- 「-n」
- IPアドレスをホスト名に変換しない。
- これにより名前解決による遅延を回避し、処理を高速化できる可能性がある。
- 「-w dump.pcap」
- キャプチャーをdump.pcapという名前のファイルに書き込む。
- 「-r dump.pcap」
- dump.pcapという名前のファイルからキャプチャーを読み込む。
次回はWiresharkとtcpdumpのユースケースを解説する。
TechTarget発 世界のインサイト&ベストプラクティス
米国Informa TechTargetの豊富な記事の中から、さまざまな業種や職種に関する動向やビジネスノウハウなどを厳選してお届けします。
Copyright © ITmedia, Inc. All Rights Reserved.