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

tcpdump とは?

💡 ネットワークの会話を盗み聞きする探偵ツール
📌 このページのポイント
tcpdump のパケットキャプチャ 送信元 192.168.1.10 tcpdump がキャプチャ HTTP DNS SSH 宛先 93.184.216.34 画面に表示 リアルタイム監視 ファイルに保存 -w capture.pcap $ sudo tcpdump -i eth0 port 80 -c 10 10 packets captured, 10 packets received
tcpdumpのパケットキャプチャのイメージ
ひよこ ひよこ

tcpdumpって何をするコマンドなの?

ペンギン先生 ペンギン先生

ネットワーク上を流れているパケット(データの小包)をキャッチして中身を見せてくれるコマンドだよ。たとえるなら、道路を走る車を一台ずつ止めて『どこから来てどこへ行くの?何を運んでるの?』って調べる検問所みたいなものだね

ひよこ ひよこ

どうやって使うの?

ペンギン先生 ペンギン先生

`sudo tcpdump -i eth0` で指定したインターフェースの全通信をキャプチャできるよ。でもそれだと大量に流れてくるから、`tcpdump port 80` でHTTP通信だけとか、`tcpdump host 192.168.1.1` で特定のIPだけに絞ることが多いね

ひよこ ひよこ

何がうれしいの?普通にログを見ればいいんじゃないの?

ペンギン先生 ペンギン先生

ログはアプリケーションが『記録しよう』と思ったものしか残らないんだ。tcpdumpは実際にネットワークを流れている生のデータを見るから、『リクエストがサーバーに届いていない』とか『応答が途中で消えている』みたいな、ログだけでは分からない問題が見つかるんだよ

ひよこ ひよこ

キャプチャしたデータを保存できるの?

ペンギン先生 ペンギン先生

`tcpdump -w capture.pcap` でファイルに保存できるよ。pcap形式で保存すると、後からWiresharkというGUIツールで開いてグラフィカルに分析できるんだ。本番サーバーではtcpdumpで素早くキャプチャして、分析は手元のPCでじっくりやるのが定番のワークフローだね

ひよこ ひよこ

セキュリティ的に問題はないの?

ペンギン先生 ペンギン先生

root権限が必要だから誰でも使えるわけじゃないけど、暗号化されていないHTTP通信だとパスワードまで丸見えになることがあるんだ。だからHTTPSが重要なんだよ。逆にセキュリティエンジニアは、不正通信を検知するためにtcpdumpでネットワーク監視することもあるね

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「tcpdump」って出てきたら「ネットワークの通信内容をキャプチャして見るコマンド」と思えればだいたいOK!
📖 おまけ:英語の意味
「TCP Dump」 = TCPの内容を出力する
💬 TCP通信をdump(中身をドバッと出す)するという意味だけど、実際にはUDPやICMPなどTCP以外のパケットも扱えるよ
← 用語集にもどる