1. 一般ユーザでパケットキャプチャしたい!
ラズパイで、Wiresharkをrootで実行すると、パケットキャプチャ実行やキャプチャファイルの移動&共有できない...
そこで今回は、ラズパイでWiresharkの権限変更をしました。
(RaspberryPi 3B, Raspbian Strech使用)
2. 初期状態
一般ユーザでwiresharkをターミナル実行すると、無線LANなどInterfaceが表示されませんでした。
3.解決方法
3.1 dumpcapのケーパビリティの設定
pi@raspberrypi:~ $ sudo setcap 'CAP_NET_RAW+eip CAP_NET_ADMIN+eip' /usr/bin/dumpcap
<<コマンドの意味>>
(1)setcap
「set file capabilities」の略で、ファイル機能の設定ができるコマンド
setcap [-q] -v filename [ ... capabilitiesN fileN ]
引用元 : die.net「setcap(8) - Linux man page」
(2)CAP_NET_RAW
RAWソケットとPACKETソケットの使用を許可する
引用元:atmarkIT 第3回 権限を最小化するLinuxカーネルケーパビリティ
(3)CAP_NET_ADMIN
さまざまなネットワークに関係する操作(ルーティングテーブルの変更など)を許可する
引用元:atmarkIT 第3回 権限を最小化するLinuxカーネルケーパビリティ
3.2 setcapで設定したケーパビリティを確認
pi@raspberrypi:~ $ sudo getcap /usr/bin/dumpcap
/usr/bin/dumpcap = cap_net_admin,cap_net_raw+eip
3.3 一般ユーザをWireshark実行グループに追加
私の場合は、ラズパイにwiresharkをインストールした時点で、
「wireshark」というWiresharkの実行権限を持つグループがあったので、
新規でグループは作りませんでした。
pi@raspberrypi:~ $ sudo adduser pi wireshark
3.4 ラズパイ再起動
pi@raspberrypi:~ $ reboot
3.5 wireshark起動
pi@raspberrypi:~ $ wireshark