パケットキャプチャ① 出力の読み方とフィルタ式
Pro会員限定上級約39分7レッスン
ログやコマンドの結果では推測するしかなかったことも、パケットを見れば事実として分かります。tcpdump の1行を項目ごとに読み、名前解決を止め、host・port・and・not・tcp[tcpflags] のフィルタ式で必要なパケットだけを取り出します。-A で HTTP の中身を読み、キャプチャに含まれる個人情報の扱いまで学びます。
対象者: tcpdump の出力を前にして、どこを見ればよいか分からなかった方 / 障害の証拠をパケットで示したい方
前提知識: TCP の状態遷移を読む 修了程度
この教材を終えると、できるようになること
- tcpdump の TCP・ARP・DNS の行を項目ごとに読み、フラグ(S・S.・.・P.・F.・R)と seq / ack / win / length の意味を説明できるようになる。
- tcpdump の名前解決の動き(ホスト名とポート名)を説明し、-n / -nn で名前解決を止めて数字のまま読めるようになる。
- tcpdump のフィルタ式(host / src / dst / port / net など)の基本を理解し、特定のホストとのやり取りだけを取り出して、返事が無いことを確かめられるようになる。
- and / or / not でフィルタ式を組み合わせ、引用符で囲んで正しく渡し、社内 DNS を経由していない問い合わせを見つけられるようになる。
- tcp[tcpflags] とフラグ定数でパケットを絞り込み、件数を数えて、接続の試みと応答の数を比べられるようになる。
- -A でパケットの中身を ASCII で表示して HTTP のヘッダーを読み、TLS の中身は読めないこと、キャプチャに個人情報が含まれることとその取り扱いを説明できるようになる。
修了後の姿: プロトコルの中身とネットワーク設計を理解し、複雑な障害の根本原因の特定から再発防止の設計まで任せられるエンジニアへ。
Chapter 1パケットを読み、絞り込む
保存されたキャプチャ(mixed.pcap)を読み、フィルタ式で目的のパケットだけを取り出します。
- tcpdump の1行を読む時刻・送信元・宛先・フラグ・番号。1行に通信のすべてが詰まっている約6分(有料会員限定)
- 名前解決を止める(-n と -nn)名前に直すと読みやすい。でも遅く、余計なパケットまで増やす約5分(有料会員限定)
- ホストで絞る(host)見たい相手のパケットだけを取り出すと、無いもの(返事)が見えてくる約5分(有料会員限定)
- 条件を組み合わせる(and / not)「DNS のうち、社内 DNS 以外」のように条件を重ねて、例外を浮かび上がらせる約6分(有料会員限定)
- フラグで絞る(tcp[tcpflags])SYN と SYN-ACK だけを数えれば、接続の試みと成功が一目で分かる約6分(有料会員限定)
- 中身を読む(-A)平文の通信は全部読める。だからこそ、キャプチャの扱いには責任が伴う約6分(有料会員限定)
Chapter 2確認クイズ
tcpdump の読み方とフィルタ式の理解度を確認します。