iOS
Wireshark

WiresharkのPermissionエラーの対応(iPhoneのパケットをキャプチャしたい場合)

動機

iOSアプリを開発中、サーバーからレスポンスが来ないのでパケットをキャプチャするためにWiresharkを使ったのですが、
その時にPermissionエラーが発生したのでその対応策を残しておきます。

前提

下記サイトで、Macに接続したパケットを取得するための設定を行っていること。
[https://qiita.com/tenten0213/items/345b644e1212ea165ae8:embed:cite]

事象

Wiresharkのキャプチャオプションで 「rvi0」のネットワークインターフェースを選択した際に、エラーが発生。

wireshark1.png

デバイスにキャプチャを取るための権限が無いと言っているので、権限を与えてやりましょう。

手順

1. 次のコマンドを入力する

cd /dev
ls -la | grep bp

ユーザー名とグループ名がユーザー自身ではないことを確認します。

wireshark2.png

※ちなみにbpとはbpf(Berkeley Packet Filter)のことで、キャプチャしたパケットをフィルタリングするものです。
(自分も詳しくないので興味がある方は、「linux bpf」とかでググってみてください)

2. bpfの所有権のユーザー名を自分自身に、グループ名をadminにします。

sudo chown uematsu:admin bp*

3. 所有権が変更されていることを確認します。

ls -la | grep bp

wireshark3.png

これで権限の変更は終了です。
再度Wiresharkのキャプチャオプションで 「rvi0」を選択してみてください。
パケットがキャプチャできるはずです。