「tcpdump」の版間の差分

提供: セキュリティ
移動: 案内検索
(ページの作成:「tcpdump は、ネットワークトラフィックをダンプするツールです。 読み方 てぃーしーぴーだんぷ __TOC__ == 概要 == tcpdump は...」)
 
(Daemon がページ「Tcpdump」を「tcpdump」に移動しました)
 
(同じ利用者による、間の1版が非表示)
行24: 行24:
  
 
[[tcpdump]] でダンプしたデータを [[Wireshark]] で読み込むと読みやすいかもしれません。
 
[[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]] で調べて下さい。
 +
<syntaxhighlight lang="bash">
 +
% ifconfig -l
 +
em0 plip0 lo0 tun0
 +
</syntaxhighlight>
 +
 +
ここでは、インターフェースを em0 と仮定して書きます。
 +
 +
 +
tcp のパケットを監視する例です。
 +
 +
<syntaxhighlight lang="bash">
 +
% sudo tcpdump -i em0 tcp
 +
</syntaxhighlight>
 +
 +
実行例は、このとおりです。
 +
 +
<syntaxhighlight lang="bash">
 +
薫% 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
 +
</syntaxhighlight>
 +
 +
ポート80番を監視します。
 +
<syntaxhighlight lang="bash">
 +
sudo tcpdump -i em0 port 80
 +
</syntaxhighlight>
 +
 +
送信元アドレスが 192.168.0.123 のパケットを監視します。
 +
<syntaxhighlight lang="bash">
 +
sudo tcpdump -i em0 src host 192.168.0.123
 +
</syntaxhighlight>
 +
 +
アドレス 192.168.0.123 のポート80/TCP のパケットを監視します。
 +
<syntaxhighlight lang="bash">
 +
sudo tcpdump -i em0 tcp port 80 and src host 192.168.0.123
 +
</syntaxhighlight>
 +
 +
送信先アドレス 192.168.0.123 のポート80/TCP のパケットを監視します。
 +
<syntaxhighlight lang="bash">
 +
sudo tcpdump -i em0 tcp port 80 and dst host 192.168.0.202
 +
</syntaxhighlight>
 +
 +
ファイル tcp_port_80.pcap にダンプする。
 +
<syntaxhighlight lang="bash">
 +
sudo tcpdump -i em0 -w tcp_port_80.pcap tcp port 80 and dst host 192.168.0.202
 +
</syntaxhighlight>
 +
 +
ダンプしたファイルを tcpdump コマンドで読み込み、中身を確認できます。
 +
<syntaxhighlight lang="bash">
 +
tcpdump -r tcp_port_80.pcap
 +
</syntaxhighlight>
 +
 +
<syntaxhighlight lang="bash">
 +
tcpdump -r tcp_port_80.pcap -x -s 1600
 +
</syntaxhighlight>
 +
 +
パケットの中身をASCII表示してみる例です。
 +
<syntaxhighlight lang="bash">
 +
tcpdump -r tcp_port_80.pcap -XX -s 1600
 +
</syntaxhighlight>
  
 
== 関連項目 ==
 
== 関連項目 ==
  
 
* [[Wireshark]]
 
* [[Wireshark]]

2013年3月29日 (金) 17:42時点における最新版

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 で読み込むと読みやすいかもしれません。

使い方

オプション

ここでは、いくつかのオプションを紹介します。 FreeBSDtcpdump コマンドのオプションです。

-i

インターフェースを指定します。

-s 長さ

-x や -X オプションを使うときに、使います。 デフォルトでは、 65535 に設定されています。 パケットの中身を表示するときの長さです。

-n

ホストアドレス、ポート番号などを逆引きせずに数値のまま表示します。

-w ファイル名

tcpdump のパケットキャプチャした情報を「ファイル名」に書き込みます。

-r ファイル名

-w オプションを使って tcpdump のパケットキャプチャしたファイルを tcpdump コマンドに読み込ませるときに、-r オプションを使います。 stdin から読み込む場合には、 - を指定します。

-x

パケットの中身を16進で表示します。

-xx

-x に加えて、リンクレベルヘッダも含めて表示します。

-X

それぞれのパケットのデータを16進とASCIIで表示します。

-XX

-X に加えて、リンクレベルヘッダも含めて表示します。

はじめに

最初に監視するインターフェース(ネットワークアダプタ)を選択します。

UnixOS であれば、 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

関連項目