社外活動

2016/08/20

■tcpdumpって何?

・tcpdumpは、CUIで動作するパケットキャプチャである

・リアルタイムなパケットの表示、ファイルへの記録・読み込みなどの機能を持つ

study_28

 

■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