「なぜ繋がらない?」を可視化せよ!VPCフローログで紐解く、ネットワークの「拒否」という名の門番たち
こんにちは!SREの現場では日々、目に見えないパケットたちと格闘している筆者です。
インフラエンジニアの第一歩を踏み出した皆さん、AWSのVPCを構築していて一度はこんな経験ありませんか?「サブネットを作って、ルートテーブルも設定したはずなのに、なぜか通信が繋がらない……」。
実は、その裏側ではネットワークの「門番」たちが、あなたの知らないところで懸命に通信を遮断しているかもしれません。今回は、そんなネットワークの現場で起きている「拒否(REJECT)」の正体を、VPCフローログを使って解明する方法を一緒に学んでいきましょう!
—
1. ネットワークの「門番」は2人いる
AWSのVPCには、セキュリティを守るための「門番」が2人います。
- セキュリティグループ(SG): サーバー(インスタンス)の入り口を守る「ボディーガード」。
- ネットワークACL(NACL): サブネットの入り口を守る「検問所」。
これらは、特定の条件に合致しないパケットが来ると、問答無用で「お前は通さん!」と門前払い(REJECT)します。この「門前払い」の記録こそが、今回深掘りするVPCフローログの真骨頂です。
郵便配達で例えると…
- セキュリティグループは、皆さんの家の「玄関の鍵」です。特定の知人しか入れませんよね。
- NACLは、マンションの「入り口のオートロック」です。不審者はそもそも建物の中(サブネット)に入れません。
このどちらかで弾かれたパケットは、ログに action=REJECT として刻まれます。
—
2. VPCフローログを有効にして「拒否の記録」を覗こう
では、実際にどのパケットが弾かれているのかを見てみましょう。VPCフローログを有効にすると、ネットワーク上の通信記録がS3やCloudWatch Logsに流し込まれます。
設定のポイント
VPCの画面から「フローログを作成」を選び、以下の設定を意識してみてください。
- フィルタ: 「すべて(All)」を選択しましょう。これで「許可された通信」も「拒否された通信」も全部記録されます。
- ログ形式: デフォルトのままでも良いですが、慣れてきたら
srcaddr(送信元IP)、dstaddr(宛先IP)、dstport(宛先ポート)、action(許可/拒否)が含まれていることを確認してください。
—
3. 「REJECT」を見つけ出す!解析のステップ
ログが貯まり始めたら、次は「不審な動き」を見つける番です。例えば、CloudWatch Logs Insightsを使って、こんなクエリを投げてみましょう。
# REJECTされた通信をポート番号ごとに集計するクエリ
filter action = "REJECT"
| stats count(*) as rejectCount by dstport
| sort rejectCount desc
このクエリを実行すると、「どのポートに対するアクセスが一番拒否されているか」が一目瞭然になります。
なぜこれが重要なのか?
もし、公開していないはずのポート(例えば、外部に公開すべきでない管理用の 22 や 3306 など)に大量の REJECT が発生しているとしたら?それは悪意ある第三者が、あなたのサーバーの隙間を探してドアをノックしまくっている証拠かもしれません。
—
4. 現場で役立つチェックリスト
エンジニアとして、ログから「異常」を検知するための視点をまとめました。
1. 心当たりのない送信元IPはないか?: 全く知らない国や、怪しいIPからの大量アクセスは、攻撃の予兆です。
2. 特定のポートに集中していないか?: 22(SSH)や 3389(RDP)などは、総当たり攻撃(ブルートフォース)の標的になりやすいです。
3. 内側からの拒否はないか?: 意外と見落としがちなのが、サーバーから外部への通信が REJECT されているケースです。これは、セキュリティグループのアウトバウンド設定が厳しすぎることを示唆しています。
—
5. まとめ:ログはネットワークの「健康診断書」
ネットワークのトラブルシューティングは、時として暗闇の中を歩くような心細さがあります。しかし、VPCフローログという「記録」があれば、迷うことはありません。
- まずは、門番(SG/NACL)が誰を弾いているのか知る。
- 次に、その「弾いている理由」が意図したものか確認する。
- 最後に、必要であればルールを修正し、健全な通信経路を確保する。
このサイクルを回すだけで、皆さんのインフラは驚くほど強固で、そしてトラブルに強いものへと進化します。
「繋がらない」とパニックになったときこそ、まずはログを開いてみてください。そこには必ず、ネットワークが語りかけてくる「答え」が隠されていますよ。
それでは、次回のインフラ深掘り記事もお楽しみに!皆さんのクラウド環境が今日も平穏でありますように。
コメント