tcpdump
提供: Wikiducca
パケットキャプチャ定番コマンド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サイズより大きくすればパケット丸ごと取れる) |