「tcpdump」の版間の差分
(ページの作成:「tcpdump は、ネットワークトラフィックをダンプするツールです。 読み方 てぃーしーぴーだんぷ __TOC__ == 概要 == tcpdump は...」) |
|||
行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年1月9日 (水) 01:58時点における版
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