tcpdump

提供: Wikiducca
2011年10月14日 (金) 02:23時点におけるYosuke (ノート | 投稿記録)による版

移動: 案内検索

パケットキャプチャ定番コマンドtcpdump の使い方。

コマンドライン

# tcpdump <条件式>

条件式には,type,dir,proto が指定できる。


type

対象にするパケットの種類を指定する。タイプで指定できるのは、

  • host(ホスト)
  • net(ネットワーク)
  • port(ポート)

の3種類。
例:"host hogehoge"、"port 80" など


dir

通信の方向を特定する。方向として指定できるのは

  • src(ソースアドレス)
  • dst(ディスティネーションアドレス)
  • src or dst
  • src and dst

の4種類。dir修飾子がない場合は、「src or dst」が指定されたものと見なされる


proto

プロトコルを特定する。プロトコルとして利用可能なのは、

  • ether
  • fddi
  • mopdl
  • ip
  • ip6
  • arp
  • rarp
  • decnet
  • lat
  • sca
  • moprc
  • icmp
  • icmp6
  • tcp
  • udp

の15種類。proto修飾子がない場合は、(type修飾子と矛盾しない範囲で)すべてのプロトコルが指定されたものと見なされる。

上記の修飾子で構成された条件を演算子「and」「or」「not」でつなぐことで、複雑な条件を指定することが可能である。


使用例

基本編

tcpのパケットを監視する場合

# tcpdump tcp

udpのパケットを監視する場合

# tcpdump udp

IPv6のパケットを監視する場合

# tcpdump ip6

ICMPv6のパケットを監視する場合

# tcpdump icmp6

RTPのパケットを監視する場合

# tcpdump -T rtp

RTCPのパケットを監視する場合

# tcpdump -T rtcp

80番のポートを監視する場合

#tcpdump port 80

SSH以外のポートを監視する場合

#tcpdump port not ssh

送信アドレスが192.168.0.1のものを監視する場合

# tcpdump src host 192.168.0.1


応用編

IPアドレス192.168.0.100に関する80/TCPのパケットを監視する場合

# tcpdump tcp port 80 and host 192.168.0.100

宛先が192.168.0.100に関する80/TCPのパケットを監視する場合

# tcpdump tcp port 80 and host dst 192.168.0.100

IPv6で5004/UDPのパケットを監視する場合

#tcpdump ip6 and udp and port 5004

IPv6でTCPとUDPのパケットを監視する場合

#tcpdump ip6 and \(udp or tcp\)

IPv6でTCPと5004/UDPのパケットを監視する場合

#tcpdump ip6 and \(\(udp and port 5004 \) or tcp\)

LAN(192.168.1.0/24)内のtcpによるやりとりを監視する場合

tcpdump tcp and \(src and dst net 192.168.1.0/24\)

LAN(192.168.1.0/24)の外から中に入っているパケットを監視する場合

tcpdump \(src net not 192.168.1.0/24\) and \(dst net 192.168.1.0/24\)


オプション一覧

-F file 条件式を file から読み込む。条件をあらかじめファイルに記述しておけば、毎回条件を記述する手間を減らせる。
-n アドレスを名前に変換しない。これは IP アドレスだけでなく、ポート番号なども数字のまま出力する。
-i interface 複数のインターフェースを使用している際はこれで指定する事が出来る。
-r file これは前もって -w オプションなどで作成したファイルからパケットを読み込む。Snort もこの -r オプションで読み込み可能なファイルを作成することができる。
-w file ネットワークに流れるパケットをそのままファイルに保存する。このログを読むためには-r オプションを使用する。
-x パケットの中身を 16 進数で表示する。
-X パケットの中身を ASCII で表示する。16 進数も同時に表示する。暗号化されていない通信ならば、このオプションでほぼ全ての内容が見れる。
-T rtp (Real-Time Applications protocol)
-s ダンプするデータ長を指定する。デフォルトは64byte(ethヘッダ除く)パケットを全部みたい場合は1500などにすると良い(ethernetの場合)。MTUサイズより大きくすればパケット丸ごと取れる)