How to build Internet Server with Linux

last update: 29 Sep 2004

home |index |previous |next |contents

tcpdumpのインストールと運用



"tcpdump"はネットワークを流れるパケットをすべて取り出し、表示するツールです。

pingを行なったが応答がないなどのネットワークトラブルに際して、 実際にどんなパケットが流れているのか(もしくは流れていないのか)を 手軽に知ることができます。
本来ならばプロトコルアナライザなどの専用機器が必要となりますが、 そのような大がかりな調査をするまえに、 tcpdumpを使って簡単な調査を行なうことができます。
7.1 ソフトの入手
"tcpdump"と"libpcap"を入手します。以下のサイトから入手できます:

ftp://ftp.ee.lbl.gov/tcpdump.tar.Z
ftp://ftp.ee.lbl.gov/libpcap.tar.Z

7.2 インストール

    7.2.1 libpcapのインストール

    始めにlibpcapをインストールします。 ファイルを展開するディレクトリ$Workに移動して、バイナリパッケージを展開します。 作業ディレクトリ$Workは任意のディレクトリです。
    次に作成されたディレクトリに移動してください。
      % cd $Work
      % zcat libpcap.tar.Z | tar xvf -
      % cd ./libpcap-0.4

    下記の手順でインストールします。
      % ./configure
      % make
      % su
      passwd:*****
      % make install
      % ldconfig

    7.2.2 tcpdumpのインストール

    次にtcpdumpをインストールします。 ファイルを展開するディレクトリ$Workに移動して、バイナリパッケージを展開します。 作業ディレクトリ$Workは任意のディレクトリです。
    次に作成されたディレクトリに移動してください。
      % cd $Work
      % zcat tcpdump.tar.Z | tar xvf -
      % cd ./tcpdump-3.4

    下記の手順でインストールします。
      % ./configure
      % make
      % su
      passwd:*****
      % make install

    このディレクトリには tcpdumpの出力を整形して表示する簡単なawkスクリプトが用意されているので、 /usr/local/bin以下にコピーしておくと良いでしょう。
      % cp *awk /usr/local/bin

7.3 運用
tcpdumpはrootしか使用できません。

例えば以下のようにすることで、マシンの接続されたネットワークのパケットを ダンプしたものが刻々と表示されます。

    % tcpdump -l -s 1600 -x

やってみるとわかりますが、パケット内容の表示は16進数です。

これらの16進数を可読なデータに変換するフィルタはPerlを使えば簡単に作れます。

システム管理に取り組むのであればPerlでそのようなフィルタは書けて当たり前ですので、 tcpdumpは盗聴の道具にもなる危険なツールであるということを鑑み、 あえてフィルタソフトの公開は見送りました。

注: スキルのあるユーザの場合はいわれるまでもなく自分で作るでしょうから、 あくまで初心者への配慮です。
私見ですが、未熟なユーザの使用に対して敷居を設けておくことは必要と考えます。


home |index |previous |next |contents


since 04/Oct/2004