Wireshark

提供: ArchWiki
ナビゲーションに移動 検索に移動

Wireshark はフリーでオープンソースのパケットアナライザです。ネットワークのトラブルシューティングや解析、ソフトウェアと通信プロトコルの開発、または教育などに使われています。

インストール

Wireshark GUI の場合は wireshark-qt パッケージをインストールし、tshark(1) CLIの場合は wireshark-cliインストールします。

ノート: 非推奨の GTK インターフェースは Wireshark 3.0 で削除されました。

termshark は代替のターミナル UI です。

特権の取得

Wireshark を root で実行しないでください。Wireshark は特権分離を実装しています。つまり、Wireshark GUI(または tshark CLI)は通常のユーザとして動作し、dumpcap キャプチャユーティリティは root[1] として動作します。

wireshark-cli インストールスクリプト は、/usr/bin/dumpcap 実行ファイルにパケットキャプチャケイパビリティを設定します。

/usr/bin/dumpcap は root と wireshark グループのメンバーしか実行できないので、通常のユーザーとして Wireshark を使用するには、自分のユーザーを wireshark ユーザーグループに追加する必要があります(ユーザーとグループ#グループ管理 を参照)。

キャプチャのテクニック

フィルターを適用することで Wireshark で見たいパケットだけをキャプチャすることが可能です。

ノート: フィルターの構文については、pcap-filter(7)wireshark-filter(4) の man ページを見て下さい。

TCP パケットを抽出

TCP パケットを全て閲覧したい場合、"Filter" バーに tcp と入力してください。もしくは CLI 版の場合:

$ tshark -f "tcp"

UDP パケットを抽出

UDP パケットを全て閲覧したい場合、"Filter" バーに udp と入力してください。もしくは CLI 版の場合:

$ tshark -f "udp"

特定の IP アドレスのパケットを抽出

  • 特定のアドレスに送信されるトラフィックを全て閲覧したい場合、ip.dst == 1.2.3.4 と入力してください。1.2.3.4 はトラフィックの送信先の IP アドレスに置き換えて下さい。
  • 特定のアドレスから送られたトラフィックを全て閲覧したい場合、ip.src == 1.2.3.4 と入力してください。1.2.3.4 はトラフィックの送信元の IP アドレスに置き換えて下さい。
  • 特定のアドレスから送受信されるトラフィックを全て閲覧したい場合、ip.addr == 1.2.3.4 と入力してください。1.2.3.4 は適当な IP アドレスに置き換えて下さい。

特定の IP アドレスのパケットを除外

ip.addr != 1.2.3.4

LAN へのパケットを抽出

LAN トラフィックのみを表示し、インターネットトラフィックを表示しないようにするには、以下のように実行します。

(ip.src==10.0.0/8 AND ip.dst==10.0.0/8) OR (ip.src==172.16.0.0/12 AND ip.dst==172.16.0.0/12) OR (ip.src==192.168.0.0/16 and ip.dst==192.168.0.0/16)

これにより、任意のフライベートネットワークスペース内のトラフィックが抽出フィルタされます。

ポート毎にパケットを抽出

2 つ以上のポートのすべてのトラフィックを表示:

tcp.port==80||tcp.port==3306
tcp.port==80||tcp.port==3306||tcp.port==443

dumpcap によるヘッドレスキャプチャ

dumpcap は Wireshark の一部であり、GUI を使用せずにパケットをキャプチャするために使用できます。 tmux と組み合わせて使用​​すると、切り離されたセッションでパケットをキャプチャできるようになります。

すべての dumpcap オプションを表示するには、-h フラグを使用します。

次の例では、リングバッファのキャプチャを提供します。それぞれ 100MB の 20 個の .pcap ファイルをキャプチャし、最も古いファイルを 21 番目のファイルに置き換えるというように続きます。これにより、ディスク容量を使い果たすことなく継続的にキャプチャを行うことができます。

# dumpcap -i 1 -b filesize:100000 -b files:20 -w mycapture.pcapng
  • -i − interface number (listed from dumpcap -D)
  • -b filesize: − file size in kB before starting a new .pcap file
  • -b files: − the number of files to capture before overwriting the oldest
  • -w − write the output to the file mycaptureidentifier.pcapng