「Wireshark」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(名前の由来を削除(英語版に追従))
(→‎インストール: 序文を更新)
 
(同じ利用者による、間の12版が非表示)
9行目: 9行目:
 
==インストール==
 
==インストール==
   
wireshark のパッケージは CLI バジョン {{ic|tshark}} と Qt フロントエンド {{ic|wireshark}} に分割されています。フロントエンドは CLI に依存ています。
+
Wireshark GUI場合は {{Pkg|wireshark-qt}} パッケージを[[インストル]]し、{{man|1|tshark}} CLIの場合は {{Pkg|wireshark-cli}} を[[イール]]します。
   
  +
{{Note|非推奨の GTK インターフェースは Wireshark 3.0 で削除されました。}}
* CLI バージョン (tshark) - {{Pkg|wireshark-cli}} パッケージで[[インストール]]できます。
 
* Qt フロントエンド (wireshark) - {{Pkg|wireshark-qt}} パッケージで[[インストール]]できます。
 
   
  +
{{Pkg|termshark}} は代替のターミナル UI です。
== 通常ユーザーでキャプチャ ==
 
   
  +
== 特権の取得 ==
root で Wireshark を実行するのは危険です。
 
   
  +
Wireshark を root で実行しないでください。Wireshark は特権分離を実装しています。つまり、Wireshark GUI(または tshark CLI)は通常のユーザとして動作し、dumpcap キャプチャユーティリティは root[https://gitlab.com/wireshark/wireshark/-/wikis/CaptureSetup/CapturePrivileges#most-unixes] として動作します。
Arch Linux は [https://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}} に[[ケイパビリティ]]が設定されます。
 
   
  +
{{Pkg|wireshark-cli}} [[PKGBUILD#install|インストールスクリプト]] は、{{ic|/usr/bin/dumpcap}} 実行ファイルにパケットキャプチャ[[ケイパビリティ]]を設定します。
{{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}} グループのメンバーだけが実行するとが可能です。
+
{{ic|/usr/bin/dumpcap}} は root と {{ic|wireshark}} グループのメンバーしか実行できないので、通常のユーザーとして Wireshark を使用するには、自分のユーザーを 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}}
 
   
 
==キャプチャのテクニック==
 
==キャプチャのテクニック==
63行目: 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