2011年12月18日日曜日

キャプチャデータを一定時間ごとにファイルへ保存(tshark, tcpdump)

キャプチャデータを、指定した時間間隔ごとに複数のファイルに出力するオプションを試してみた。

環境は、CentOS-6.0, libpcap-1.0.0, tshark-1.2.15, tcpdump-4.1-PRE-CVS。


tshark の場合

'-b <capture ring buffer option>' というオプションの値として 'duration:秒数' を指定する。

# tshark -i eth0 -b duration:3 -w tshark.pcap

上のコマンドを実行した場合、次のようにファイルが生成されていく。

# ls tshark*
tshark_00001_20111218215216.pcap
tshark_00001_20111218215219.pcap
tshark_00001_20111218215222.pcap

tcpdump の場合

'-G rotate_seconds' というオプションを使用する。それと同時に、

  • ファイル名('-w'オプション)に 'strftime' の書式文字列を含める必要がある
  • '-Z'オプションに 'root' を指定する必要がある(場合によってはセキュリティの問題につながるかもしれないので、一般ユーザーで sudo して '-Z user01' のようにしたほうがいいと思われる)
# tcpdump -i eth0 -G 3 -Z root -w tcpdump_%Y%m%d%H%M%S.pcap

上のコマンドを実行した場合、次のようにファイルが生成されていく。

# ls tcpdump*
tcpdump_20111218220740.pcap
tcpdump_20111218220743.pcap
tcpdump_20111218220746.pcap

sudoの設定をして、一般ユーザーで実行することもできる(たとえば user01 とする)。

$ sudo tcpdump -i eth0 -G 3 -Z user01 -w tcpdump_%Y%m%d%H%M%S.pcap
$ ls -l tcpdump*
-rw-r--r-- 1 user01 user01 480 Dec 18 23:01 tcpdump_20111218230115.pcap
-rw-r--r-- 1 user01 user01 480 Dec 18 23:01 tcpdump_20111218230118.pcap
-rw-r--r-- 1 user01 user01 480 Dec 18 23:01 tcpdump_20111218230121.pcap

0 件のコメント:

コメントを投稿