セキュリティの入口、ファイアウォール(FW)。「通信を止めるもの」という理解から一歩踏み込んで、仕組みを整理します。
ファイアウォールの役割
ネットワークの境界に立ち、通信を許可/拒否する「関所」です。ルールに基づいて、通していい通信だけを通し、それ以外を遮断します。内部を外部の脅威から守るのが基本の役割です。
パケットフィルタリング(古典的な方式)
パケットのヘッダ情報(送信元/宛先IP、ポート、プロトコル)を見て、ルールで許可/拒否します。
許可: 送信元any → 宛先Webサーバ:443
拒否: それ以外
シンプルで速いですが、1パケットずつ独立して判断するため、「行きは許可したが、戻りをどう扱うか」を別途ルールで書く必要があり、管理が煩雑でした。
ステートフルインスペクション(現在の主流)
通信の状態(セッション)を記憶する方式です。
- 内部から出た通信を覚えておき、その戻り通信は自動で許可する
- 覚えのない、いきなり外から入ってくる通信は拒否
これにより、「行きを許可すれば戻りは自動」となり、ルールがシンプルかつ安全になります。今のFWはこれが基本です。AWSのセキュリティグループも、この「ステートフル」の考え方です。
ルール設計の基本
- デフォルト拒否(ホワイトリスト): 基本すべて拒否し、必要な通信だけ許可する。これがセキュリティの原則。
- 具体的なルールを上、広いルールを下(評価順を意識)
- 不要になったルールは削除(穴を残さない)
通信の向きと最小権限
- 内→外、外→内、それぞれ必要な通信だけを許可
- 「とりあえず全部許可」は絶対に避ける(最小権限の原則)
まとめ
ファイアウォールは、通信の状態を覚えるステートフルインスペクションが主流で、「行きを許可すれば戻りは自動、それ以外は拒否」が基本動作です。設計はデフォルト拒否+必要な通信だけ許可が鉄則。ここを押さえると、FWの設定もクラウドのSGも同じ発想で読めるようになります。