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

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以外のパケットも扱えるよ
← 用語集にもどる