ブログ

Armadillo:ネットワーク通信のパケットを確認する(Debian:tsharkを使用)

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の使い方が公開されています。