■tcpdumpって何?
・tcpdumpは、CUIで動作するパケットキャプチャである
・リアルタイムなパケットの表示、ファイルへの記録・読み込みなどの機能を持つ
■tcpdumpの書式
# tcpdump [ オプション ] [ 条件式 ]
■tcpdumpのオプション
・-c < パケット数 >
指定された数のパケットをキャプチャしたら終了
・-F < ファイル >
フィルタ条件式を指定されたファイルから読み取る
コマンドラインでの条件式を無視
・-i < インタフェース >
指定したインタフェースのパケットをキャプチャ
・-n
出力においてホスト名の解決をしない(ホスト名をIPアドレスのまま表示)
※ホスト名の解決のために余計なパケットが流れてしまうため、リアルタイムで
解析結果を表示する場合は、通常このオプションを指定する
・-r < ファイル >
パケットを指定したファイルから読み取る
・-s < サイズ >
各パケットをキャプチャするサイズを指定
デフォルトは96バイト
・-w < ファイル >
パケットを指定したファイルから記録
■tcpdumpの条件式
・ether src < MACアドレス >
送信元MACアドレスを指定
・ether dst < MACアドレス >
送信先MACアドレスを指定
・ether host < MACアドレス >
送信元MACアドレスまたは送信先MACアドレスを指定
・src host < ホスト >
送信元ホストを指定
・dst host < ホスト >
送信先ホストを指定
・host < ホスト >
送信元ホストまたは送信先ホストを指定
・scr port < ポート >
送信元ポート(ポート名またはポート番号)を指定
※ポートを指定すると、指定したポート以外のパケットやポート番号を持たない
パケット(例えばICMP)は表示されなくなる
・dst port < ポート >
送信先ポート(ポート名またはポート番号)を指定
・port < ポート >
送信元ポートまたは送信先ポートを指定
・tcp
TCPパケットを選択
・udp
UDPパケットを選択
・icmp
ICMPパケットを選択
・arp
ARPパケットを選択
・ip proto [ protocol ]
「ip proto」キーワードを使った式を指定することで、プロトコルを指定できる
[ protocol ]には、プロトコル番号か、"icmp"、"tgrp”、"udp"、"nd"、"tcp"のいずれか
を指定できる
※icmp、udp、tcpについては、キーワードとして使われている為、先頭にバックス
ラッシュをつけてエスケープする必要がある
※引数をシングルクォーテーションで囲まない場合は、シェルが介在するために、2
つのバックスラッシュでエスケープする必要がある
・ether proto [ protocol ]
[ protocol ]には、プロトコル番号か、ip、ip6、arp、rarpのいずれかを指定できる
ip、ip6、arp、rarpは、キーワードとして使われているため、先頭にバックスラッシュ
を付けてエスケープする必要がある
引数をシングルクォーテーションで囲まない場合は、シェルが介在するため、2つの
バックスラッシュでエスケープする必要がある
逆に指定したプロトコルを指定したくない場合は、キーワードの先頭に「!」「not」
を付ける
・proto [ exor : size ]
パケット中のデータによる条件式を指定することができる
※これにより、パケット中のフィールドやフラグに対して条件付けすることができる
※protoには、ether、fddi、arp、rarp、ip、tcp、udp、icmp、ip6のいずれかを指定
できる
■tcpdump利用による特定マシン間のパケットキャプチャ
例 >> 「IPアドレス 192.168.1.1 と 192.168.1.7 のマシン間のパケットキャプチャ」
# tcpdump -n -i eth0 host 192.168.1.1 and host 192.168.1.7
0コメント