スマホで通信した内容のパケットキャプチャをしたかった。通信経路上に何かを仕込まないといけない。自宅LAN〜てきとうなLinuxマシン〜てきとうなWi-fi AP〜スマホ、みたいな経路を用意して、間に挟まったLinuxマシンに、IPフォワードとかDHCPとかやって、ルータとして振る舞うようにしてやれば、そこでパケットキャプチャすれば良さそう。
…というところまで考えて、そう言えば、自宅LANのルータにEdgeRouter Xを使ってるんだから、絶対ここでもできるでしょう…ということで、その記録。
やることは簡単で、sshで鍵ログインできるようにした上で、EdgeRouter Xのtcpdumpを実行し、その結果をWiresharkで読み込ませる。
$ ssh-keygen -t rsa -b 4096
$ scp ./.ssh/id_rsa.pub USER@192.168.0.1:/tmp # ここではパスワード認証
$ ssh USER@192.168.0.1 # ここではパスワード認証
$ configure
# loadkey USER /tmp/id_rsa.pub
# commit
# save
# exit
$ cd
$ pwd
/home/USER
$ sudo chown -R USER .
$ configure
# set service ssh disable-password-authentication
# commit
# save
Server, Authenticationはよしなに設定すれば良い。
Captureは以下のような感じで。
/usr/sbin/tcpdump -U -w -
ちなみに/usr/sbinはPATH通ってないっぽい。どこかPATHが通っている場所にln -sしても良いかも?
後は煮るなり焼くなり、てきとうに。