「Wireshark」の版間の差分
(en:Wiresharkへの転送ページ) |
Kusanaginoturugi (トーク | 投稿記録) (→インストール: 序文を更新) |
||
(5人の利用者による、間の21版が非表示) | |||
1行目: | 1行目: | ||
+ | [[Category:セキュリティ]] |
||
− | #redirect[[en:Wireshark]] |
||
+ | [[Category:ネットワーク]] |
||
+ | [[en:Wireshark]] |
||
+ | [[fr:Wireshark]] |
||
+ | [[ru:Wireshark]] |
||
+ | [[zh-hans:Wireshark]] |
||
+ | Wireshark はフリーでオープンソースのパケットアナライザです。ネットワークのトラブルシューティングや解析、ソフトウェアと通信プロトコルの開発、または教育などに使われています。 |
||
+ | |||
+ | ==インストール== |
||
+ | |||
+ | Wireshark GUI の場合は {{Pkg|wireshark-qt}} パッケージを[[インストール]]し、{{man|1|tshark}} CLIの場合は {{Pkg|wireshark-cli}} を[[インストール]]します。 |
||
+ | |||
+ | {{Note|非推奨の GTK インターフェースは Wireshark 3.0 で削除されました。}} |
||
+ | |||
+ | {{Pkg|termshark}} は代替のターミナル UI です。 |
||
+ | |||
+ | == 特権の取得 == |
||
+ | |||
+ | Wireshark を root で実行しないでください。Wireshark は特権分離を実装しています。つまり、Wireshark GUI(または tshark CLI)は通常のユーザとして動作し、dumpcap キャプチャユーティリティは root[https://gitlab.com/wireshark/wireshark/-/wikis/CaptureSetup/CapturePrivileges#most-unixes] として動作します。 |
||
+ | |||
+ | {{Pkg|wireshark-cli}} [[PKGBUILD#install|インストールスクリプト]] は、{{ic|/usr/bin/dumpcap}} 実行ファイルにパケットキャプチャ[[ケイパビリティ]]を設定します。 |
||
+ | |||
+ | {{ic|/usr/bin/dumpcap}} は root と {{ic|wireshark}} グループのメンバーしか実行できないので、通常のユーザーとして Wireshark を使用するには、自分のユーザーを wireshark [[ユーザーとグループ#グループ管理|ユーザーグループ]]に追加する必要があります([[ユーザーとグループ#グループ管理]] を参照)。 |
||
+ | |||
+ | ==キャプチャのテクニック== |
||
+ | |||
+ | フィルターを適用することで Wireshark で見たいパケットだけをキャプチャすることが可能です。 |
||
+ | |||
+ | {{Note|フィルターの構文については、{{man|7|pcap-filter}} や {{man|4|wireshark-filter}} の man ページを見て下さい。}} |
||
+ | |||
+ | ===TCP パケットを抽出=== |
||
+ | TCP パケットを全て閲覧したい場合、"Filter" バーに {{ic|tcp}} と入力してください。もしくは CLI 版の場合: |
||
+ | $ tshark -f "tcp" |
||
+ | |||
+ | ===UDP パケットを抽出=== |
||
+ | UDP パケットを全て閲覧したい場合、"Filter" バーに {{ic|udp}} と入力してください。もしくは CLI 版の場合: |
||
+ | $ tshark -f "udp" |
||
+ | |||
+ | ===特定の IP アドレスのパケットを抽出=== |
||
+ | * 特定のアドレスに送信されるトラフィックを全て閲覧したい場合、{{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 アドレスに置き換えて下さい。 |
||
+ | |||
+ | * 特定のアドレスから送受信されるトラフィックを全て閲覧したい場合、{{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 をインストールします。
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 で見たいパケットだけをキャプチャすることが可能です。
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 fromdumpcap -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 filemycaptureidentifier.pcapng