tcpdump
tcpdump は、ネットワークトラフィックをダンプするツールです。
読み方 てぃーしーぴーだんぷ
目次
概要
tcpdump は、ネットワークトラフィックをダンプするツールです。 http://www.tcpdump.org/
% tcpdump -h tcpdump version 4.1.1 libpcap version 1.1.1 Usage: tcpdump [-aAbdDefIKlLnNOpqRStuUvxX] [ -B size ] [ -c count ] [ -C file_size ] [ -E algo:secret ] [ -F file ] [ -G seconds ] [ -i interface ] [ -M secret ] [ -r file ] [ -s snaplen ] [ -T type ] [ -w file ] [ -W filecount ] [ -y datalinktype ] [ -z command ] [ -Z user ] [ expression ]
tcpdump でダンプしたデータを Wireshark で読み込むと読みやすいかもしれません。
使い方
オプション
ここでは、いくつかのオプションを紹介します。 FreeBSD の tcpdump コマンドのオプションです。
-i
インターフェースを指定します。
-s 長さ
-x や -X オプションを使うときに、使います。 デフォルトでは、 65535 に設定されています。 パケットの中身を表示するときの長さです。
-n
ホストアドレス、ポート番号などを逆引きせずに数値のまま表示します。
-w ファイル名
tcpdump のパケットキャプチャした情報を「ファイル名」に書き込みます。
-r ファイル名
-w オプションを使って tcpdump のパケットキャプチャしたファイルを tcpdump コマンドに読み込ませるときに、-r オプションを使います。 stdin から読み込む場合には、 - を指定します。
-x
パケットの中身を16進で表示します。
-xx
-x に加えて、リンクレベルヘッダも含めて表示します。
-X
それぞれのパケットのデータを16進とASCIIで表示します。
-XX
-X に加えて、リンクレベルヘッダも含めて表示します。
はじめに
最初に監視するインターフェース(ネットワークアダプタ)を選択します。
Unix 系 OS であれば、 ifconfig で調べて下さい。
% ifconfig -l em0 plip0 lo0 tun0
ここでは、インターフェースを em0 と仮定して書きます。
tcp のパケットを監視する例です。
% sudo tcpdump -i em0 tcp
実行例は、このとおりです。
薫% sudo tcpdump -i em0 tcp パスワード: tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on em0, link-type EN10MB (Ethernet), capture size 65535 bytes 01:23:46.924574 IP bsd2.local.ssh > 192.168.0.2.52975: Flags [P.], seq 2108026599:2108 026827, ack 494811042, win 1026, length 228 01:23:46.927061 IP 192.168.0.2.52975 > bsd2.local.ssh: Flags [.], ack 228, win 16425, length 0
ポート80番を監視します。
sudo tcpdump -i em0 port 80
送信元アドレスが 192.168.0.123 のパケットを監視します。
sudo tcpdump -i em0 src host 192.168.0.123
アドレス 192.168.0.123 のポート80/TCP のパケットを監視します。
sudo tcpdump -i em0 tcp port 80 and src host 192.168.0.123
送信先アドレス 192.168.0.123 のポート80/TCP のパケットを監視します。
sudo tcpdump -i em0 tcp port 80 and dst host 192.168.0.202
ファイル tcp_port_80.pcap にダンプする。
sudo tcpdump -i em0 -w tcp_port_80.pcap tcp port 80 and dst host 192.168.0.202
ダンプしたファイルを tcpdump コマンドで読み込み、中身を確認できます。
tcpdump -r tcp_port_80.pcap
tcpdump -r tcp_port_80.pcap -x -s 1600
パケットの中身をASCII表示してみる例です。
tcpdump -r tcp_port_80.pcap -XX -s 1600
関連項目
ツイート