「Wireshark」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(文字列「[[zh-CN:」を「[[zh-hans:」に置換)
(→‎インストール: 序文を更新)
 
(5人の利用者による、間の18版が非表示)
5行目: 5行目:
 
[[ru:Wireshark]]
 
[[ru:Wireshark]]
 
[[zh-hans:Wireshark]]
 
[[zh-hans:Wireshark]]
Wireshark はフリーでオープンソースのパケットアナライザです。ネットワークのトラブルシューティングや解析、ソフトウェアと通信プロトコルの開発、または教育などに使われています。元の名前は Ethereal で、2006年5月に商標の問題を回避するために Wireshark にプロジェクトの名前が変更されました
+
Wireshark はフリーでオープンソースのパケットアナライザです。ネットワークのトラブルシューティングや解析、ソフトウェアと通信プロトコルの開発、または教育などに使われています。
   
 
==インストール==
 
==インストール==
   
  +
Wireshark GUI の場合は {{Pkg|wireshark-qt}} パッケージを[[インストール]]し、{{man|1|tshark}} CLIの場合は {{Pkg|wireshark-cli}} を[[インストール]]します。
wireshark のパッケージは CLI バージョンと GTK と Qt フロントエンドに分割されています。フロントエンドは CLI に依存しています。
 
   
  +
{{Note|非推奨の GTK インターフェースは Wireshark 3.0 で削除されました。}}
{{Warning|Qt フロントエンドは機能が少なくなっており、GTK フロントエンドと比べて安定度が低くなっています。ネットワークインターフェイスを表示するときやモニターモードやパーミッションの有効化で問題が発生する場合、GTK バージョンを使ってみてください。}}
 
   
* CLI バージョン - {{Pkg|wireshark-cli}} パッケージで[[インストール]]きます。
+
{{Pkg|termshark}} は代替のタミナ UI です。
* GTK フロントエンド - {{Pkg|wireshark-gtk}} パッケージで[[インストール]]できます。
 
* Qt フロントエンド - {{Pkg|wireshark-qt}} パッケージで[[インストール]]できます。
 
   
  +
== 特権の取得 ==
== 通常ユーザーでキャプチャ ==
 
   
  +
Wireshark を root で実行しないでください。Wireshark は特権分離を実装しています。つまり、Wireshark GUI(または tshark CLI)は通常のユーザとして動作し、dumpcap キャプチャユーティリティは root[https://gitlab.com/wireshark/wireshark/-/wikis/CaptureSetup/CapturePrivileges#most-unixes] として動作します。
root で Wireshark を実行するのは危険です。
 
   
  +
{{Pkg|wireshark-cli}} [[PKGBUILD#install|インストールスクリプト]] は、{{ic|/usr/bin/dumpcap}} 実行ファイルにパケットキャプチャ[[ケイパビリティ]]を設定します。
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}} にケイパビリティが設定されます。
 
   
  +
{{ic|/usr/bin/dumpcap}} は root と {{ic|wireshark}} グループのメンバーしか実行できないので、通常のユーザーとして Wireshark を使用するには、自分のユーザーを wireshark [[ユーザーとグループ#グループ管理|ユーザーグループ]]に追加する必要があります([[ユーザーとグループ#グループ管理]] を参照)。
{{hc|$ getcap /usr/bin/dumpcap|2=
 
/usr/bin/dumpcap = cap_net_admin,cap_net_raw+eip
 
}}
 
 
{{ic|/usr/bin/dumpcap}} だけがパケットをキャプチャできるプロセスになります。{{ic|/usr/bin/dumpcap}} は root と {{ic|wireshark}} グループのメンバーだけが実行することが可能です。
 
 
通常ユーザーでキャプチャする方法は2つあります:
 
=== wireshark グループにユーザーを追加===
 
wireshark を通常ユーザーで使うために、ユーザーを wireshark グループに追加します:
 
 
{{bc|# gpasswd -a ''username'' wireshark}}
 
 
wireshark を起動する前に次のコマンドを実行することで、ログインしなおすことなくセッションに新しいグループを適用することができます:
 
{{bc|$ newgrp wireshark}}
 
 
=== sudo を使う ===
 
[[sudo]] を使うことで一時的にグループを {{ic|wireshark}} に変更できます。以下の設定をすることで、wheel グループのユーザーが GID が wireshark に設定されたプログラムを実行できるようになります:
 
 
{{bc|1=%wheel ALL=(:wireshark) /usr/bin/wireshark, /usr/bin/tshark}}
 
 
wireshark は次のコマンドで実行します:
 
{{bc|$ sudo -g wireshark wireshark}}
 
   
 
==キャプチャのテクニック==
 
==キャプチャのテクニック==
51行目: 27行目:
 
フィルターを適用することで Wireshark で見たいパケットだけをキャプチャすることが可能です。
 
フィルターを適用することで Wireshark で見たいパケットだけをキャプチャすることが可能です。
   
{{Note|フィルターの構文については、{{ic|pcap-filter(7)}} man ページを見て下さい。}}
+
{{Note|フィルターの構文については、{{man|7|pcap-filter}} や {{man|4|wireshark-filter}} の man ページを見て下さい。}}
   
 
===TCP パケットを抽出===
 
===TCP パケットを抽出===
67行目: 43行目:
   
 
* 特定のアドレスから送受信されるトラフィックを全て閲覧したい場合、{{ic|<nowiki>ip.addr == 1.2.3.4</nowiki>}} と入力してください。{{ic|1.2.3.4}} は適当な IP アドレスに置き換えて下さい。
 
* 特定のアドレスから送受信されるトラフィックを全て閲覧したい場合、{{ic|<nowiki>ip.addr == 1.2.3.4</nowiki>}} と入力してください。{{ic|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 オプションを表示するには、{{ic|-h}} フラグを使用します。
  +
  +
次の例では、リングバッファのキャプチャを提供します。それぞれ 100MB の 20 個の {{ic|.pcap}} ファイルをキャプチャし、最も古いファイルを 21 番目のファイルに置き換えるというように続きます。これにより、ディスク容量を使い果たすことなく継続的にキャプチャを行うことができます。
  +
  +
# dumpcap -i 1 -b filesize:100000 -b files:20 -w ''mycapture''.pcapng
  +
  +
* {{ic|-i}} − interface number (listed from {{ic|dumpcap -D}})
  +
  +
* {{ic|-b filesize:}} − file size in kB before starting a new {{ic|.pcap}} file
  +
  +
* {{ic|-b files:}} − the number of files to capture before overwriting the oldest
  +
  +
* {{ic|-w}} − write the output to the file {{ic|mycapture''identifier''.pcapng}}

2023年7月19日 (水) 10:47時点における最新版

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