ファイアーウォールとは(FireWall)とは、外部ネットワーク(WAN側)と内部ネットワーク(LAN側)の間にゲートウェイを設けてパケットを監視し、外部からの不正なアクセスや侵入を防止することを目的としたセキュリティシステムの総称のことを指します。通常は、ファイアーウォール用のサーバーを設置するか、専用のネットワーク機器(ルータなど)を用います。なお、ファイアーウォールを語る上で一番わかりやすい例えは、スーパーマリオブラザーズに出てくるキャラクター、メットでしょう。メットに泣かされた方も多いと思いますが、あのメットにはファイアーボールは効かないのを覚えていますか?まさしくファイアーウォール(防火壁)なのです。なんとなく、発音も似ていませんか?ファイアーウォール→ファイアーヴォール→ファイアーボール・・・。というかそんなことどうでもいいですね・・・(笑)。ファイアーウォールには、プロトコルの階層別にどのレベルでセキュリティを確保しているのかによって、いくつかの方式が存在します。以下にはその方式について解説していきます。
◎ファイアーウォールの概念
パケットフィルタリング方式では、ルータやファイヤーウォールなどを経由して行われる通信(データ・パケット)に対して、IPアドレスやポート番号などの情報(=つまり条件)によって、送られてきたヘッダ情報(送信元アドレス,宛先アドレス情報,ポート番号)に基づいてデータパケットを中継(許可)するべきか、それとも遮断(拒否)するべきかの判断を行う方式のことです。パケットフィルタリングは最近のルータには標準で搭載されており、透過すべきものと非透過すべきものの設定を行いさえすれば、簡易なファイアーウォールシステムを構築することができます。また、ルータによってはステートフル・パケット・インスペクション(SPI)という通常のパケットフィルタリングとは異なり、要求パケットと応答パケットの整合性を検査して、必要なアプリケーションのポートだけを開くようにすることで、よりセキュアな環境を構築することができるものもあります。しかし、このようなパケットフィルタリング方式ではIPアドレスやポート番号のレベルでフィルタリングを行えるに過ぎません。つまり、TCP/IPでいうトランスポート層、ネットワーク層に位置する方式なため、より高度な設定(ユーザーごとのアクセス権設定など)を行うためには、アプリケーションゲートウェイ方式などの別システムを導入する必要があります(参考:「 パケットフィルタリングの限界」)。
アプリケーション・ゲートウェイ方式では、それぞれのアプリケーションごとに中継処理を行う代理のサーバを用意して、クライアントはこの代理のサーバを通して目的のサーバに接続することになります。最上位層までのパケットの中身を解析するため、データ処理に要する時間が長くなります(パケットフィルタリング方式に比べ、システムのパフォーマンスが多少低下する)。しかし、逆にアプリケーション層まで解析しているためにパケットフィルタリング方式よりも高度な設定をすることができます。HTTPを例に挙げると、アプリケーション・ゲートウェイはGET、POST、PUTなどのコマンド、URLなどのデータをチェックすることができ、TCPパケットのペイロード部のチェックも可能で、設定によっては非常に高いレベルのセキュリテイを確保することができます。アプリケーション・ゲートウェイは、スループットの低さが欠点とされていますが、他ベンダのウィルス・スキャンやWebサイト規制ソフトなどと連携して、きめ細やかなアクセス制御が行えるとという点では非常に魅力的です。また、最新の攻撃手法に対しても、仕組みを理解し、まめな運用管理を行っていけば、ある程度までは対応できます。
■アプリケーション・ゲートウェイ方式の特徴
アプリケーション・ゲートウェイ方式のファイアーウォール・システムを実現するためには、専用のソフトウェア、専用のハードウェアを導入する必要があります。その主な例としては、小規模向けの WinGateや、 Microsoft
Proxy Server、 Netscape
Proxy Serverなどがあります。なお、フリーソフトではSapporoWorksの BlackJumboDog(旧WinProxy)などが有名です。
サーキットレベルゲートウェイ方式は、ネットワークへの要求をサーキットレベルで中継するタイプのゲートウェイサービスのことで、送信元アドレスや宛先アドレスなどパケット・フィルタリングとほぼ同様の内容だけをチェックします。OSI階層モデルでいうと、トランスポート層でサービスを中継します。概念的には、クライアントから要求されたTCP/UDPのコネクション要求をフックし、ファイアウォール上にあるゲートウェイサービスに振り向けて、そこで目的のホストに向けて改めてTCP/UDPのコネクション要求を出し直す、というサービスで、外部から見た場合、ゲートウェイマシンから直接TCP/UDPの要求が出されているように見えるし、実際そのように振る舞います。アドレス変換なども必要なく、アプリケーションごとに使用しているプロトコルを調べて、事前に煩雑なフィルタルールをセットしたりする必要はないので、導入するのが簡単なのが特徴です。サーキットレベルゲートウェイ方式は、全てのアプリケーションに対して汎用的に利用できますが、アプリケーション・ゲートウェイほど細かく制御することはできません。
|