ファイアーウォール

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索

ファイアーウォール(防火壁、Firewall)とは、ある特定のコンピュータネットワークとその外部との通信を制御し、内部のコンピュータネットワークの安全を維持することを目的としたソフトウェア(あるいはそのソフトウェアを搭載したハードウェア)の技術概念である。

外部から内部のコンピュータネットワークへ侵入しようとするクラッキング行為を火事にたとえ、それを食い止めるものとして防火壁という表現を用いている。

ファイアウォールは、その動作するプロトコル階層によって細かく分類される。

パケットフィルタ型[編集]

OSI参照モデルにおけるネットワーク層(レイヤ3)やトランスポート層(レイヤ4)に相当するIPからTCP、UDP層の条件で、通信の許可/不許可を判断するもの。狭義でのファイアウォールとは、このタイプのものを指す。このタイプはさらに、スタティックなものとダイナミックなものとに分類できる。

基本的にはレイヤ3で通信制御を判断するが、フィルタの種類によってはレイヤ4のヘッダも参照する。すなわち、TCP/UDPのセッション単位で管理する訳ではない。ただし、ステートフルパケットインスペクション型ではTCP/UDPセッションの一部も記憶して判断動作する。

スタティックなパケットフィルタ
IP通信において、宛先や送信元のIPアドレス、ポート番号などを監視し、あらかじめ設定した条件によって、その通信を受け入れる(ACCEPT)、廃棄する(DROP)、拒否する(REJECT)などの動作で通信を制御する。具体的には、外部から内部へ向かうパケットを選別して特定のサービスのみを通す、また内部から外部へ向かうパケットも、セキュリティホールになりかねないため、代表的なサービス以外は極力遮断する、といった設定が行われることが多い。仕組みが単純なため高速に動作するが、設定に手間がかかる、防ぎきれない攻撃があるなどの問題点がある。
ダイナミックなパケットフィルタ
宛先および送信元のIPアドレスやポート番号などの接続・遮断条件を、IPパケットの内容に応じて動的に変化させて通信制御を行う方式。
スタティックなパケットフィルタで内部と外部で双方向の通信を行う場合は、内部から外部へ向かうパケットと、外部から内部へ向かうパケットの双方を明示的に許可しなければならない。一方、ダイナミックなパケットフィルタでは、内部から外部の通信を許可するだけで、その通信への応答に関してのみ、外部からの通信を受け入れる、といった動作を自動的に行う。
ステートフルパケットインスペクション
ステートフルインスペクション(Stateful Packet Inspection、SPI)ともよばれる、ダイナミックなパケットフィルタリングの一種。
レイヤ3のIPパケットが、どのレイヤ4(TCP/UDP)セッションに属するものであるか判断して、正当な手順のTCP/UDPセッションによるものとは判断できないような不正なパケットを拒否する。そのため、TCP/UDPセッションの一部情報を記憶して判断動作する。具体例として、ヘッダのSYNやACKフラグのハンドシェイクの状態などを記憶し、不正に送られてきたSYN/ACKパケットを廃棄する。

サーキットレベルゲートウェイ型[編集]

レイヤ3・IPパケットではなく、TCP/IPなどのレイヤ4・トランスポート層のレベルで通信を代替し、制御する。内部のネットワークから外部のネットワークへ接続する場合は、サーキットレベルゲートウェイに対してTCPのコネクションを張ったり、UDPのデータグラムを投げることになる。サーキットレベルゲートウェイは、自らに向けられていたIPアドレスとポート番号を本来のものへと振り替え、自らが外部と通信した結果を返すという動作をする。代表的なソフトウェア実装としてはSOCKSがある。また、ハードウェア実装としてレイヤ4スイッチにもこの機能を持たせる事ができる。

サーキットレベルゲートウェイは、あらかじめ多数のポートを開けたりNATを用意しなくても、プライベートIPアドレスしか持たない内部のネットワークからでも、外部のネットワークへ接続できるという点がメリットである。

アプリケーションゲートウェイ型[編集]

パケットではなく、レイヤ7のHTTPFTP といった、アプリケーションプロトコルのレベルで外部との通信を代替し、制御するもの。一般的にはプロキシサーバと呼ばれている。アプリケーションゲートウェイ型ファイアウォールの内部のネットワークでは、アプリケーションはアプリケーションゲートウェイ(プロキシサーバ)と通信を行うだけであり、外部との通信はすべてプロキシサーバが仲介する。アプリケーションプロキシが用意されていないサービスについては、サーキットプロキシで対応する事が可能である。

このため、アプリケーションゲートウェイで許されているプロトコルトンネリングを行うソフトウェア、例えばSoftEtherhttptunnelといった、運用方法によってはセキュリティホールになりうる実装の利用を、かえって促進してしまうという事例も近年目立っている。強すぎるセキュリティポリシーが迂回路を招いてしまっているとも言える。

プロキシは単に中継するだけの物が多いが、レイヤ7ファイアウォールはアプリケーションの通信の中身も検査する事ができる(例:アクセスURLチェック、ウイルスチェック、情報漏洩検出)。そのため、検査の仕方によってはレイヤ7ファイアウォールは相当な負荷が掛かり、ファイアウォールの処理上も、通信上もボトルネックとなることもある。また、未成年に好ましくないコンテンツのみを、末端のユーザにはプロキシサーバの存在を意識させない状態で、自動的にフィルタリングしてしまうといった実装も可能である。

なお、アプリケーションの通信の中身も検査するため、電気通信事業者が自らが仲介する通信の内容に立ち入ってはならない(通信の秘密)と言う原理原則に反する検閲だと批判する向きもある。通信事業に携わる技術者や学者の間ではこういった種類のファイアウォールを設置するという発想を強く批判する向きもある[誰?]

なお実際に、ISPぷららファイル共有ソフトウェアWinnyの通信を全て遮断する事を計画・発表し、それに対して通信の秘密を侵害する可能性があるとして総務省から行政指導を受け、Winny遮断は同ISPユーザの利用者の選択に任せるとした事例もあった。

具体的な実装例[編集]

上述のパケットフィルタリング型や、サーキットレベルゲートウェイ型ではそれぞれ、レイヤ3スイッチルーター)やレイヤ4スイッチ等のハードウェア機器の一部機能として組み込まれている事も多い。この場合、ある程度簡易な条件でしかパケット検査をできないため、簡易ファイアウォール、広義のファイアウォールと呼ぶこともある。レイヤー7ファイアウォール(L7FW)は通信の内容まで検査するため、L7FWが本来の(狭義の)ファイアウォールであるとすることもある。

ソフトウェアによる実装としては、UNIXでは伝統的にipfwが使われてきた。カーネルレベルで動作するため、オーバーヘッドが小さく高速に動作する。Mac OS Xでもipfwが実装されている。Linuxカーネル には iptablesipchains等が実装されている。

WindowsではZoneAlarmノートン インターネットセキュリティウイルスバスターNetOp Desktop Firewall等のフリーウェアないし商用アプリケーションが普及しているが、これらはファイアウォールというよりは、IDSに近い動作をしている。しかし、一般的にファイアウォールという語が防護のイメージを喚起しやすいためか、用語は混乱して使われている。一般的には、パーソナルファイアウォールと呼ばれる。

また、Windows XPでは、OSの機能として簡易的なファイアウォールが標準で搭載されている(Windows XP SP2ではユーザーが初期設定を行わずに利用できるように改良された)。純粋にスタティックなパケットフィルタ型ファイアウォールの実装としては、NEGiESなどがある。

主なファイアウォール製品[編集]

ソフトウェア型[編集]

ハードウェア型[編集]

その他フリーウェアなど[編集]

関連項目[編集]