ファイアーウォール製品の便利なステートフルインスペクション機能
2015年8月19日
ファイアーウォール製品の多くには、ステートフルインスペクションという機能が備わっています。 今回は、ステートフルインスペクションがどのような機能であるのかを把握すると共に、 実際にこの機能を使用するときに必要となるルールの3つのポイントを見ていきましょう。
ステートフルインスペクションと3つの要素
ステートフルインスペクションとは、パケットのトラフィックを一つ一つ個別に分析するのではなく、 トラフィックの流れを時間を追って追跡することができる機能です。
この機能が追跡する要素とは、以下の3つとなります。
ステートフルインスペクションは、送受信されるパケットの中身がルールに従って正常に流れているかを監視します。 上記いずれも正常な場合はプロトコルによって規定された一定のルールに従ってやりとりが行われます。
IPアドレスはインターネットやLANなどのIPネットワーク上の機器に割り振られた識別番号のことで、 通信を行うために必要な住所となります。
また、ポートとはインターネット上の通信において複数のサービスを提供するために、 IPアドレスの下に設けられたサブアドレスのことです。 そのサブアドレスのことをポート番号と呼びます。
例えば、IPアドレスが「●県×市○○アパート△」であるとすれば ポートは「503号室」というように、より具体的に宛先を指定します。
インバウンドとアウトバウンド
インバウンドとはインターネットからLAN内に入ってこようとする通信のことで、 アウトバウンドとは逆にLAN内からインターネットに対して発信される通信のことです。
ファイアーウォールの基本的な考え方では、外部から内部に入ってこようとする通信(インバウンド)は 基本的には危険なものと考え、許可された通信以外は排除します。
逆に、内部から外部に発信される通信(アウトバウンド)は基本的には信頼してよいものと考えます。
このアウトバウンドに対する外部からの返信は、ステートフルインスペクションによりチェックされ、 正しいルールに基づき返信されたものとみなされれば、ポートを開放します。
ステートフルインスペクションの仕組み
ステートフルインスペクションはLAN側から送信したアウトバウンドのデータをセッションログとして一時的に保存し、 インターネット側から送られてきたインバウンドのデータが、 セッションログに遺された発信情報の返信としてルール通りであるか、流れをチェックします。
そして、動的にポートを操作し、ルール通りである場合はポートを開放してパケットを受け入れ、 ルールに従わない不審なパケットの場合は、ポートを閉鎖します。
一方通行のトラフィックの簡略化
ステートフルインスペクションの長所は、ルールを簡素化できることです。
それまでのパケットフィルタリング機能では、最初のデータ送信元やアクセス先のポートなどといった、 TCPやUDPのヘッダ部分にある情報を参照することにより、ルールに当てはまるパケットかどうかを判断していました。 そのため、ルールを作成する際には詳細な設定を行う必要がありました。
ステートフルインスペクションの場合、通常は一方通行で行われるようなトラフィックに対しては、 インバウンドとアウトバウンドの両方向を許可するルールを作成する必要はありません。
例えば、Telenet(通常は23番ポート)、HTTP(通常は80番ポート)等のトラフィックに関しては、 アウトバウンドのルールのみを作成します。ファイアーウォールはこのようなトラフィックに関しては、 動的にリターンのトラフィックを許可します。
このため、知識の確かな技術者がファイアーウォール設置に携わらなくても、 初心者でも気軽にファイアーウォールのデフォルト設定をオンにすることで、 不審なトラフィックを遮断できるという強みがあります。
本ブログは、日本初Web専門スクールのインターネット・アカデミーの講師が運営するWebメディアです。 スクールの情報はもちろん、最新のWebデザイン・プログラミング・Webマーケティングについて役立つ情報をご紹介しています。