・ファイアウォールは信頼できるネットワークとインターネット、DMZの境界に設置する
・上記のネットワーク間の通信をすべてファイアウォールがチェックする
・ステートフルパケットインスペクションによって、通信の状態を把握して正常な通信のみファイアウォールを通過できるようにする

ファイアウォールの概要

ファイアウォールはネットワークのセキュリティを確保するための定番と言ってよい機器です。ファイアウォールはルータと同様にネットワークの相互接続を行います。ファイアウォールで接続するネットワークは、大きく分けて次の3つです。

・信頼できるネットワーク(社内ネットワーク)
・DMZ(Demilitarized Zone)
・インターネット

ファイアウォールで相互接続するこれらのネットワークは、どのような通信をさせるのかというポリシーが異なります。信頼できるネットワークは、一般的には社内ネットワークで社員など限られたユーザのみが通信できるネットワークです。DMZは、インターネットに公開するWebサーバなどを設置するネットワークです。インターネットは世界中のユーザが自由に通信できるネットワークで、中には悪意を持つユーザも存在します。こうした通信ポリシーが異なるネットワークを相互接続して、その境界ですべての通信をチェックします。不正な通信であればフィルタしてファイアウォールを通過させません。管理者が認めた正常な通信だけをファイアウォールを通過できるようにして、セキュリティを確保することがファイアウォールの目的です。

図1 ファイアウォールの概要

ステートフルパケットインスペクション

ファイアウォールでセキュリティを確保するためには、パケットフィルタリングを行います。パケットフィルタリングとは、ファイアウォールを通過できるデータを限定するための機能です。以前のファイアウォールでは、パケットフィルタリングの設定をあらかじめ細かくしておかなければいけませんでした。現在のファイアウォールでは、ステートフルパケットインスペクションによって通信の状態を把握して正常な通信のみファイアウォールを通過できるようにして、セキュリティを確保します。

通信は原則として双方向です。何かデータを送信すると、その返事が返ってきます。返事のデータのアドレスは、元のデータの宛先と送信元を入れ替えています。また、多くのアプリケーションの通信でやりとりされるデータは、複数に分割されて転送されます。どのように分割されているかはTCPを利用していれば、TCPヘッダのシーケンス番号などに記されています。

このような通信の特徴を踏まえたフィルタを行うのがステートフルパケットインスペクションの大きな特徴です。たとえば、社内ネットワークからインターネット上のWebサーバにアクセスする時を考えましょう。あらかじめファイアウォールに社内ネットワークの通信ポリシーとして許可するアプリケーションを定義しておきます。そして、社内ネットワークのPCからアプリケーションの通信が開始されると、行きのデータのIPアドレスやTCPポート番号やシーケンス番号などをチェックします。

図の例では、行きのデータは、宛先IPアドレス「G1」、送信元IPアドレス「P1」です。Webサーバへアクセスするときには宛先ポート番号は「80」です。PCの送信元ポート番号は「50000」とします。また、PCのIPアドレス「P1」はプライベートアドレスなのでファイアウォールでNATによってグローバルアドレス「G2」に変換するものとします。ファイアウォールはNATのアドレス変換も踏まえて、行きのデータのアドレスを入れ替えた戻りデータの情報を自動的に作成して、行きと戻りの通信の状態をセッション情報として管理します。

図2 ステートフルパケットインスペクションの動作 その1

※G1、G2はグローバルアドレス、P1はプライベートアドレスを表しています。

そして、実際に戻りのデータがファイアウォールに返ってくると、セッション情報を参照して、ファイアウォールを通過させます。つまり、特定の通信の戻りのデータのみがファイアウォールを通過できることになります。また、こうしたセッション情報はずっと保持しているわけではありません。通信が終了すると、セッション情報は削除されます。

図3 ステートフルパケットインスペクションの動作 その2

ファイアウォールの限界

ファイアウォールは冒頭でも述べたようにセキュリティを確保するための定番の機器です。ですが、ファイアウォールは万能ではありません。たとえば、DMZの公開サーバはファイアウォールだけでは防御できません。公開サーバ宛ての通信はファイアウォールを通過できてしまうので、大量のリクエストを送りつけて公開サーバのダウンを目的とするようなDoS(Denial of Service)攻撃をファイアウォールだけで防ぐことはできません。IPS(Intrusion Prevention System)を導入することで、ファイアウォールだけでは防ぐことができない攻撃を防御することができます。IPSはネットワーク上を転送されていくデータをチェックして、短時間で繰り返されるリクエストや不正なリクエストを含むデータなど、不正アクセスの徴候を研修するとその通信をブロックします。これによりDoS攻撃のような不正アクセスを防止することができます。

セキュリティを確保するためには、ファイアウォールだけではなくさまざまなセキュリティ機器を組み合わせることが重要です。