Firewall(ファイアウォール)は日本語だと防火壁の事で、火の侵入を防いで火事が拡大することを防ぐ壁の事を言います。コンピュータの世界ではFirewall(ファイアウォール)は外部の不正な通信や攻撃から大切な情報資産を守るためのシステムの事を言います。
例えば、攻撃者がある不正な通信コマンドを実行して企業内部のネットワークに不正アクセスを試みたとしても、Firewall(ファイアウォール)が許可していない通信であれば、その通信はFirwall(ファイアウォール)によってブロックされます。一方で、Firewall(ファイアウォール)が外部から内部のWebサーバに対してはアクセスを許可していれば、その通信は正常にFirewall(ファイアウォール)を通過してWebサーバから情報を取得することができます。
Firewallには2種類あります。パケットフィルタリング型とアプリケーションゲートウェイ型です。
パケットフィルタリング型の概要
パケットフィルタリング型はパケットのIPヘッダを検査してIPアドレスとポート番号を基にパケットの通信可否を判断します。つまり、パケットフィルタリング型のFirewall(ファイアウォール)はネットワーク層で通信を処理することになります。
パケットフィルタリングの欠点
パケットフィルタリング型のFirewall(ファイアウォール)は設定が非常に簡単ですが、欠点もあります。それは通信の戻りトラフィックに対する処置です。例えば、ユーザがあるアプリケーションサーバにFirewall(ファイアウォール)越しにアクセスするとしましょう。その際にユーザのクライアントは送信元ポートとして3333を利用し、アプリケーションサーバはサービスポートとして2222を利用しています。Firewall(ファイアウォール)では事前の設定で外部のAnyからアプリケーションサーバの2222に対しては通信許可としていますので、ユーザは何の問題もなくアプリケーションサーバにアクセスすることができます。しかし、アプリケーションサーバがユーザのクライアントにデータを返す際にポート3333に対して通信を行う必要がありますが、Firewall(ファイアウォール)はそのポート番号の利用を許可していません。よって、アプリケーションサーバからデータを回答することができなくなります。
ステートフルインスペクション
そこで登場したのが、ステートフルインスペクションという機能です。ステートフルインスペクションではFirewall(ファイアウォール)が処理したデータをセッションログとして保存しておき、次の処理や返し(戻り)の通信の場合はその通信に矛盾がないかを検査して通信の可否を判断します。
アプリケーションゲートウェイ型の概要
アプリケーションゲートウェイ型のFirewall(ファイアウォール)はプロキシとして動作しますので、クライアントとセッションを張り、一方でクライアントの接続先のサーバともセッションを張り、クライアントとサーバの通信の処理を中間で代理で行います。
アプリケーションゲートウェイ型のFirewall(ファイアウォール)はアプリケーション層で通信の処理を行いますので、アプリケーションレベルのデータを読み込んで検査を行う事ができます。
アプリケーションゲートウェイ型のFirewall(ファイアウォール)として頻繁に利用されるのはWAF(ウェブアプリケーションファイアウォール)です。WAFはウェブサーバへの通信(HTTP)を検査して、不正なコマンドを監視・ブロックすることができます。WAFの詳細はこちらを参照ください。