コンピューターサイエンス:アルゴリズム / OS / ネットワーク / DB
ファイアウォール基礎
ファイアウォール基礎
このレッスンで分かること
- ファイアウォールは IP/ポート/プロトコル/接続状態でパケットを許可・拒否する仕組み
- ステートフル型が標準で、片方向のルールを書けば応答パケットも自動許可されます
- L7 まで見る WAF と組み合わせ、CDN + EDR + ログ監視で多層防御 (Defense in Depth) を構成するのが鉄則
ファイアウォール基礎 とは
通信を許可・遮断するファイアウォールの基本動作を理解します。本レッスンでは、ファイアウォール基礎 の基本から実際の使いどころまでを整理し、現場で迷わず使える形に落とし込みます。
ファイアウォールとは (要約)
通過するパケットを 検査して許可/拒否 を判断する仕組み。 判断基準は 送信元/宛先 IP・ポート・プロトコル・接続状態。 現代では ステートフル + L7 WAF の組み合わせが標準で、多層防御 (Defense in Depth) で運用します。
L4 ファイアウォール vs L7 WAF 比較
| 観点 | L4 (ステートフル) | L7 (WAF) |
|---|---|---|
| 見るレイヤー | IP / ポート / フラグ | HTTP リクエストの中身 |
| 防げる攻撃 | ポートスキャン、IP 制限違反 | SQL インジェクション、XSS、CSRF |
| 処理コスト | 低 | 高 |
| 設定のしやすさ | 容易 (ルール表) | 複雑 (シグネチャ + チューニング) |
| 代表例 | iptables、AWS Security Group、GCP Firewall Rule | Cloudflare WAF、AWS WAF、ModSecurity |
このレッスンで学ぶこと
不要な通信を遮断し、必要な通信だけを通すファイアウォールの基本動作を学びます。クラウドの「セキュリティグループ」も本質は同じ考え方です。
ファイアウォールとは
ファイアウォールは、通過するパケットを検査して「許可するか拒否するか」を判断する仕組みです。家のルーターから企業のゲートウェイ、クラウド VPC のセキュリティグループまで、形を変えてあちこちに存在します。
判断基準は主に下記です。
- 送信元 IP / 宛先 IP
- 送信元ポート / 宛先ポート
- プロトコル (TCP / UDP / ICMP)
- 接続状態 (新規 / 既存)
パケットフィルタリング型
最も基本的なのがパケットフィルタリング型です。各パケットを単体で見て、ルールに照らして許可/拒否します。
プレーンテキスト
ALLOW 0.0.0.0/0 → 10.0.1.0/24:443 (TCP)
ALLOW 10.0.0.0/16 → 10.0.2.0/24:5432 (TCP)
DENY allルールは上から評価され、最初にマッチしたものが適用されます。最後に「すべて拒否」を置いて、明示的に許可したものだけを通すのがホワイトリスト方式です。
ステートフルファイアウォール
実用上ほぼ標準になっているのが、ステートフルファイアウォールです。コネクションの状態 (接続中 / 切断 / 新規) を覚えていて、片方向だけ許可すれば「その応答パケット」も自動で通します。
たとえば「内側 → 外側の HTTPS 接続は全部許可」と書けば、外側から返ってくる応答パケットは自動で許可されます。一方、外側から内側への新規接続は拒否される、という挙動になります。家庭用ルーターの内蔵ファイアウォールはこの動きです。
戻りパケットは自動で通る
ステートフルファイアウォールの便利さは「片方向だけ書けば良い」ことです。内 → 外 の HTTPS を許可すれば、外 → 内 の応答パケットは自動で許可される。これがなかったら、応答を返すルールも全部手書きで定義する必要があり、運用が破綻します。
アプリケーション層ファイアウォール (WAF)
L7 まで見るタイプを Web Application Firewall (WAF) と呼びます。HTTP の中身を解析して、SQL インジェクション・XSS など特定の攻撃パターンを検出して遮断します。
Cloudflare WAF や AWS WAF、Imperva などがこのカテゴリ。L4 のファイアウォールでは止められない攻撃を防げますが、誤検知のチューニングが必要です。
クラウドのセキュリティグループ
AWS の Security Group や GCP の Firewall Rules、Azure の NSG は、本質的にはステートフルファイアウォールです。EC2 や Compute Engine の手前で、許可するインバウンド / アウトバウンドを定義します。
プレーンテキスト
インバウンド:
TCP 22 from 203.0.113.5/32 (SSH を特定 IP からのみ)
TCP 443 from 0.0.0.0/0 (HTTPS を全世界から)
アウトバウンド:
All (デフォルト)セキュリティグループはインスタンス単位に紐づくので、運用が直感的です。一方、ネットワーク全体に効かせたいルールは Network ACL (ステートレス) を使います。
ファイアウォールが守れないもの
ファイアウォールは強力ですが、下記のような攻撃には別の対策が必要です。
- 許可ポート経由のアプリ脆弱性 — HTTPS (443) は通してしまうので、その上の Web アプリの脆弱性は WAF やコード側で対策する。
- 内部からの情報持ち出し — 内部 → 外部の通信を許可していると、マルウェアが情報を送信できる。Egress 制御や EDR で補完する。
- DDoS — 単純なパケット拒否では大量トラフィックに耐えられない。CDN や DDoS 専用サービス (Cloudflare, AWS Shield) で吸収する。
多層防御 (Defense in Depth)
1 つのファイアウォールにすべてを任せず、ネットワーク境界・ホスト OS の iptables・アプリの認証・WAF・監視/ログなど複数層で守るのが鉄則です。1 層破られても次の層で止まる、という発想で組み立てます。
まとめ
このレッスンの要点は、パケットフィルタ / ステートフル / WAF と多層防御 の 3 点です。実務でこれらを切り分けて説明できるようになると、設計レビューや障害対応の精度が一段上がります。
理解度チェック
Q. ステートフルファイアウォールが「片方向だけルールを書けば応答も通る」理由は?
- すべての TCP は双方向に開かれているから
- コネクションの状態を記憶し、確立済みコネクションの応答パケットを自動で許可するから
- OS のカーネルが自動補完するから
- 外部から来るパケットはすべて自動で許可されるから
答えを見る
正解は 2。ステートフルファイアウォールは TCP コネクションテーブルを保持し、確立済みのコネクションに紐づく応答パケットを自動的に許可します。これにより運用が劇的に簡単になります。
出典 (References)
最終更新: 2026-05-28
関連レッスン
よくある質問
Q. ステートレスなパケットフィルタとステートフルファイアウォールはどう使い分けますか?
A. ステートレスフィルタは高速で、シンプルな IP/ポート制限をネットワーク全体に効かせたいときに使います(AWS Network ACL など)。ステートフルはコネクション状態を追跡するため応答パケットの自動許可が可能で、インスタンス単位の細かい制御に向いています(AWS Security Group など)。通常は両方を組み合わせて多層防御を構成します。
Q. WAF の誤検知が多い場合はどう対処しますか?
A. まずルールをモニタリングモード(カウントのみ、遮断しない)で動かして誤検知パターンを把握します。次に、特定パスや IP 帯域に対する除外ルールを追加し、問題のあるシグネチャのみ無効化します。一括でシグネチャを無効にするのは別の攻撃の窓口になるため避け、ピンポイントで絞り込むのが基本方針です。
Q. クラウドのセキュリティグループを開放しすぎてしまった場合、どう気づけますか?
A. AWS であれば Security Hub や IAM Access Analyzer、Trusted Advisor がルール設定のリスクを自動検出します。また VPC Flow Logs を有効にして不審な通信元からのアクセスを監視する方法も有効です。定期的に「不要になったルールが残っていないか」をレビューする運用ルールを設けるのが現場では一般的です。
次のレッスン
次は TCP と UDP の違い で、通信を許可・遮断するファイアウォールの基本動作を理解します を学びます。
事前確認 — 進む前に次の 3 つができることを確認しましょう。
- ファイアウォール の要点を自分の言葉で説明できる
- このレッスンの最小コード (または操作手順) を見ずに書ける
- 練習問題やクイズで間違えた箇所を読み直して理解した
理解度チェック (30 秒)
Q. ファイアウォール とは何か、1 文で説明してください。
A. 本文の「このレッスンで分かること」または冒頭の説明文を見直し、自分の言葉で要約できれば OK。詰まったら本レッスンの最初の H2 セクションを読み返してみましょう。
関連レッスン
復習ミニクイズ
ステートフルファイアウォールの説明として正しいものはどれですか