ファイアウォール

ファイアウォール(防火壁)とは、ある特定のコンピュータネットワークとその外部との通信を制御し、内部のコンピュータネットワークの安全を維持することを目的としたソフトウェア、あるいはそのソフトウェアを搭載したハードウェアである。英語で防火壁と表現するのは、外部から内部のコンピュータネットワークへ侵入しようとするクラッキング行為を、火事に喩えたものである。

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

パケットフィルタ型
ネットワーク層トランスポート層に相当するIPからTCP、UDP層の条件で、通信の許可不許可を判断するもの。狭義でのファイアウォールとは、このタイプのものを指す。このタイプはさらに、スタティックなものとダイナミックなものとに分類できる。

[編集]
スタティックなパケットフィルタ
IP通信において、宛先や送信元のIPアドレスポート番号などを監視し、あらかじめ設定した条件によって、その通信を受け入れる(ACCEPT)、廃棄する(DROP)、拒否する(REJECT)などの動作を行うことで、通信を制御する。具体的には、外部から内部へ向かうパケットを選別して特定のサービスのみを通す、また内部から外部へ向かうパケットも、セキュリティホールになりかねないため、代表的なサービス以外は極力遮断する、といった設定が行われることが多い。仕組みが単純なため高速に動作するが、設定に手間がかかる、防ぎきれない攻撃があるなどの問題点がある。

[編集]
ダイナミックなパケットフィルタ
IPパケットの内容に応じて、宛先や送信元のIPアドレスポート番号などの、接続や遮断といった動作のための条件を動的に変化させ、通信制御を行おうというもの。例えば、スタティックなパケットフィルタでは、内部と外部で双方向の通信を行う場合は、内部から外部へ向かうパケットと、外部から内部へ向かうパケットの双方を許可しなければならないが、ダイナミックなパケットフィルタの場合は、内部から外部の通信を許可するだけで、その通信への応答に関してのみ、外部からの通信を受け入れる、といった動作を自動的に行ってくれる。

また、現在、具体的にどういった情報を運んでいるのかというアプリケーションプロトコルのレベルで通信をチェックしてダイナミックなパケットフィルタリングを行うものもあり、これらは、ステートフルパケットインスペクション型、あるいはステートフルインスペクション型と称することもある。

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

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

[編集]
アプリケーションゲートウェイ
IPパケットではなく、HTTP や FTP といった、アプリケーションプロトコルのレベルで外部との通信を代替し、制御するもの。一般的にはプロキシサーバと呼ばれている。アプリケーションゲートウェイファイアウォールの内部のネットワークでは、アプリケーションはアプリケーションゲートウェイ(プロキシサーバ)と通信を行うだけであり、外部との通信はすべてプロキシサーバが代替する。proxyとは、英語で「代理人」を意味する。アプリケーションゲートウェイファイアウォールに守られたネットワークは、プライベートIPアドレスで構築されることが普通である。当然、アプリケーションゲートウェイが用意されていないサービスについては、一切外部とは通信出来ない。安全性は高いが、内部ネットワークのユーザの利便性も下がる。

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

また、この仕組みを使えば、具体的な通信の中身を検閲して、例えば未成年に好ましくないコンテンツのみを、末端のユーザにはプロキシサーバの存在を意識させない状態で、自動的にフィルタリングしてしまうといった実装も、可能である。しかし、原理原則としては、電気通信事業者は、自らが仲介する通信の内容に立ち入ってはならないものである。そのため、通信事業に携わる技術者や学者の中には、こういった種類のプロキシサーバを設置するという発想に、強い嫌悪感を持つ者もいる。

[編集]
具体的な実装例
UNIXでは伝統的にipfwが使われてきた。カーネルレベルで動作するため大変高速である。Linux では iptables、ipchainsといった実装が一般的である。

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

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

ここ最近においては、UTM(統合脅威管理)が注目されており、ファイアーウォールにゲートウェイアンチウイルス、不正侵入防御、コンテンツフィルタリング等の機能を追加し、統合的にゲートウェイで脅威から守るというアプローチがファイアーウォールの付加機能として注目を浴びている。