今回から何回かに分けて、Windows Server 2008で加わった新機能「ネットワーク アクセス保護(以下、NAP : Network Access Protection)」について解説していく。NAPの利用に際しては、Active Directory、DNSサーバ、DHCPサーバの導入・設定に関する知識が必要になる。

検疫ネットワークとは

NAPとは、いわゆる検疫ネットワークを実現するための機能である。これを利用することで、管理者が設定した条件に適合しないコンピュータをLANに接続できないようにする。

例えば、「セキュリティ修正プログラムを正しく適用できていない」「アンチウィルスソフトがセットアップされていない」「アンチウィルスソフトのパターンファイルが古い」といった危険なコンピュータを排除することで、セキュリティ上のリスク要因を減らすのが狙いである。

ただし、単に排除するのではなく、排除されたコンピュータをLANとは独立した別のネットワークに接続して、そこで所要の設定を整えられるようにするのが通例である。

こうした機能を実現するため、Windows Server 2008ではNPS(Network Policy Service)を使用する。NPSの基本的な動作内容は、以下の通りである。

  • 管理者はNPSサーバ(検疫サーバ)に対して、クライアントPCが満たすべき条件を設定する
  • クライアントPCでは、検疫ネットワーク用のエージェントを組み込んで有効にする
  • クライアントPCをネットワークに接続すると、まずエージェントがNPSサーバと通信して、管理者が設定した条件を満たしているかどうかを検証する
  • 条件を満たしていれば、NPSサーバはLANへの接続を許可する
  • 条件を満たしていなければ、NPSサーバはLANへの接続を拒否するか、あるいは検疫用修復サーバへの接続のみを認める。後者の場合、その修復サーバを使って条件を満たすための作業を実施すると、LANへの接続が可能になる

検疫ネットワークを実現するための手法

ここまでの解説を敷衍すると、検疫ネットワークを実現するには、以下の機能が必要ということになる。

  1. クライアントPCで、セキュリティ対策ソフトやWindows Updateの状況を確認する機能
  2. 条件を満たしたクライアントPCにだけ、LANへの接続を認める機能
  3. 条件を満たしたクライアントPCと条件を満たしていないクライアントPCが、相互に通信できないようにする機能

NAPでは、「1.」を実現するために、Windows XP(SP3以降)・Windows Vista・Windows 7が備えるNAP用のエージェント機能・システム正常性エージェント(SHA : System Health Agent)とシステム正常性検証ツール(SHV : System Health Validator)を使用する。Windows XP SP2以前のOSはSHAとSHVを備えていないため、NAPを利用できないことになる。

「2.」と「3.」の実現手段については、複数の選択肢がある。

まず、DHCPサーバで2種類のスコープを用意して、管理者が設定した条件に適合する場合とそうでない場合とで、サブネットマスクの内容を使い分ける方法がある。条件に適合しない時はサブネットマスクを「255.255.255.255」とするため、クライアントPCは自分自身との通信しか行えない理屈だ。

この状態で、さらに修復サーバに通じる静的ルートだけを割り当てることで、同じ物理ネットワークに接続していても、検疫に用いるもの以外のサーバや他のクライアントPCには接続できないようにする。そして、修復サーバを使った修復が完了すると、サブネットマスクを変更するとともに、修復サーバに通じる静的ルートを削除する。

次に、IPsec(IP Security)を利用する方法がある。条件を満たしたクライアントPCにのみ、デジタル証明書を発行して、それを鍵に使ってIPsec通信を行う。デジタル証明書を発行するために、Active Directory証明書サービスが必要になる。

この方法を使用すると、NAPが接続を許可したクライアントPCはLAN内部でIPsecによる暗号化通信を行うことになる。そして、NAPが接続を許可しないとIPsec通信を行えないので、両者の相互通信は不可能という理屈だ。

ただし、NAPが動作する認証用サーバはIPsecを使用しなくても通信できるようにしておかないと、NAPそのものが機能しなくなってしまう。すると、検疫操作が不可能になって、永遠に接続できない。

このほか、IEEE802.1X端末認証を利用する方法もある。この方法は、接続を認めたコンピュータとそうでないコンピュータを別々のVLAN(Virtual LAN)に割り当てて分離する仕組みだ。VLAN同士の中継を行わなければ相互の通信は不可能である。ただし、導入に際しての敷居はもっともm高く、Active Directory証明書サービスに加えて、IEEE802.1Xに対応したスイッチング ハブが必要になる。