tcpdumpでパケット解析

■tcpdumpコマンドとは

tcpdump

各プロトコルがどのような通信を行うのか調べる場合や、不審な通信が行われていないか等を調べる目的で、I/F上を流れるパケットを採集したいときは、パケットキャプチャツールを利用します。Linux では tcpdump コマンドを使うことでパケットキャプチャを行うことが可能です。tcpdump はユーザ権限で利用できてしまうとセキュリティ上問題があるため、通常 root 権限でのみ実行できます。

また、tcpdumpで採集したファイルはwiresharkやetherrealで開くことが可能です。-wオプションを利用して結果をファイル書き込む場合は.pcap拡張子にしておきましょう。

■コマンド書式

■条件式オプション

tcpdump の書式において、「対象パケットの条件式」部分では以下のような指定を組み合わせて使うことができ、条件に合致したパケットのみが表示されます。条件式を何も書かなかった場合は、すべてのパケットが対象になります。

書式 意味
dst port xx 宛先ポートの指定
src port xx 送信元ポートの指定
host xx.xx.xx.xx 対象ホストを指定
tcp TCPパケットを対象とする。
udp UDPパケットを対象とする。
icmp ICMPパケットを対象とする。
arp ARPパケットを対象とする。
and [条件] かつ [条件]とする。
or [条件] または [条件]とする。

■オプション

書式 意味
-c 指定されたパケット数をキャプチャしたら自動終了。
-i キャプチャ対象のI/Fを指定
-n DNSの名前解決(逆引き)を行わない
-nn ポート番号の変換を行わない(22 -> SSHなど)
-w ファイル名.pcap ファイルにpcap形式で出力する。wiresharkで開く用。
-s 0 キャプチャする1つあたりのパケットサイズを無制限とする。(デフォルトは65535byteまで)

■コマンド使用例

eth0を流れるパケットを50個キャプチャする。

SSHパケットをキャプチャする。

googleのパブリックキャッシュDNS(8.8.8.8)との通信をキャプチャする。

googleのパブリックキャッシュDNS(8.8.8.8)とのICMPパケットをキャプチャする。

yahoo.co.jpへの宛先TCP80番ポートへの通信をキャプチャする。

自分宛のFTPセッション開始の通信をキャプチャする

DNS(53ポート)の通信をファイルに記録する

複数ポートを同時指定し、キャプチャする。

Bookmark this on Google Bookmarks
LINEで送る
Pocket