ファイアウォールとは、ネットワークへの不正な通信を遮断するためのセキュリティの仕組みです。 IPアドレス や ポート番号 をもとに通信を「通す」か「遮断する」かを判断し、許可されていない接続をブロックします。この記事では、ファイアウォールがなぜ必要なのか・どのように通信を制御するのかをわかりやすく解説します。
はじめに
これまでの記事で、データがどのように届くか(IPアドレス・ルーター・DNS)、どうやって安全に通信するか(HTTPS)を学んできました。
しかし、「安全に通信する」だけでは不十分です。そもそも「不正な接続を入り口でブロックする」仕組みも必要です。その役割を担うのが ファイアウォール です。
なぜファイアウォールが必要なのか
インターネットに接続した機器は、原則としてどこからでも接続を試みることができます。
IPアドレスの記事で学んだように、インターネット上のすべての機器はIPアドレスを持っています。またポート番号の記事で学んだように、機器上では複数のサービスがポート番号ごとに待ち受けています。
この2つを組み合わせると、「特定のIPアドレスの機器が持つ特定のポートへ、インターネット上の誰でも接続を試みることができる」ということになります。
たとえば、企業のサーバーでデータベースが3306番ポートで動いているとします。ファイアウォールがなければ、世界中の誰もがそのポートへ接続を試みることができ、悪意のある者がデータを盗もうとする可能性があります。攻撃者はIPアドレスとポート番号を手がかりに、自動的に無数のサーバーへ接続を試みるツールを持っています。
ファイアウォールは、こうした望まない接続を入り口でブロックするための仕組みです。
ファイアウォールとは何か
ファイアウォール(Firewall) とは、ネットワークの入口・出口に設置して通信を監視し、ルールに合致しない通信を遮断するセキュリティの仕組みです。
建物の入口に立つ警備員をイメージするとわかりやすいです。警備員は入館しようとする人を一人ひとり確認し、許可証を持つ人だけを通します。ファイアウォールも同様に、通過しようとするパケットを確認し、あらかじめ決めたルールに合致するものだけを通します。
図:ファイアウォールが許可・遮断を判断する仕組み
| 用語/英単語 | 意味 | イメージ・補足 |
|---|---|---|
| ファイアウォール / Firewall | ネットワークの通信を監視し、不正な接続を遮断するセキュリティの仕組み | firewall=防火壁。もともとは火災が建物内に広がらないよう設けられた壁のこと。転じて、外部からの脅威を遮断する仕組みの名称として使われるようになった |
ファイアウォールの仕組み ― パケットフィルタリング
ファイアウォールの基本的な動作は、パケットを確認して「通す」か「遮断する」かを判断することです。この仕組みを パケットフィルタリング といいます。
パケットフィルタリングでは、以下の情報をルールと照合して判断します。
- 送信元IPアドレス :どこから来た通信か
- 宛先IPアドレス :どこへ向かう通信か
- ポート番号 :どのサービス宛ての通信か
- プロトコル :TCPかUDPか
ポート番号の記事で学んだ「ポート番号でサービスを識別する」という知識がここで活きます。
図:パケットフィルタリングの判断フロー
| 用語/英単語 | 意味 | イメージ・補足 |
|---|---|---|
| パケットフィルタリング / Packet Filtering | パケットの情報を確認して通過・遮断を判断する仕組み | 税関で荷物を一つひとつ検査して、持ち込みが許可されているものだけを通すイメージ |
フィルタリングルールの具体例
実際のファイアウォールではルールを表として管理します。ここでは企業のWebサイトでよく見られる「 Webサーバー 」と「 データベースサーバー 」という2台のサーバーを例に見ていきましょう。
まず2台のサーバーの役割を整理します。
-
Webサーバー (IPアドレス:203.0.113.10、ポート:443) ユーザーがブラウザでアクセスする窓口となるサーバーです。画面の表示やページの処理を担います。
-
データベースサーバー (IPアドレス:203.0.113.20、ポート:3306) 会員情報・商品データ・注文履歴などのデータを保存・管理するサーバーです。ユーザーが直接アクセスするものではなく、Webサーバーがデータを取得・更新するために内部でやり取りします。
| 用語/英単語 | 意味 | イメージ・補足 |
|---|---|---|
| データベースサーバー / Database Server | データの保存・管理を専門に行うサーバー | Webサーバーが「お店の店頭」なら、データベースサーバーは「商品や顧客情報を管理する倉庫」のようなもの |
Webサーバーはインターネット上の誰でもアクセスできる必要がありますが、データベースサーバーはWebサーバーだけが接続できれば十分です。データベースサーバーが外部から直接アクセスできる状態になっていると、顧客データなどが盗まれるリスクがあります。
図:正常な通信と攻撃者のアクセス試行に対するファイアウォールの動作
このとき、ファイアウォールに設定するルールは次のようになります。
| ルール番号 | 送信元IP | 宛先IP | プロトコル | 宛先ポート | アクション |
|---|---|---|---|---|---|
| 1 | すべて | 203.0.113.10 | TCP | 443 | 許可 |
| 2 | 203.0.113.10 | 203.0.113.20 | TCP | 3306 | 許可 |
| 3 | すべて | 203.0.113.20 | TCP | 3306 | 拒否 |
| 4 | すべて | すべて | すべて | すべて | 拒否 |
ルールは 上から順番に評価され、最初に一致したルールが適用されます。
- ルール1 :Webサーバーへはインターネット上の誰でもHTTPS(443番)でアクセス可能
- ルール2 :Webサーバー(203.0.113.10)からのみデータベースサーバーへの接続を許可
- ルール3 :それ以外からのデータベースサーバーへのアクセスは拒否
- ルール4 :上記以外のすべての通信を拒否(許可リスト方式の最後の砦)
たとえば、攻撃者がデータベースサーバー(203.0.113.20)へ直接アクセスしようとすると、ルール1には一致せず(宛先IPが違う)、ルール2にも一致せず(送信元がWebサーバーのIPではない)、ルール3で「拒否」となります。
インバウンドとアウトバウンド
ファイアウォールは通信の方向によってルールを使い分けます。通信の方向は2種類あります。
- インバウンド(受信) :外部からネットワーク内部へ向かう通信
- アウトバウンド(送信) :ネットワーク内部から外部へ向かう通信
| 用語/英単語 | 意味 | イメージ・補足 |
|---|---|---|
| インバウンド / Inbound | 外部からネットワーク内部へ向かう通信 | inbound=内向き。外から中へ入ってくる通信 |
| アウトバウンド / Outbound | ネットワーク内部から外部へ向かう通信 | outbound=外向き。中から外へ出ていく通信 |
一般的に、インバウンドは厳しく制限し、アウトバウンドは比較的緩やかに許可することが多いです。悪意ある攻撃の多くが外部からの侵入(インバウンド)を試みるためです。
許可リストと拒否リスト
ファイアウォールのルール設定には、2つのアプローチがあります。
許可リスト(ホワイトリスト)方式 は、明示的に許可した通信だけを通し、それ以外はすべて遮断します。「何も通さない」が出発点で、必要なものだけを開けていくイメージです。設定の手間はかかりますが、想定外の通信が通るリスクが低くなります。
拒否リスト(ブラックリスト)方式 は、明示的に拒否した通信を遮断し、それ以外はすべて通します。「何でも通す」が出発点で、危険なものを閉じていくイメージです。設定は楽ですが、想定していなかった攻撃が通ってしまうリスクがあります。
セキュリティの観点からは、 許可リスト方式 が推奨されます。
ファイアウォールはどこにあるのか
ファイアウォールは、大きく2種類の場所に存在します。
ネットワーク型ファイアウォール
企業のネットワークとインターネットの境界に設置される専用機器やルーターの機能です。ネットワーク全体への通信を一括して制御します。ネットワーク内のすべての機器をまとめて保護できる反面、設置・管理には専門知識が必要です。
ホスト型ファイアウォール
パソコンやスマートフォンにインストールされたソフトウェアです。Windowsには「Windowsファイアウォール(Windows Defender ファイアウォール)」が標準搭載されており、macOSにも内蔵のファイアウォール機能があります。個々の機器単位で通信を制御します。
図:ネットワーク型とホスト型ファイアウォールの設置場所
2種類は排他的なものではなく、ネットワーク型とホスト型を組み合わせて多重に防御するのが一般的です。
まとめ
- インターネットに接続した機器は、原則としてどこからでも接続を試みることができるため、不正な接続を遮断する仕組みが必要
- ファイアウォール は、通信を監視してルールに合致しないパケットを遮断するセキュリティの仕組み
- パケットフィルタリング により、送信元IPアドレス・宛先IPアドレス・ポート番号・プロトコルをもとに通過・遮断を判断する
- インバウンド (外→内)は厳しく制限し、 アウトバウンド (内→外)は比較的緩やかに許可するのが一般的
- 「許可したもの以外はすべて遮断する」 許可リスト方式 がセキュリティの観点から推奨される
- ネットワーク全体を守る ネットワーク型 と、機器ごとに守る ホスト型 の2種類がある
用語表
| 用語 | 意味 |
|---|---|
| ファイアウォール | ネットワークの通信を監視し、ルールに合致しない通信を遮断するセキュリティの仕組み |
| パケットフィルタリング | パケットのIPアドレス・ポート番号・プロトコルなどを確認して通過・遮断を判断する仕組み |
| データベースサーバー | 会員情報・商品データ・注文履歴などのデータを保存・管理するサーバー。Webサーバーが内部でやり取りする対象であり、外部から直接アクセスされるものではない |
| インバウンド | 外部からネットワーク内部へ向かう通信(受信) |
| アウトバウンド | ネットワーク内部から外部へ向かう通信(送信) |
| 許可リスト(ホワイトリスト) | 明示的に許可した通信だけを通し、それ以外をすべて遮断するルール設定の方針 |
| 拒否リスト(ブラックリスト) | 明示的に拒否した通信を遮断し、それ以外はすべて通すルール設定の方針 |
| ネットワーク型ファイアウォール | ネットワークの境界に設置してネットワーク全体の通信を制御するファイアウォール |
| ホスト型ファイアウォール | 個々の機器にインストールされたソフトウェア型のファイアウォール |