ush109rockのブログ

主にiOS/Androidの情報を発信していきます。

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

動機

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

前提

下記サイトで、Macに接続したパケットを取得するための設定を行っていること。 qiita.com

事象

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

f:id:ush109rock:20180420173357p:plain

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

手順

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

cd /dev
ls -la | grep bp

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

f:id:ush109rock:20180420174151p:plain

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

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

sudo chown uematsu:admin bp*

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

ls -la | grep bp

f:id:ush109rock:20180420174220p:plain

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