「Wireshark」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(→‎キャプチャのテクニック: 英語版より記事を追加)
(5人の利用者による、間の11版が非表示)
3行目: 3行目:
 
[[en:Wireshark]]
 
[[en:Wireshark]]
 
[[fr:Wireshark]]
 
[[fr:Wireshark]]
  +
[[ru:Wireshark]]
Wireshark はフリーでオープンソースのパケットアナライザです。ネットワークのトラブルシューティングや解析、ソフトウェアと通信プロトコルの開発、または教育などに使われています。元の名前は Ethereal で、2006年5月に商標の問題を回避するために Wireshark にプロジェクトの名前が変更されました。
 
  +
[[zh-hans:Wireshark]]
  +
Wireshark はフリーでオープンソースのパケットアナライザです。ネットワークのトラブルシューティングや解析、ソフトウェアと通信プロトコルの開発、または教育などに使われています。
   
 
==インストール==
 
==インストール==
   
  +
Wireshark GUI の場合は {{Pkg|wireshark-qt}} パッケージを[[インストール]]し、tshark CLIの場合は {{Pkg|wireshark-cli}} を[[インストール]]します。
wireshark のパッケージは CLI バージョンと GTK と Qt フロントエンドに分割されています。フロントエンドは CLI に依存しています。
 
   
  +
== 特権の取得 ==
CLI バージョンは[[公式リポジトリ]]の {{Pkg|wireshark-cli}} パッケージで[[インストール]]できます。
 
   
  +
Wireshark を root で実行しないでください。Wireshark は特権分離を実装しています。つまり、Wireshark GUI(または tshark CLI)は通常のユーザとして動作し、dumpcap キャプチャユーティリティは root[https://gitlab.com/wireshark/wireshark/-/wikis/CaptureSetup/CapturePrivileges#most-unixes] として動作します。
GTK フロントエンドは[[公式リポジトリ]]の {{Pkg|wireshark-gtk}} パッケージで[[インストール]]できます。
 
   
  +
{{Pkg|wireshark-cli}} [[PKGBUILD#install|インストールスクリプト]] は、{{ic|/usr/bin/dumpcap}} 実行ファイルにパケットキャプチャ[[ケイパビリティ]]を設定します。
Qt フロントエンドは[[公式リポジトリ]]の {{Pkg|wireshark-qt}} パッケージで[[インストール]]できます。
 
   
  +
{{ic|/usr/bin/dumpcap}} は root と {{ic|wireshark}} グループのメンバーしか実行できないので、通常のユーザーとして Wireshark を使用するには、自分のユーザーを wireshark [[ユーザーとグループ#グループ管理|ユーザーグループ]]に追加する必要があります([[ユーザーとグループ#グループ管理]] を参照)。
== 通常ユーザーでキャプチャ ==
 
   
  +
==キャプチャのテクニック==
root で Wireshark を実行するのは危険です。
 
   
  +
フィルターを適用することで Wireshark で見たいパケットだけをキャプチャすることが可能です。
Arch Linux は
 
[http://wiki.wireshark.org/CaptureSetup/CapturePrivileges#Other_Linux_based_systems_or_other_installation_methods Wireshark wiki の方法] にそって権限を分けています。{{Pkg|wireshark-cli}} のインストール時に、[[PKGBUILD#install|install スクリプト]]によって {{ic|/usr/bin/dumpcap}} にケイパビリティが設定されます。
 
   
  +
{{Note|フィルターの構文については、{{man|7|pcap-filter}} や {{man|4|wireshark-filter}} の man ページを見て下さい。}}
{{hc|$ getcap /usr/bin/dumpcap|2=
 
/usr/bin/dumpcap = cap_net_admin,cap_net_raw+eip
 
}}
 
   
  +
===TCP パケットを抽出===
{{ic|/usr/bin/dumpcap}} だけがパケットをキャプチャできるプロセスになります。{{ic|/usr/bin/dumpcap}} は root と {{ic|wireshark}} グループのメンバーだけが実行することが可能です。
 
  +
TCP パケットを全て閲覧したい場合、"Filter" バーに {{ic|tcp}} と入力してください。もしくは CLI 版の場合:
  +
$ tshark -f "tcp"
   
  +
===UDP パケットを抽出===
通常ユーザーでキャプチャする方法は2つあります:
 
  +
UDP パケットを全て閲覧したい場合、"Filter" バーに {{ic|udp}} と入力してください。もしくは CLI 版の場合:
=== wireshark グループにユーザーを追加===
 
  +
$ tshark -f "udp"
wireshark を通常ユーザーで使うために、ユーザーを wireshark グループに追加します:
 
   
  +
===特定の IP アドレスのパケットを抽出===
{{bc|# gpasswd -a ''username'' wireshark}}
 
  +
* 特定のアドレスに送信されるトラフィックを全て閲覧したい場合、{{ic|<nowiki>ip.dst == 1.2.3.4</nowiki>}} と入力してください。{{ic|1.2.3.4}} はトラフィックの送信先の IP アドレスに置き換えて下さい。
   
  +
* 特定のアドレスから送られたトラフィックを全て閲覧したい場合、{{ic|<nowiki>ip.src == 1.2.3.4</nowiki>}} と入力してください。{{ic|1.2.3.4}} はトラフィックの送信元の IP アドレスに置き換えて下さい。
wireshark を起動する前に次のコマンドを実行することで、ログインしなおすことなくセッションに新しいグループを適用することができます:
 
{{bc|$ newgrp wireshark}}
 
   
  +
* 特定のアドレスから送受信されるトラフィックを全て閲覧したい場合、{{ic|<nowiki>ip.addr == 1.2.3.4</nowiki>}} と入力してください。{{ic|1.2.3.4}} は適当な IP アドレスに置き換えて下さい。
=== sudo を使う ===
 
[[sudo]] を使うことで一時的にグループを {{ic|wireshark}} に変更できます。以下の設定をすることで、wheel グループのユーザーが GID が wireshark に設定されたプログラムを実行できるようになります:
 
   
  +
=== Exclude packets from a specific IP address ===
{{bc|1=%wheel ALL=(:wireshark) /usr/bin/wireshark, /usr/bin/tshark}}
 
   
  +
ip.addr != 1.2.3.4
wireshark は次のコマンドで実行します:
 
{{bc|$ sudo -g wireshark wireshark}}
 
   
  +
=== Filter packets to LAN ===
==キャプチャのテクニック==
 
   
  +
To only see LAN traffic, no internet traffic run
フィルターを適用することで Wireshark で見たいパケットだけをキャプチャすることが可能です。
 
   
  +
(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)
{{Note|フィルターの構文については、{{ic|pcap-filter(7)}} man ページを見て下さい。}}
 
   
  +
This will filter traffic within any of the private network spaces.
===TCP パケットを抽出===
 
TCP パケットを全て閲覧したい場合、"Filter" バーに {{ic|tcp}} と入力してください。
 
   
===UDP パケットを抽出===
+
=== Filter packets by port ===
UDP パケットを全て閲覧したい場合、"Filter" バーに {{ic|udp}} と入力してください。
 
   
  +
See all traffic on two ports or more:
===特定の IP アドレスのパケットを抽出===
 
* 特定のアドレスに送信されるトラフィックを全て閲覧したい場合、{{ic|<nowiki>ip.dst == 1.2.3.4</nowiki>}} と入力してください。{{ic|1.2.3.4}} はトラフィックの送信先の IP アドレスに置き換えて下さい。
 
   
  +
tcp.port==80||tcp.port==3306
* 特定のアドレスから送られたトラフィックを全て閲覧したい場合、{{ic|<nowiki>ip.src == 1.2.3.4</nowiki>}} と入力してください。{{ic|1.2.3.4}} はトラフィックの送信元の IP アドレスに置き換えて下さい。
 
  +
tcp.port==80||tcp.port==3306||tcp.port==443
 
* 特定のアドレスから送受信されるトラフィックを全て閲覧したい場合、{{ic|<nowiki>ip.addr == 1.2.3.4</nowiki>}} と入力してください。{{ic|1.2.3.4}} は適当な IP アドレスに置き換えて下さい。
 

2021年1月31日 (日) 15:10時点における版

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

インストール

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

特権の取得

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 アドレスに置き換えて下さい。

Exclude packets from a specific IP address

ip.addr != 1.2.3.4

Filter packets to LAN

To only see LAN traffic, no internet traffic run

(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)

This will filter traffic within any of the private network spaces.

Filter packets by port

See all traffic on two ports or more:

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