lightning-dissectorを入れてlightningのpacketをキャプチャする
リポジトリ
1. Lua5.2を入れる
code: lua install
sudo apt install lua5.2 liblua5.2-dev
2. libpcreを入れる
code: libpcre install
sudo apt install libpcre3-dev
lua とまとめて入れてもいいはず。
3. luarocksを入れる
githubではmake方法も書いてたけど、今回はosがubuntuだったのでapt installでインストールできた
code: luarocks install
sudo apt install luarocks
4. tsharkをインストール
code: tshark install
sudo apt install tshark
5. tshakの実行をroot以外のユーザにも許可する
注意として、install 時に表示される質問に"YES"を選択している必要がある。
自分の環境ではこれだけでは、ubuntuユーザでeth0をキャプチャできなかった。
次のコードを実行したらubuntuでもeth0をキャプチャできる様になった。
code: thark support general user
$ sudo setcap 'CAP_NET_RAW+eip CAP_NET_ADMIN+eip' /usr/bin/dumpcap
$ sudo usermod -aG wireshark ubuntu
6. lightning-dissectorをmakeする
ここからは、githubのREADME.mdに書かれている内容をそのまま実行。
code: make lightning-dissector
cd lightning-dissector
luarocks --local make
7. wiresharkのpluginとして登録
code: register plugin
mkdir -p ~/.config/wireshark/plugins
ln -s ~/.luarocks/share/lua/5.2/lightning-dissector/wireshark-plugin.lua ~/.config/wireshark/plugins/lightning-dissector.lua
8. lightning-dissectorをサポートしたc-lightningを入れる。
code: c-lightning patched lightning-dissector support
cd lightning
./configure --enable-dissector
make -j
sudo make install
9. tsharkでlightningのpacketをキャプチャする
dumpcapはキャプチャファイル溜め込む場所を分けたかったので作った。なのでなくても問題ない。
lightningはport 9735(default port)で動作させてるので、9735のみをキャプチャ対象にして起動している。
code: tshark capture
mkdir dumpcap
sudo chown root:root dumpcap
cd dumpcap
sudo tshark -i eth0 -j "tcp port 9735" -w test.cap
10. c-lightningでchannel open ~ 送金 ~ channel closeなどをする
tsharkの実行とは別のterminalで実行する必要がある。
11. tsharkでpacket解析する。
CTL+cしてキャプチャを停止する
9のコマンドではキャプチャ内容をファイルに書き出しているので、そのファイルをtsharkで読み込んで解析する。コマンドは次の通り
code: tshark analyse lightning protocol
tshark -r test.cap -Y lightning -T json