運用常時接続時代のパーソナル・セキュリティ対策(第4回)1.NPFWの内部アーキテクチャ デジタルアドバンテージ |
||
NPFWのファイアウォール機能を簡単に述べると、TCP/IPのトラフィックを監視しておいて、あらかじめ決められたルールに合致するものがあれば選択的に通過/ブロックさせるためのものである。前回までに紹介した、Windows 2000のTCP/IPプロトコル・スタックやRRASに組み込まれているパケット・フィルタリング機能と比べると、パケットのヘッダ部分のみの一致による取捨選択だけではなく、通信の内容に基づいたフィルタリング機能も持っている。
機能的には、RRASなどが持つパケット・フィルタとそう大きな違いはないが、内部アーキテクチャの違いにより、NPFWでは少し注意しなければならない点があるので、まず構造について見ておこう。
NPFWの内部的な構造を簡単に示すと、以下のようになっていると考えられる。ただし正式に公開されているわけではないので、これは推測であるが、そう大きくは違っていないだろう。
NPFWの内部アーキテクチャ | |||||||||
NPFWには、大きく分けて3種類のフィルタが用意されている。一般的なパケット・フィルタでは、図中のNDISドライバとTCP/IPプロトコル・スタックの間に入っているのが普通であるが、NPFWのパケット・フィルタはプロトコル・スタックとアプリケーションの間に入っている。そのため、アプリケーションごとに個別にフィルタを適用することができるし、アプリケーションが動作していないときはポートを閉じることも可能である。なおフィルタのルールを設定するときは、2つのインターフェイスごとにそれぞれ個別のホスト名(ここではmyserver-i1とmyserver)が付けられているので、これによってどちらのインターフェイスから入ってきたパケットであるかを区別することができる。 | |||||||||
|
この図から分かるように、NPFWの内部には3種類のフィルタが組み込まれ、相互に連携して機能している。
■Webフィルタ(図中の)
これは、HTTPの通信の内容を検査して、スクリプトやプログラムを実行するコードを除去したり、cookieをブロックしたりする。この機能は、HTTP通信を行うアプリケーション(一般的にはWebブラウザ)にのみ作用し、その他のアプリケーションでは使用されない。
■パケット・フィルタ(図中の)
これは、一般的なファイアウォールにおけるパケット・フィルタリング機能に相当し、連載第1回、第2回で解説したパケット・フィルタとほぼ同じ機能を持っている。しかしNPFWの構造は、図から分かるように、一般的なルータやWindows 2000が持っているパケット・フィルタの構造とは少し異なるようである。
一般的なパケット・フィルタでは、ネットワーク・インターフェイスとTCP/IPプロトコル・スタックの間(上の図でいうとの位置)にパケット・フィルタ機能が入っている。そして、インターフェイスごとにインバウンド(インターフェイスから入ってくる方)のパケットと、アウトバウンド(インターフェイスから出て行く方)のパケットのそれぞれに対して、個別にフィルタリング動作を行うことができる。
これに対してNPFWのパケット・フィルタでは、TCP/IPプロトコル・スタックとアプリケーションの間(図のの位置)に入って動作しているようである。どちらの構造でも最終的にはほぼ同じ効果が得られるが、この差はフィルタのルールを設定する場合に細かな違いとなって現れる。例えば、「インターネット 接続」側からのインバウンド・パケットはすべてブロックするが、「ローカルネット 接続」側からのインバウンド・パケットはすべて通過させるという設定をしたいとしても、の位置ではこれは難しい。どちらのインターフェイスから入ってきたパケットでも、最終的にはそれらがまとめられて(順番に)ネットワーク・アプリケーションに届くので、どちらのインターフェイスを経由して入ってきたパケットであるかをはっきりと区別することができないからである。NPFWではこのような場合、代わりにパケットに含まれている宛先(自分自身のIPアドレス)と送信元のIPアドレスを元にして区別するしかない。たいていの場合にはこれでも構わないのだが、インターネットの接続共有によってNATで変換されるパケットの場合は、ローカル接続側のパケットの送信元アドレス(192.168.0.2〜192.168.0.255のいずれかになっているはずである)しか判定の基準にするものがないので、ルールを作成するときは注意が必要である。
NPFWのこのようなパケット・フィルタの構造は、インターフェイスごとにトラフィックを制御するという点ではやや不便であるが、アプリケーションごとにトラフィックを制御することができるという点では利点が多い。NPFWでは、例えばFTP.EXEが動作している間だけ、FTPプロトコルのためのポートをオープンし、実行が終了すればそれらのポートを閉じるということが簡単に実現できる。上位アプリケーションの動作状態に関わらず、常にポートをオープンしておかなければならない通常のパケット・フィルタと違って、より安全性が高くなっている。なぜなら、FTP.EXE以外のプログラムではこれらのポートを利用することはできないからである(FTP.EXE以外から利用しようとしても、すべてブロックされる)。
■NDISフィルタ(図中の)
これは、NDISインターフェイスに直接作用するタイプのフィルタである。上位のTCP/IPパケット・フィルタとは違って、より低レベルのパケット構造に基づいたフィルタリング動作を行うために用意されている。具体的には、ICMPやIGMP、不必要にフラグメントしたIPパケットなどの検出/ブロックの処理を担当する(第3回の「4.NPFWの詳細設定」における、[その他の拡張オプションの設定画面] の右側などで設定する)。
以上のように、RRASのパケット・フィルタなどと比べるとやや機能が異なるが、RRASと併用するということも可能なので、よりプリミティブな(低レベルな)インターフェイスごとのフィルタリング機能を実現したければ、RRASも併用するという方法もある。
ホスト名の扱いについて
ここで1つ非常に大事なこととして、パケット・フィルタのルールを設定する場合の「ホスト名」の扱いについて注意しておく。NPFWでは、フィルタを設定する場合に、パケットの宛先アドレスや送信元アドレスとして、数値によるIPアドレス表現だけでなく、アルファベットと数字、記号を組み合わせた文字列によるホスト名を指定することができる。実際にはWindows 2000マシンのインターネット接続側のIPアドレスは、プロバイダからDHCPによって割り当てられており、(毎回変わるので)具体的な数値で指定することはできない。そのためNPFWでは、アルファベットによるホスト名を使ってフィルタのルールを設定する必要がある。今回の記事では、Windows 2000マシンの名前を「myserver」であるとしている。この名前はコマンドライン上で「ipconfig /all」コマンドを実行することによっても確認できるし、デスクトップ上の[マイコンピュータ]を右クリックして[プロパティ]を表示させ、[ネットワークID]タブを見ることによっても確認できる。
ところが、このNPFWで扱うホスト名とは、このマシン名(NetBIOSホスト名ともいう)ではなく、各インターフェイスごとに付けられた名前のことを指している。よって2枚のイーサネット・カードを取り付けたマシンには、NPFWでは2つのホスト名を持つということに注意していただきたい。筆者の手元で試した限りでは、Windows 9xがつながっているローカルのLAN側のインターフェイス(192.168.0.1というIPアドレスの付いている方)はマシン名と同じく「myserver」となっていたが、反対側のインターフェイスの名前は「myserver-i1」というふうに、「-(ハイフン)」と「i(小文字のi)」と「1(数字の1)」が付加されていた(上記の図参照)。ネットワーク・カードをインストールした順番によっては、「-i1」が逆の方につくこともあるし、もっと異なる別の名前になっているかもしれない(「myserver-i2」など)。これを確認するには、まず最初にNPFWをデフォルトのまましばらく運用してみて、イベントログにいくつかログが記録されるのを待てばよい。そしてイベントログの内容をチェックすると、いくつかホストアドレス名が記録されているはずである。ローカルのマシンが起動するときにDHCP要求を出しているので、それを受けている側のホスト名が何になっているかを確認していただきたい。
INDEX | ||
[運用]インターネット常時接続時代のパーソナル・セキュリティ対策(第4回) | ||
1.NPFWの内部アーキテクチャ | ||
2.ファイアウォール・ルールの追加設定 | ||
3.インターネット接続共有におけるNPFW(1) | ||
4.インターネット接続共有におけるNPFW(2) | ||
運用 |
- Azure Web Appsの中を「コンソール」や「シェル」でのぞいてみる (2017/7/27)
AzureのWeb Appsはどのような仕組みで動いているのか、オンプレミスのWindows OSと何が違うのか、などをちょっと探訪してみよう - Azure Storage ExplorerでStorageを手軽に操作する (2017/7/24)
エクスプローラのような感覚でAzure Storageにアクセスできる無償ツール「Azure Storage Explorer」。いざというときに使えるよう、事前にセットアップしておこう - Win 10でキーボード配列が誤認識された場合の対処 (2017/7/21)
キーボード配列が異なる言語に誤認識された場合の対処方法を紹介。英語キーボードが日本語配列として認識された場合などは、正しいキー配列に設定し直そう - Azure Web AppsでWordPressをインストールしてみる (2017/7/20)
これまでのIaaSに続き、Azureの大きな特徴といえるPaaSサービス、Azure App Serviceを試してみた! まずはWordPressをインストールしてみる
|
|