tcpdump(ASCII表示:Perl版)

※ネットワーク内を流れるパケットをモニタするソフトです。
 システム開発などをしていて問題が発生した場合、
 原因の切り分けなどに使用します。

※これは、最新版のtcpdumpで、ASCII表示機能を利用
 するためのものです。なお、使用にあたってはPerlが
 インストールしてある必要があります。

【注意】
tcpdumpは、ネットワーク上を流れるデータをみて、
さまざまなテストや開発などに使われる便利なツールです。
作業をより便利にするためのものです。当該作業に携わる方に
限ってご利用ください。

ネットワーク上を流れる個人情報の盗聴などの用途には
絶対に使用しないでください。そのような使用は厳禁です。


【ダウンロード】
以下のサイトより、「tcpdump-3.9.0-096.tar.gz」および「libpcap-0.8.3.tar.gz」を
ダウンロードしてください。

http://www.tcpdump.org/



また、以下のサイトから、「tcpdump2ascii-2.11.tar.gz」を
ダウンロードしてください。
http://www.mirrors.wiretapped.net/security/packet-capture/tcpdump2ascii/


【前準備】
※tcpdumpのコンパイルの前に「libpcap」をインストールする必要があります。
(以下の作業はrootで行ってください)

# cd /usr/src
# gzip -cd libpcap-0.8.3.tar.gz | tar xvf -
# cd libpcap-0.8.3
# ./configure
# make
※本来なら次に「make install」するのですが、
エラーとなる場合は、以下のように手入力で行ってください。
# install -m 444 -o bin -g bin libpcap.a /usr/lib/.
# ranlib /usr/lib/libpcap.a
# install -c -m 444 -o bin -g bin ./pcap.h /usr/include/.
# install -c -m 444 -o bin -g bin ./pcap-namedb.h /usr/include/.
# install -c -m 444 -o bin -g bin ./net/bpf.h /usr/include/net/.


【展開】
(以下の作業はrootで行ってください)
# cd /usr/src
# gzip -cd tcpdump-3.9.0-096.tar.gz | tar xvf -


【コンパイル】
# cd tcpsump-3.9.0-096
# ./configure

ここで、Makefileを修正します。
# vi Makefile
--------------------------------------
「libPW.a」という記述がある場合に限り、
これを「libpwdb.a」と書き換えてください。
検索は「/libPW」と入力します。

通常は「libpcap」になっていると思います。
この場合は、何もしなくて良いです。
--------------------------------------
:wq! で保存終了します。

# make

【インストール】
※本来なら「make install」するのですが、
関係ないところにコピーされてしまうので、手で行ってください。
# install -c -s -m 755 -o root -g root ./tcpdump /usr/sbin/tcpdump

# make install-man (←これはやってもあまり意味がありませんが)

===========================================================

次に、tcpdump2asciiをインストールします。
(以下の作業はrootで行ってください)
# cd /usr/src
# gzip -cd tcpdump2ascii-2.11.tar.gz | tar xvf -
# cd tcpdump2ascii-2.11

ここにはすでに、Perlの実行ファイルが
ありますので、すぐに実行できます。
実行属性は変更してしまいましょう。
# chmod 700 tcpdump2ascii

PATHの効いたところにコピーすれば、起動は
ラクになりますが、セキュリティが落ちます。
# cp tcpdump2ascii /usr/bin/.

セキュリティ上、rootしかアクセスできない
ディレクトリにコピーし、PATHの効いたところには
コピーしない方が安全です。
(わたしは、このままここで作業しています。
その場合起動は「./tcpdump2ascii」というぐあいに、
先頭に「./」が必要になります。以下の操作では、
ご自分の環境にあわせて、読み替えてください。)


【起動例】

# tcpdump -l -x -s1600 | ./tcpdump2ascii  で画面に表示されます。
(「-l」は、英小文字の「エル」オプションです。)

もし、ファイルに保存したい場合は、
# tcpdump -s1600 -w (ファイル名)でファイルに保存しておき、

# tcpdump -l -x -r (上で指定したファイル名) |  ./tcpdump2ascii  | more
で見られます。vi等のエディタでもっとゆっくり見たい場合は、
# tcpdump -l -x -r (上で指定したファイル名) |  ./tcpdump2ascii  > result.txt
とすれば、「vi result.txt」で見られます。


なお、ファイヤーウォールなどで、NIC(LANカード)が複数枚挿してある
時は、「-i」オプションで明示的にNICインターフェイスを指定します。
# tcpdump -i eth1 -s1600 〜

ホストを狙いうちにすることもできます。
# tcpdump host (ホスト名またはIPアドレス) -s1600 〜
これをファイルにおとすには
# tcpdump host (ホスト名またはIPアドレス) -w (ファイル名) -s1600 〜

送信元ホストだけを指定するには
# tcpdump src host (ホスト名またはIPアドレス) -s1600 〜

宛先ホストだけを指定するには
# tcpdump dst host (ホスト名またはIPアドレス) -s1600 〜


【停止】
Ctrl+Cで停止します。