WiresharkでMQTTパケットを見る¶
Tip
別のLuaプラグインがありましたので追記します。(2014/02/26)
wireshark Generic Dissector からお使いのアーキテクチャに合わせた generic.so をダウンロード
MQTT dissector / decoder for Wireshark からzipをダウンロード。展開すると
mqtt3.1.fdesc
mqtt3.1.wsgd
という二つのファイルが出てきます。
合計3つのファイルをpluginディレクトリに放り込みます。
Ubuntu 13.04、wireshark 1.10.2では /usr/lib/x86_64-linux-gnu/wireshark/libwireshark3/plugins/ でした。
あとは普通にwiresharkを起動すればOKです。
なんかスクリーンショット取れなかったのでさっきのページの画像を拝借。
これでbroker開発が捗りそうですね。
Lua Plugin¶
wiresharkはLuaをpluginとして実行できます。Luaで実装されたMQTT dessectorがありますので、こちらも使えます。軽く使った感じではフラグなど の表示がこっちのほうが見やすいです。
使い方¶
上記githubから mqtt.lua をダウンロードします。その後
% wireshark -X lua_script:mqtt.lua
と実行すればOKです。恒常的に使いたい場合はwiresharkのpluginsディレクト リに入れておくと使ってくれます。
権限問題¶
なお、wiresharkは1.8以上からdefaultでLuaが有効化されてbuildされていま すが、同時にrootユーザーで起動した時にはLuaが無効化されるようになって います。
一般ユーザーでパケットをキャプチャーする場合、Linuxでは以下のように設定します。 参考: Platform-Specific information about capture privileges
% sudo setcap 'CAP_NET_RAW+eip CAP_NET_ADMIN+eip' /usr/bin/dumpcap
- CAP_NET_RAW
RAWソケットとPACKETソケットを使用する権限
- CAP_NET_ADMIN
ネットワーク関連の操作を実行する権限
ですので、必要なければ削ったりしてください。
Comments
comments powered by Disqus