Wireshark

提供: ArchWiki
移動先: 案内検索

Wireshark はフリーでオープンソースのパケットアナライザです。ネットワークのトラブルシューティングや解析、ソフトウェアと通信プロトコルの開発、または教育などに使われています。元の名前は Ethereal で、2006年5月に商標の問題を回避するために Wireshark にプロジェクトの名前が変更されました。

インストール

wireshark のパッケージは CLI バージョンと GTK と Qt フロントエンドに分割されています。フロントエンドは CLI に依存しています。

警告: Qt フロントエンドは機能が少なくなっており、GTK フロントエンドと比べて安定度が低くなっています。ネットワークインターフェイスを表示するときやモニターモードやパーミッションの有効化で問題が発生する場合、GTK バージョンを使ってみてください。

通常ユーザーでキャプチャ

root で Wireshark を実行するのは危険です。

Arch Linux は Wireshark wiki の方法 にそって権限を分けています。wireshark-cli のインストール時に、install スクリプトによって /usr/bin/dumpcap にケイパビリティが設定されます。

$ getcap /usr/bin/dumpcap
/usr/bin/dumpcap = cap_net_admin,cap_net_raw+eip

/usr/bin/dumpcap だけがパケットをキャプチャできるプロセスになります。/usr/bin/dumpcap は root と wireshark グループのメンバーだけが実行することが可能です。

通常ユーザーでキャプチャする方法は2つあります:

wireshark グループにユーザーを追加

wireshark を通常ユーザーで使うために、ユーザーを wireshark グループに追加します:

# gpasswd -a username wireshark

wireshark を起動する前に次のコマンドを実行することで、ログインしなおすことなくセッションに新しいグループを適用することができます:

$ newgrp wireshark

sudo を使う

sudo を使うことで一時的にグループを wireshark に変更できます。以下の設定をすることで、wheel グループのユーザーが GID が wireshark に設定されたプログラムを実行できるようになります:

%wheel ALL=(:wireshark) /usr/bin/wireshark, /usr/bin/tshark

wireshark は次のコマンドで実行します:

$ sudo -g wireshark wireshark

キャプチャのテクニック

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

ノート: フィルターの構文については、pcap-filter(7) 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 アドレスに置き換えて下さい。