WiresharkのPermissionエラーの対応(iPhoneのパケットをキャプチャしたい場合)
動機
iOSアプリを開発中、サーバーからレスポンスが来ないのでパケットをキャプチャするためにWiresharkを使ったのですが、 その時にPermissionエラーが発生したのでその対応策を残しておきます。
前提
下記サイトで、Macに接続したパケットを取得するための設定を行っていること。 qiita.com
事象
Wiresharkのキャプチャオプションで 「rvi0」のネットワークインターフェースを選択した際に、エラーが発生。
デバイスにキャプチャを取るための権限が無いと言っているので、権限を与えてやりましょう。
手順
1. 次のコマンドを入力する
cd /dev ls -la | grep bp
ユーザー名とグループ名がユーザー自身ではないことを確認します。
※ちなみにbpとはbpf(Berkeley Packet Filter)のことで、キャプチャしたパケットをフィルタリングするものです。 (自分も詳しくないので興味がある方は、「linux bpf」とかでググってみてください)
2. bpfの所有権のユーザー名を自分自身に、グループ名をadminにします。
sudo chown uematsu:admin bp*
3. 所有権が変更されていることを確認します。
ls -la | grep bp
これで権限の変更は終了です。 再度Wiresharkのキャプチャオプションで 「rvi0」を選択してみてください。 パケットがキャプチャできるはずです。