at_kazutaka.bito
2023年2月5日 16時12分
Armadilloでネットワーク通信のパケットを確認する方法です。
ここでは、Debianで動作するArmadilloでtsharkを使用します。
1. tsharkをインストール
Armadilloをインターネットに接続可能なネットワークに接続して起動します。
下記コマンドでtsharkをインストールします。
root@armadillo:~# apt-get update
# 上記コマンドでエラーが出る場合は、--allow-releaseinfo-changeオプションを付けた下記コマンドを実行します。
# apt-get --allow-releaseinfo-change update
root@armadillo:~# apt-get install tshark
tsharkのインストール途中で、コンフィギュレーションについて質問されます。
Should non-superusers be able to capture packets?
ここでは「yes」を選択します。
2. tsharkで通信を確認
下記のようにtsharkコマンドを実行すると通信状態がコンソールに表示されます。
root@armadillo:~# tshark
-iオプションを使うとネットワークを指定できます。
例えば、有線LAN(eth0)を指定するには、下記のように実行します。
root@armadillo:~# tshark -i eth0
3. tsharkでパケットキャプチャ
パケットをファイルに保存できます。
例)
保存するファイル名:temp.pcap
300秒分のパケット
フィルタ:"host 192.168.11.112"
上記例の条件でパケットキャプチャするには、下記のように実行します。
root@armadillo:~# tshark -i eth0 -w temp.pcap -b duration:300 -f "host 192.168.11.112"
300秒毎にキャプチャしたパケットがファイルに保存されます。
root@armadillo:~# ls temp*
temp_00001_20230202150850.pcap temp_00002_20230202151350.pcap
ファイルにはpcap形式で保存されています。
テキストに表示するには、-rオプションを使います。
下記はping中のパケットをキャプチャしたファイルの内容です。
root@armadillo:~# tshark -r temp_00001_20230202150850.pcap
Running as user "root" and group "root". This could be dangerous.
1 0.000000000 192.168.11.112 → 192.168.11.111 ICMP 98 Echo (ping) request id=0x0bcc, seq=1/256, ttl=64
2 0.000153250 192.168.11.111 → 192.168.11.112 ICMP 98 Echo (ping) reply id=0x0bcc, seq=1/256, ttl=64 (request in 1)
3 1.002910546 192.168.11.112 → 192.168.11.111 ICMP 98 Echo (ping) request id=0x0bcc, seq=2/512, ttl=64
4 1.003059838 192.168.11.111 → 192.168.11.112 ICMP 98 Echo (ping) reply id=0x0bcc, seq=2/512, ttl=64 (request in 3)
上記以外にもポート指定など、いろんなtsharkの使い方が公開されています。