0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

リモートマシンのパケットキャプチャをする

Last updated at Posted at 2022-12-24

発端

以前書いたとおり、僕の家のネットワークはミニPCをルーター化して運用しています

ちなみに上記記事でMinisforum N40を買ったと言ってますが、色々あり結局Skynew IN-1も買ってます
最近記事を見たASUSのミニPCも良さそうですね?

で、ルーターが普通にLinuxで動いているのでパケットキャプチャ出来るよね?
となりまして
ということはスマホ-wifi-ルーター-モデムという経路なのでルーター上でパケットキャプチャしたらスマホのパケットキャプチャも出来るよね?
となりました

リモートのパケットを標準出力に出す

標準出力に出せればsshでコマンド流してリモートのパケットをローカルに持ってこれますね?
ルーター上にパケットダンプしたファイルを置いても良いのですが、無駄にストレージ消費するのもね
ルーターだし

man tcpdump

で調べると -w オプションでファイルに保存される模様で -w - なら標準出力に出るようでした

他、 -w オプションの説明に -U オプションでバッファリングしないですぐに書き込むという説明があったので -U オプションも追加します

NICの指定とMACアドレスでのフィルタリングが可能なので、その指定もします
LAN側のNICを出入りするパケットに対してターゲットにしたいスマホのMACアドレスを指定します
IPアドレスでのフィルタリングも出来るようでしたが、IPv4/IPv6混在してるなどがあり、MACアドレスでフィルタリングできるならそちらの方が楽そうなのでMACアドレスでのフィルタリングをします
NICの指定は -i オプションを利用し、MACアドレスでフィルタリングする際は ether host MACアドレス とします
ルーターのLAN側のNICが enp3s0 と認識されており、ターゲットのスマホのMACアドレスが 01:23:45:ab:cd:ef とするとルーター上で実行するtcpdumpのコマンドラインは以下のようになります

sudo tcpdump -U -w - -i enp3s0 ether host 01:23:45:ab:cd:ef

wiresharkで標準入力を解析する

まずはヘルプを確認する

wireshark --help

どうやら -r オプションでファイルを指定できるとの事だけど set the filename to read from (no pipes or stdin!) とあり標準入力は入れられないらしい?
しかし -i オプションで - を指定すると標準入力を解析することができそうでした

標準入力にコマンドの結果を与える際に <(コマンド) という記法が使えます
これを使うと例えばローカルとリモートのdiffなんかも見れますので便利です

diff -u /path/to/file <(ssh remote "cat /path/to/file")

こんな感じでdiff見れるし、なんならリモートAとリモートBのdiffを見るとかも出来ちゃう

wiresharkは -k オプションを利用することで起動後すぐにパケットキャプチャの画面に移る模様

これより、ローカルマシンで実行するwiresharkのコマンドラインは以下のようになります

wireshark -k -i <(リモートのtcpdump)

まとめ

wireshark -k -i <(ssh router "sudo tcpdump -U -w - -i enp3s0 ether host 01:23:45:ab:cd:ef")

(注) .ssh/config の設定で ssh router でルーターにログイン出来るようにしてあります

これでwiresharkが立ち上がり、スマホを操作すると色々パケットが飛んでいることが確認できるようになりました

若干標準エラーに出る出力で邪魔だったので、最終的には以下のように標準エラーを握り潰しました

wireshark -k -i <(ssh router "sudo tcpdump -U -w - -i enp3s0 ether host 01:23:45:ab:cd:ef 2>/dev/null") 2>/dev/null

それでは良いパケットキャプチャライフを

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?