Wireshark
Wireshark はフリーでオープンソースのパケットアナライザです。ネットワークのトラブルシューティングや解析、ソフトウェアと通信プロトコルの開発、または教育などに使われています。
目次
インストール
Wireshark GUI の場合は wireshark-qt パッケージをインストールし、tshark CLIの場合は wireshark-cli をインストールします。
通常ユーザーでキャプチャ
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 アドレスに置き換えて下さい。