Darkstat:Linuxで使える簡易トラフィック追跡ツール

 Linuxシステムでのトラフィック解析に関してはntopやvnstatなどの本格的なプログラムを使えば済む話だが、状況によってはネットワーク上のホスト群で交換されるトラフィック量の基本情報だけを簡易的に把握できればいいという場合もあるだろう。そうした用途に適しているのが、バックグラウンドプロセスの1つとして実行されるパケットスニッファのDarkstatという小型プログラムである。その基本機能は、ネットワークの利用状況に関する統計情報を収集して、HTTP経由で表示するというものだ。

 今回私は同プログラムの最新バージョン(darkstat-3.0.707.tar.bz2)をCentOS 5およびFedora 7システムにて試してみた。具体的なインストール操作としては「tar xvjf darkstat-3.0.707.tar.bz2」によるtarボールの展開をしてから、通常の手順に従って「./configure; make; make install」を実行すればいい。Darkstatの起動は次のコマンドで行える。

darkstat -i eth0

 ここで指定したインタフェースに対するパケットチェックはバックグラウンドで実行されるので、本プログラムの起動後、ユーザの操作はシェルに戻される。その際に本プログラムから出力されてくるのは、次のような情報である。

darkstat 3.0.707 (built with libpcap 2.4)
darkstat (19646): starting up
darkstat (19646): daemonizing to run in the background!
darkstat (19647): I am the main process
darkstat (19647): DNS child has PID 19648
darkstat (19646): parent waiting
darkstat (19647): caplen is 54
darkstat (19648): set uid/gid to 99/99
darkstat (19647): capturing in promiscuous mode
darkstat (19647): listening on 0.0.0.0:667
darkstat (19647): loaded 129 protos
darkstat (19647): loaded 4594 tcp and 4549 udp servs, from total 9158
darkstat (19647): chrooted into: /var/empty
darkstat (19647): set uid/gid to 99/99
darkstat (19647): local_ip update(eth0) = 192.168.0.5
darkstat (19647): entering main loop
darkstat (19646): parent done reading, calling waitpid
darkstat (19646): waitpid ret 0, status is 3

 この3行目を見ると、Darkstat自身がサービスの1つとして起動され自動的にデーモンとされていることが確認できる。同じく4行目を見るとそのPIDが表示されているので、本プログラムに対する終了操作は「kill -9 19647」という指定で行えるが、あるいは「killall darkstat」としてもよい。

 Darkstatの収集した情報は通常のブラウザ(http://server:667)で閲覧できるが、そのデータ出力には独自の組み込み式Webサーバが使われている。なお10行目にある「listening on 0.0.0.0:667」はブラウザ用の接続ポートが667であることを示しているが、-pオプションによる指定で他のポートに変更することもできる。

 また-lスイッチは、入出力トラフィック量をグラフ化するローカルネットワークをnetwork/netmaskという構文によって指定するためのオプションで、同じく-fはパケットのフィルタリング指定用オプションである。これらのオプションは次の形式で指定すればいい。

darkstat -i eth0 -l 192.168.0.0/255.255.255.0 -f "port 22"

 この設定例ではポート22を使用するSSH用ネットワークのパケットフィルタリングが指定されており、これにより得られる出力を見ればSSHプロトコルを使用中のマシンが特定できるはずである。なおこのフィルタリング構文はtcpdumpをベースとしているので、詳細については同ツールの付属ドキュメントを参照して頂きたい。

 Darkstatはあくまで簡易ツールなので、過剰な期待をするのは禁物である。例えばGraphsページに表示されるのは4つの簡易グラフと基本的な情報だけであり、その有用度は決して高いとは言えない。ただしグラフのバーにマウスポインタを重ねると、当該バーの示す入出力バイト量が表示されるようにはなっている。同じくHostsページに表示されるのは、ネットワーク上の全ホストに割り当てられたIPおよびMACアドレスとその入出力パケット数である。このIPアドレスの部分をクリックすると、当該ホストの開いているポートや使用中のプロトコルといった詳細情報が表示される。なお、In、Out、Total列は降順にしか表示できない。

 その他、Darkstatからブラウザに出力される情報は自動でリロードされないため、最新情報に更新させるには、ユーザが手作業でページを再読込させるしかない。とは言うもののDarkstatが、LANを流れるトラフィックの基本情報を分かりやすい形態で出力してくれることに間違いはない。トラフィックの簡易情報を手軽に確認したいという用途であれば、これで充分なはずだ。

Sergio Gonzalez Duranは、Linux管理者、システム開発者、ネットワークセキュリティカウンセラとして活動する傍ら、Linux関連の講座を担当し、またスペイン語ベースのLinux/オープンソースWebサイト(linuxtotal.com.mx)も運営している。

Linux.com 原文