運用
常時接続時代のパーソナル・セキュリティ対策(第4回)

2.ファイアウォール・ルールの追加設定

デジタルアドバンテージ
2001/02/21


 NPFWには、デフォルトで80個弱のパケット・フィルタのルールが定義されているが、これはブロックしておいた方が望ましいパケットに対するルールが定義されているだけである。これらのルールに合致するようなパケットが送受信された場合(外部からのインバウンド・パケットだけでなく、内部から外部に向けて発信されるアウトバウンド・パケットのいずれでも)、ルールに従って、ブロックされるかそのまま通過するかが決められる。そして、必要ならばイベントログ・ファイルにその情報が記録される(ログを残すかどうかは、各ルールごとに設定されている)。

 デフォルトのルールに合致しないパケットの場合は、基本的にはセキュリティレベルの設定に従って、その扱いが決められる。セキュリティレベルが「低」ならば、そのパケットはそのまま通過することになるので、何の制限もなく通信ができるということになる。つまり、既知のウイルスやファイル共有サービスに関わる通信など、危険と思われるパケットについてはブロックされるが、そうでないアプリケーションの場合はNPFWによってブロックされることなく通信が行えるのである。この設定は、最も制約が少なく、ほとんどのネットワーク・アプリケーションを制約なく利用できるという特長があるが、未知のウイルスなどによる(未知の)通信はブロックされないので、セキュリティ的にはやや強度が低い。

 セキュリティレベル設定が「中」(これがデフォルト設定)か「高」の場合は、基本的には、ルールに合致しない通信があったことをユーザーに通知するために、ポップアップ・ウィンドウが表示される。ユーザーは、その通信(パケット)を許可するかブロックするかを選択することができるし、必要ならば新たにファイアウォール・ルールを追加して、警告メッセージを出させないようにすることもできる。一般的には、デフォルトの「中」のセキュリティレベルで運用しながら、新しいネットワーク・プロトコル(ネットワーク・アプリケーション)が増えるたびに新たにファイアウォール・ルールを追加していくことになるだろう。この際[拡張オプション]画面の[ファイアウォール規則の自動作成を有効にする]をオンにしていると、以下で説明する自動設定はすべて暗黙のうちに行われ、ユーザーが手動で介入する必要はない。しかしファイアウォールの動作を確認するためにも、NPFWの導入当初は手動による設定・確認をするか、せめてイベントログを覗いて、何が行われているかを確認するべきだろう。何らかの原因で、実は全然動作していなかった、というようなトラブルも考えられるからだ。

 NPFWが新しい、未知のネットワーク・トラフィックを検出した場合、以下のような警告ダイアログボックスが表示される。これは、コマンド プロンプト上でFTPコマンドを実行したところである。FTPコマンド(FTP.EXE)を実行すると、まず最初に、FTPサーバの21番ポートに対するTCPのアウトバウンド・パケットが発生する。NPFWは、このパケット(TCPのコネクションを開始するためのSYNパケット)を検出し、デフォルトのファイアウォール・ルールにない通信であると判断して、このようなダイアログボックスを表示するのである。

未定義のパケットに対する警告メッセージ
ファイアウォールのルールに合致しないパケットを検出した場合に表示されるダイアログボックス。パケットの種類と向き(TCPかUDPか、インバウンドかアウトバウンドか)、ポート番号、パケットを送受信しようとしているアプリケーション名(プログラム・ファイル名)などが表示されている。ユーザーは、新しいルールを定義するか、それともルールを定義せずに、このパケットだけを暫定的に許可するか、ブロックするかを決定しなければならない。
  通信の概要。
  アプリケーション名もしくはプログラム名。パケットを送受信しようとしているアプリケーション名。システム組み込みのサービスの場合はsvchost.exeなどとなっている。
  通信を検出した時刻。
  通信の種別。通信先のプロトコル種別とポート番号。
  通信先のIPアドレス。
  ファイアウォール・ルールを新た作成してNPFWに追加し、今後、同じプロトコルに対するメッセージを出力させないようにする。
  この通信をブロック(破棄)する。
  この通信を許可する。TCPならば接続が確立することになる。

 ダイアログボックスの上部に「警告」と大きく表示されているので、何か不正な通信が行われているかのように感じるかもしれないが、これはWebブラウザやメール・ソフトウェアなど、通常のネットワーク・アプリケーションを使用した場合にも表示されるメッセージである。単に、デフォルトのファイアウォール・ルールにマッチするものがないということを表しているので、ユーザーはこのパケットの扱いについて、NPFWに指示を与える必要がある。ユーザーが与えることのできる指示としては以下の3つがある。

  1. これはユーザーの意図していない(望んでいない)通信なので、このパケットをブロック(破棄)する。
  2. これはユーザーの意図している(望んでいる)通信なので、このパケットの通過を許可する。
  3. 以後の通信のために、ファイアウォール・ルールを新たに定義して、それに従う。

 このダイアログボックスは、ESCキーなどでキャンセルすることはできない。ユーザーは、必ずいずれかの項目を選択して、パケットの扱いを決める必要がある。1と2は、それぞれ1回だけの措置として、パケットの破棄と許可を行うものである。もう一度同じ種類の通信パケットが送受信された場合は、やはり同じようにこのダイアログボックスが表示されるので、再度その措置について指示を与える必要がある。アプリケーションから送受信されるパケットの状態を逐一調べながら、その挙動を調べたりする場合に便利な方法である。

 2でパケットの通過の許可を選択すると、TCP通信の場合はこれによって接続が確立し、以後の通信が行えるようになる。しかしUDP通信の場合は、(TCPとは違って)往復する2つのパケットは独立しているので、2の方法でいったん通信を許可しても、逆方向の通信では再度このダイアログボックスが表示される。なお、1を選んでパケットをブロック(破棄)しても、通常のTCP/IP通信では自動的に何回かリトライ(再試行)するようになっているので(リトライはTCP/IPプロトコル・スタックだけでなく、アプリケーション側でも行うことが多い)、さらに何度か同じパケットが送受信されることになる。それに、たとえ2の許可を出すにしても、あまり長く時間がかかっていると、通信が失敗したとみなされることがあるので(ユーザーにとってはわずか数秒でも、通信プロトコル的に見るとタイムアウトに相当するくらい長い時間である)、このような手動による許可/拒否は、デバッグや通信の監視目的などでのみ使われる方法であるといってもよいだろう。

 これに対して3の方法は、このパケットに対して新たにファイアウォールのルールを定義しておき、以後、同じ種類のパケットについては、そのルールに基づいて処理をさせるという方法である。Webブラウザやメール・ソフトウェア、telnet、FTPなど、一般のアプリケーションに関しては、この方法であらかじめファイアウォール・ルールを作っておかないと、いちいち警告ダイアログが表示されるので、非常に使い勝手が悪いだろう。

 3を選択すると、ファイアウォールのルールを作成するための「ファイアウォール規則アシスタント」が起動される。

ファイアウォール規則アシスタント
ユーザーがファイアウォール・ルールの自動生成を指示すると起動されるウィザード。アシスタントからの情報に従ってボタンをクリックしていくと、自動的にファイアウォール・ルールが生成され、以後同じ種類の通信に対しては、これらのルールが適用されるようになる。
  作成しようとしているルールに対する説明。アプリケーションごとに固有のルールが作成される。ここでは「File Transfer Program」のためのルール作成であることを示している(この名前はプログラム・ファイル中に記述されている)。
  自動設定ですべてのルールを作成する。あらかじめ定義されているルールを使う。
  この通信だけを許可するルールを作成する。
  この通信だけをブロックするルールを作成する。
  このアプリケーション(この場合はFTP.EXE)による通信をすべて許可する。
  このアプリケーション(この場合はFTP.EXE)による通信をすべてブロックする。

 このウィザードでは、全部で5種類の選択肢が用意されているが、いちばん望ましいのはの自動設定を使うという方法である。

 NPFWでは、Windows環境においてよく使われるネットワーク・アプリケーション(アプリケーションのファイル名)と、その使用ポートに関する情報があらかじめ用意されており、それらに関しては、ユーザーの手をわずらわすことなくルールを生成できるようになっている。ただしセキュリティ上の観点から(使わないアプリケーションのためにポートを開けておくのは危険だから)、それらのルールは最初はシステムには組み込まれておらず、ユーザーがそのアプリケーションを使用した時点で初めてファイアウォール・ルールとして組み込むようになっている。Windows版のNorton Personal Firewall 2001の初期状態では、約900弱のアプリケーションに対するルールがあらかじめ用意されている(これは定義ファイルの数であり、実際には1つの定義ファイルで複数のバリエーションに対応しているものもある)。この中には、FTP.EXEやTELNET.EXE、Internet Explorer(IEXPLORER.EXE)、Outlook Express(MSIMN.EXE)のような標準のWindowsプログラムだけでなく、Microsoft Word(WINWORD.EXE)やExcel(EXCEL.EXE)のような一般的によく使われるアプリケーションなどに対するルールも追加されている(もちろんMicrosoft以外のアプリケーションにも多数対応している)。アプリケーションによってはWebブラウズやメール機能などを持っていたりするので、外部との通信を行うために、ファイアウォールを通過させる必要があるからだ。また、最近ではゲームなどでもネットワーク対戦機能が一般的に備わっているので、それらのためのルールも用意されている。

 自動設定されるルールでは、各アプリケーション・プログラムごとに、そこで使用されているすべての通信ポートが網羅されているので、なるべくこれらの自動設定を使うのが望ましい。例えばFTPならば、アウトバウンド・パケットだけでなく、TCPのデータ・ポート(TCPの20番ポート)に対するインバウンドのパケット(PASVモードの場合は逆向き)を許可しなければならないなど、いろいろと注意点がある(さらに細かく言えば、ソース・ポート番号が20で、かつ、宛先ポート番号が1024以上のもののみを許可しないと、ソース・ポート番号を詐称したパケットが通過してしまう)。またWebブラウザなら、単にTCPの80番(HTTPプロトコル)のアウトバウンド・パケットを許可するだけでなく、SSLProxyサーバ(8080や8088番などが多いが、場合によってはほかのポートもよく使われる)、FTP、Gopher、Web Folder(Internet Explorerの場合)に関するポートなども通過するようにしないといけない。これらの設定を間違いなく確実に行うためには、自動設定を使用することが望ましいだろう。

FTPの自動設定例
FTPコマンドに対するファイアウォール・ルールを自動設定させたところ。プログラム・ファイル名(FTP.EXE)や使用ポート番号などに対する制約が自動的に設定されている。
  FTPプロトコルに関するルール。全部で4つある。FTPのコマンド・ポートに関するルールが1つ、FTPのデータ・ポートに関するルールが1つ、FTPのPASVモードに対するルールが2つの計4つである。

 以上のような自動設定は、NPFWにとって既知のアプリケーションならば問題なく動作するが、NPFWに登録されていないアプリケーションの場合はまったく利用することができない。その場合は、ユーザーが手動でルールを追加する必要がある。NPFWは、プログラムの実行ファイル名と使用プロトコルによって自動設定するかどうかを決めているので、例えば自分で作成したオリジナルなファイル名を持つFTPプログラムの場合には、やはり手動でルールを追加する必要がある。このようなプログラムを実行すると、先のルール選択画面では、自動設定の項目がグレーになっていてユーザーが選択することはできない。例えば以下は、オリジナルのFTP.EXEをMYFTP.EXEというファイル名にしてアシスタントを実行したところである。

自動設定が使用できない場合のファイアウォール規則アシスタント
NPFWにとって未知のアプリケーションからの通信があった場合のファイアウォール規則アシスタント。一番上の項目は選択できない。
  NPFWが関知しないアプリケーションなので、自動設定は利用できない。
  この種類の通信だけを許可するルールを作成する。
  この種類の通信だけをブロックするルールを作成する。
  このアプリケーション(この場合はMYFTP.EXE)による通信をすべて許可する。
  このアプリケーション(この場合はMYFTP.EXE)による通信をすべてブロックする。

 の違いは、対象となる通信の種類である。この例ではFTPプロトコルを使っているので、では、「TCPのアウトバウンドのFTP(21番)ポートに対する通信」だけが許可/ブロックされるルールが作成される。それに対してでは、このMYFTP.EXEから送受信されるすべてのパケットが許可/ブロックされる。MYFTP.EXEが「TCPのアウトバウンドの21番」以外の種類のパケットを使う場合はこちらの方が望ましいが(実際、FTPでは20番のインバウンド通信も使う)、そうでない場合はの方がより制限が厳しくなるので、安全性は高いといえる。ただし制限が強くなる分だけ使いにくく、場合によってはさらにルールを追加しなければならない。

 いずれにしろ、ここで生成されるルールでは、必ずMYFTP.EXEアプリケーションから送受信されるパケットについてのみ適用されるので、前回/前々回紹介したパケット・フィルタリング機能と比べると、安全性は高いといえる。今まで紹介したパケット・フィルタでは、どのアプリケーションから送受信されたパケットであるかを識別することはできなかったので、すべてのアプリケーションで使用する可能性のあるポートをすべてオープンにしておく必要があったからだ。それに比べるとこのNPFWのパケット・フィルタでは、パケットを送受信するアプリケーションを限定することができるので、余分なポートをあらゆるアプリケーションに対してオープンにしておく必要がない分だけ、安全性は高いといえる。


 INDEX
  [運用]インターネット常時接続時代のパーソナル・セキュリティ対策(第4回)
    1.NPFWの内部アーキテクチャ
  2.ファイアウォール・ルールの追加設定
    3.インターネット接続共有におけるNPFW(1)
    4.インターネット接続共有におけるNPFW(2)
 
 運用


Windows Server Insider フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Windows Server Insider 記事ランキング

本日 月間