Wireshark
Wireshark はフリーでオープンソースのパケットアナライザです。ネットワークのトラブルシューティングや解析、ソフトウェアと通信プロトコルの開発、または教育などに使われています。元の名前は Ethereal で、2006年5月に商標の問題を回避するために Wireshark にプロジェクトの名前が変更されました。
目次
インストール
wireshark のパッケージは CLI バージョンと GTK と Qt フロントエンドに分割されています。フロントエンドは CLI に依存しています。
- CLI バージョン - wireshark-cli パッケージでインストールできます。
- GTK フロントエンド - wireshark-gtk パッケージでインストールできます。
- Qt フロントエンド - wireshark-qt パッケージでインストールできます。
通常ユーザーでキャプチャ
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 で見たいパケットだけをキャプチャすることが可能です。
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 アドレスに置き換えて下さい。