TCPdumpのインストール
1999/8/29
バージョン | TCPdump 3.4 | |
OS | Slackware 3.6 (Linux 2.0.35) | |
ホームページ | http://ita.ee.lbl.gov/ | |
ダウンロード | ftp://ftp.ee.lbl.gov/ |
ネットワーク上に流れるデータのパケットをリアルタイムにモニタリングするツールです。このソフトは、不正パケットを発見するのに強力に役立ちますが、反面、正当なユーザーのアクセスも盗聴できてしまう、危険なソフトにもなり得ます。取り扱いは慎重にしてください。
libpcapのインストール
最初にlibpcap(ftp://ftp.ee.lbl.gov/libpcap.tar.Z)をインストールします。
$ tar xvfz libpcap.tar.Z $ cd libpcap-0.4 $ ./configure $ make $ su # make install # exit
TCPdumpのインストール
tcpdumpをインストールします。
$ tar xvfz tcpdump.tar.Z $ cd tcpdump-3.4 $ ./configure $ make $ su # make install
使い方
TCPdumpはroot権限でしか、実行できません。
eth0に流れる全パケットの内容(最大1000バイト)を表示します。
# tcpdump -x -s 1000 -i eth0
eth0のtelnetポートに流れるパケットの内容を表示します。
# tcpdump -x -s 1000 -i eth0 port telnet
eth0のhttpポートに流れる送信パケットの内容を表示します。
# tcpdump -x -s 1000 -i eth0 src port http
eth0のhttpポートに流れる受信パケットの内容を表示します。
# tcpdump -x -s 1000 -i eth0 dst port http
しかし、これだとパケットの内容は16進数ダンプで表示され、わかりにくいので、簡単なフィルタプログラムをかますことにより、簡単に読める文字列で表示できます。(freebsd-users-jpの記事を参考にしました)
#!/usr/bin/perl while(<>){ if(m/^[ \t]/){ $store .= $_ } else { s/^[^ ]* //; s/:[^:]*$//; print "$_\n"; $_ = $store; s/\s//g; s/^.{120}//; s/[0-9A-Fa-f][0-9A-Fa-f]/pack("C",hex $&)/eg; s/[\x00-\x08\x0a-\x1f\x7f-\xff]/ /g; print "$_\n"; $store = ""; } }
これで、以下のようにします。フィルタを通すときは-lオプションを指定してください。
# tcpdump -x -s 1000 -i eth0 -l | filter.pl