情報セキュリティ対策
ファイアウォール (Firewall)
ファイアウォールとは
外部の信頼できないネットワークから内部のコンピュータネットワークへ不正に侵入しようとする行為 (クラッキング)を火事に例え,それを食い止める役目を果たすソフトウェア(あるいはそのソフトウェアを搭載したハードウェア)をファイアウォール (防火壁:Firewall) という.
ファイアウォールは,ローカルエリアネットワーク(LAN)とインターネットとの間に設置され,インターネットからLANへの不正な進入を防ぐシステムであり,次の 2 つの方式がある..
パケット・フィルタリング方式
アプリケーション・ゲートウェイ方式
パケット・フィルタリング方式
パケットフィルタリング方式は,ルータやファイヤーウォールなどを経由して行われる通信(データ・パケット)に対して,送られてきたヘッダ情報 (発信元アドレス,宛先アドレス,ポート番号等) に基づいてデータ・パケットを中継 (許可) するべきか,遮断 (拒否) するべきかの判断を行う方式である. すなわち,ファイアウォールを通過するパケットを指定されたルール (条件) に基づいてふるい分け,条件に合わないパケットを通さないことにより,外部から内部への不正な侵入を防御する.
パケット・フィルタリング方式は,監視するパケットの内容が限られるため処理が高速であり細かな制御が可能である.また,早い段階でパケットを拒否することができるのでより強固なセキュリティ対策になり得る. しかし,その設定は専門的であり難しく,失敗するとOSの動作に支障をきたすこともある. また,パケット・フィルタリング方式は,TCP/IPでいうトランスポート層,ネットワーク層に位置する方式なため,より高度な設定(ユーザーごとのアクセス権設定など)を行うためには,アプリケーションゲートウェイ方式などの別システムを導入する必要がある.
静的フィルタリングと動的フィルタリング
パケット・フィルタリングの基本は,どんなパケットの通過を許可・禁止するかというポリシーを決め,フィルタリング・テーブルに反映させることである.このテーブルが固定的なものが静的フィルタリングである.
動的フィルタリングは,静的フィルタリングの仕組みに加えて,通信の状況などに応じてフィルタリング・テーブルの内容を自動で書き換える手法である.これにより,まったく同じパケットでも状況に応じて通したり,遮断したりできるようになる. 動的フィルタリングは,原則としてパケットを破棄するのではなく通過させるために働く.すなわち,動的フィルタリングだけではパケットを破棄することはできない.したがって,通常の運用では動的フィルタリングを静的フィルタリングと組み合わせる必要がある.
動的フィルタリングは,次のように動作する.
基本的には,動的フィルタリングは静的フィルタリングよりも優先的に適用される.動的フィルタリングに該当するパケットは,静的フィルタリングの設定にかかわらず通過する.逆に,動的フィルタリングに該当しないパケットは,静的フィルタリングの設定によって通過になるか破棄になるかが決定される.
動的フィルタリングは最初から存在するのではなく,トリガーのコネクションが現れたときに動的に作られる.したがって,トリガーの最初のパケットだけは動的フィルタではなく,静的フィルタが適用される. 一度,動的フィルタが作られれば,その後に続くパケットは動的フィルタを通過する.
パケットフィルタリングと NAT
セキュリティの向上のため,パケットフィルタリング型のファイアウォールでは,パケットフィルタリングと同時にアドレス変換機能 (NAT:Network Address Translation) が使われる.NATは,LANで使用するIPアドレスと外部に公開するIPアドレスとの変換処理である.
NAT は,IPヘッダ内の発信元アドレスと宛先アドレスの変換を行う.アドレスの変換は,1 つのプライベートアドレスに対し,1 つのグローバルアドレスを割り当てる.そのため,インターネットにアクセスするノード分のグローバルアドレスを用意しなければならない.
アプリケーション・ゲートウェイ方式
プロキシ(Proxy:代理)・サーバを用いる方式である.
Proxy サーバは,あるネットワークのノードからの要求を受け取り,別のネットワークのノードにその要求を代行して発行する.使用するポートも Proxy サーバが使用するポートに限定され,論理的にネットワークを遮断することができる.
処理の代行時にパケットの内容を監視し,パケットの通過の可否を制御する.アプリケーションレベルで監視するので,プロトコル全体で制御するのに比べて細かい制御が可能であるがその分処理が重くなる.また,クライアントに提供できるサービスは Proxy サーバが対応している必要があり,利便性は Proxy サーバに左右されることになる.
例としては,
WWW や MAIL など特定のサービスの細かな通信規制が行う.例えば,Web サービスの特定のコマンドが含まれるパケットを抑制する事で Web サービスは許可しつつ掲示板の書込みのみを禁止する.
HTTP プロトコルの GET,POST,PUTなどのコマンド,URL などのデータをチェックする.また,TCP パケットのペイロード部のチェックも可能であり,設定によっては非常に高いレベルのセキュリテイを確保することができる.
IPマスカレード (NAPT)
インターネットに接続された企業などで,1つのグローバルな IP アドレスを複数のコンピュータで共有する技術である.組織内でのみ通用する IP アドレス(ローカルアドレス)とインターネット上のアドレス(グローバルアドレス)を透過的に相互変換することにより実現される. IPマスカレードでは,IPアドレスだけではどのローカルアドレスから来たパケットなのか判断できないため,IP アドレスとポート番号を対応させることでパケットの対応付けをする.すなわち,NAT と異なりTCP/UDPのポート番号まで動的に変換されるため,1つのグローバルアドレスで複数のマシンから同時に接続することが可能である.
NAPT (Network Address and Port Translation)が本来の名称で,IPマスカレードは Linux における NAPT の実装のことであったが,現在では両者が同じ意味で使われていることが多い.
IP マスカレードには,次のような問題がある.
インターネット(グローバル)側からのアクセスが不可
NAT ならアドレス変換が1対1なのでインターネット側からアクセスしてもどのホストへ転送すればよいか判別できるが,IPマスカレードは1対多であるためどのホストへ転送すればよいか判断できない.
ICMP (Internet Control Message Protocol) の利用が不可
ICMPは,ポートの概念がないため使用できない.
rsh 系のコマンドや lpr などの利用が不可
クライアント側のポート番号が Well Known ポートの範囲内にあることを要求してくるプロトコルでは,ポート番号を変更してしまうIPマスカレードを利用することはできない.