【ティーシーピーダンプ】

tcpdump とは?

最終更新:
💡 観測する場所と条件を選び、通信の手掛かりを読む

選んだネットワークインターフェースで観測できるパケットを取得・表示するコマンドラインツール。条件で絞り込み、ファイルに保存して後から読むこともできる。ネットワークの全通信や暗号化された本文が必ず見えるわけではない。

📌 このページのポイント
tcpdump:選んだ場所で通信を観測送信元選んだインターフェース通過するパケット宛先取得する条件で絞り込む画面に表示IP・ポートなどファイル保存-w / 後で -r場所・条件・取得漏れ・暗号化を考慮
表示または保存する基本の流れ。通信を止める処理ではない。観測点やフィルターで範囲が変わり、すべての通信や暗号化された本文を読めるとは限らない。
ひよこ ひよこ
通信を止めて調べるコマンドなの?
ペンギン先生 ペンギン先生
通信を遮断するためのコマンドではないよ。選んだ場所で観測できるパケットを取得し、情報を表示するんだ。ネットワーク全体をどこからでも見られるわけではないので、どのインターフェースで取得するかが大切だよ。
ひよこ ひよこ
どうやって使い始めるの?
ペンギン先生 ペンギン先生
まずtcpdump -Dで取得できるインターフェースを確認しよう。Linuxでeth0があり、sudoで必要な権限を得る例なら、sudo tcpdump -i eth0 -n -c 10となるよ。10パケットで終了し、それより前ならCtrl+Cで止められる。必要な権限は環境によるよ。
ひよこ ひよこ
port 80を指定すればHTTPだけ取れる?
ペンギン先生 ペンギン先生
ポート番号だけでは中身のプロトコルを断定できないよ。たとえばtcpdump -i eth0 -n -c 10 'tcp port 80'は、送信元か宛先のTCPポートが80のパケットを選ぶ条件だよ。インターフェースや権限は、先ほどの例と同じく環境に合わせよう。
ひよこ ひよこ
何も出なければ、通信がないと分かる?
ペンギン先生 ペンギン先生
その場所・条件で取れなかっただけかもしれないよ。インターフェースやフィルターが違うこともあるし、OSのバッファ不足で取りこぼす場合もある。取得長の制限で中身が途中までになることもあるので、アプリのログなどと合わせて判断するんだ。
ひよこ ひよこ
ファイルに残して後から調べられる?
ペンギン先生 ペンギン先生
取得時に-w capture.pcapを指定し、後でtcpdump -n -r capture.pcapで読めるよ。-wは通常の解析表示の代わりにファイルへ書き込む指定なんだ。管理する通信や許可された範囲で取得し、機密情報を含む可能性のあるファイルの保管・共有にも気を付けよう。
もっと詳しく知りたい人へ

HTTPSの本文も読める?

通常のキャプチャだけでTLSの暗号化された本文が読めるわけではないよ。IPアドレスやポート、通信の時系列などは手掛かりになる。TLSの復号には対応する解析ツールと適切な秘密情報など、追加の条件が必要だよ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「tcpdump」って出てきたら「観測できるパケットを取得して調べるコマンド」と思えばだいたいOK!
📖 おまけ:英語の意味
「tcpdump」 = TCPなどのパケット情報を出力するツール名
💬 dumpはデータを出力するという意味で使われる語だよ。名前にtcpがあるけれど、UDPやICMPなども扱えるよ。

参考資料

← 用語集にもどる