Enterprise Watch
バックナンバー

Windows Server 2008の検疫システム「NAP」を見る【第二回】

NAPを試してみる

 前回の記事では、Microsoft NAP(Network Access Protection)の概略に関して述べたが、今回は実際にNAPを動かしてみる。これにより、NAPにどのような機能があり、どのように利用できるのかよくわかるだろう。


DHCPを実施ポイントに利用する場合のネットワーク構成イメージ
 NAPには、検疫をコントロールするための実施ポイントが必要になる。Windows Server 2008では、802.1X、IPsec、VPN、DHCPなどを実施メカニズムに選択することができるが、今回は構築が最も簡単なDHCPを利用した。

 今回構築したネットワークは、Windows Server 2008が3台、クライアントが1台の非常にシンプルなテストネットワークだ。NAPの実施ポイントとして利用するDHCPサーバーには、Windows Server 2008のDHCPサーバーが必要となる。今回はDHCPサーバーとNAPのコントロールを行うNetwork Policy Server(NPS)は、1台のサーバー上に構築した。DHCPサーバーとNPSを別々のサーバーに構築することもできるが、今回はシンプルに行うために、このような構成にした。ちなみに、DHCPサーバーとNPSを別々のサーバーに構築する場合は、DHCPサーバー上にNPSをRADIUS Proxyとして構成する必要がある。

 もう1台のサーバーには、Active Directory(AD)とDNS(AD連携)を構築した。最後の3台目は、非正常と判断されたクライアントPCが接続できる「修復サーバー」の役割を担う。ただし今回は、実際に修復は行わないため、検疫されたPCからのアクセスが可能なことを確認するにとどめる。


今回の検証で利用したネットワーク図
 テストネットワークとして、IPアドレスが172.16.2.1~172.16.2.10までのプライベートネットワークを使用する。このネットワーク全体のドメイン名としては、「example.com」を割り当てている。また、インターネットへの接続は行っていない。

 AD兼DNSとなるサーバーは、「WS08-AD」でIPアドレスは172.16.2.1。DHCP兼NPSとなるサーバーは、「WS08ー00」でIPアドレスは172.16.2.2で、修復サーバー「WS08-01」には172.16.2.3を割り当てる。また、DHCPサーバーで付与するIPアドレスは172.16.2.4~172.16.2.10とする(ネットワーク図を参考にしてほしい→デフォルトゲートウェイ、DNSサーバーのアドレスも記入しておく)。クライアントPCは「VISTA00」とし、IPアドレスはDHCPで配給する。

 検証に当たってはまず、WS08-ADにADとDNSの両サーバーを構築した後で、WS08-00、WS08-01に静的IPを割り振り、ADへ登録。次に、WS08-00にDHCPサーバーを構築し、VISTA00へDHCPサーバーからIPアドレスが配布されていることを確認して、VISTA00もドメインに追加しておく。最後に、WS08-00にNPSをインストールし、DHCPの検疫に必要な項目を設定して、準備を整える。なお、ここまでの詳細な手順については、こちらで別途紹介するので、興味のある方はご参照いただきたい。


NAPをテストしてみる

NPSの「Windowsセキュリティ正常性検証ツール」では本来多くの項目をチェックできるが、まずはファイアウォールが有効かどうかだけにチェックを入れる

クライアントPCのVISTA00では、あらかじめファイアウォールを無効にしておく
 NAPでは本来、DHCPや802.1Xなど、どの実施ポイントを利用するかにかかわらず、クライアントPCの状態を細かくチェックできる。現在はサードパーティのソフトウェアベンダーがまだNAP対応を済ませていないため、Windows標準のSHA(System Health Agent)/SHV(System Health Validator)を利用することになるが、この中でも、OSのセキュリティセンターで確認できる項目を検疫に利用可能。具体的には、ファイアウォールやウイルス対策ソフト、スパイウェア対策ソフト(Windows Vistaのみ)が有効か、ウイルス対策ソフトのパターンファイルが最新か、OSに最新のパッチが適用されているか、OSの自動更新機能が有効か、といった各項目について、クライアントPCの状態を確認できる。

 ただし、まず最初の検証ではシンプルに挙動を確認するため、ファイアウォールが有効になっているかどうかだけをチェックすることにした。この設定を反映するため、WS08-00のサーバーマネージャ上でNPS(Network Policy Server)を開き、「ネットワークアクセス保護」→「システム正常性検証ツール」→「Windowsセキュリティ正常性検証ツール」をダブルクリック。「構成」をクリックし、「Windows Vista」の設定をファイアウォールのみに設定する。

 さらに、MPSにある「ポリシー」→「ネットワークポリシー」→「NAP DHCP非準拠」をダブルクリックし、「設定」タブの→「ネットワークアクセス保護」→「NAP強制」→「自動修復」を無効にしておく。

 ここで、テストに使うクライアントPC(VISTA00)のWindows Vistaを起動してみる。このクライアントPCでは、事前にファイアウォールを無効にしてあるので、SHAモジュールがPCが正常性条件を満たしているかどうかのチェックを行い、NAPのポリシーに違反していると、検疫ネットワークに隔離される。

 コマンドプロンプトでネットワークの状態を調べるipconfigコマンドを入力すると、DHCPサーバーによりネットマスクが255.255.255.255にセットされているのがわかる。さらに、ルーターに関しては、データが入っていない。ドメイン名(DNSサフィックス)に関しても、隔離されたクライアントPCに与えられるerror.example.comとなっている。


NAPエージェントが状態をチェックしているので、ファイアウォールが無効になっていれば、自動的に制限ネットワークに移行されてしまう。下に、アラートが表示されている IPCONFIGコマンドでネットワークの状態をチェックすると、DNSサフィックスとサブネットマスクが変更されているのがわかる。さらに、デフォルトゲートウェイは空白になっている こちらが、正常な場合のネットワークパラメータ。隔離後のものと見比べると、違いがわかる

 このとき、静的ルートオプションで指定した修復サーバー「WS08-01」に対しては、引き続きアクセスを行える。実運用時には、修復サーバーにOSのアップデート(WSUS)やウイルス対策ソフトなどのアップデート環境を用意しておけば、ポリシーに違反したクライアントPCへアップデートを適応して、NAPの検疫をクリアさせることができる。

 テストではここで、VISTA00のWindowsファイアウォールを有効にしてみる。すると、NAPが自動的に再チェックをして、フルアクセスのネットワークにセットし直してくれる。もちろんその後もチェックは継続して行われるので、ユーザーがファイアウォールを無効にセットするとすぐ、ネットワークは検疫ゾーンに移行されてしまう。


自動修復機能もあるが…

NPSのネットワークポリシー→NAP DHCP非準拠→設定→NAP強制の自動修復を有効にする。これで、NPSから自動的に設定を変更することができる

自動修復機能を利用した際、サードパーティのスパイウェア対策ソフトではなく、Windows Defenderが有効になった
 またもし、ネットワークポリシーのNAP強制の自動修復を有効にしておけば、無効になっていたファイアウォールが自動的に有効に設定し直される。

 注意が必要なのは、自動修復などを行ってくれるのは、マイクロソフトのWindowsファイアウォールやWindows Defender(スパイウェア対策)だけだという点。もし、シマンテックやトレンドマイクロのファイアウォールやウイルス対策ソフトを利用している場合は、無効になっていることはチェックできるが、自動修復機能を使って、自動的に有効にすることはできない。このため、ユーザー自身の手で有効に設定し直さなければならない。

 これは、サードパーティのウイルス対策ソフトなどがNAPに対応していない、つまりSHA/SHVがリリースされていないため。現在シマンテックのファイアウォールを利用していて、それを無効にした場合でも、NPSのポリシーが自動修復が有効になっていると、マイクロソフトのWindowsファイアウォールが自動的に有効になってしまう。こうした挙動は、将来的にサードパーティ製品でのNAP対応が行われれば、解決されるだろう。


 また気になった点として、自動修復機能を有効にしていて、修復が行われても、何かのタイミングでネットワークの再設定がうまくいかなかったことが何度かあった。この場合、ネットワーク接続を一度無効にしてから再度有効にし、ネットワーク接続を修復すれば、きちんと動くようになった。念のため、付記しておく。


二項目以上のチェックや警告だけの運用もサポート

ファイアウォールを有効にしても、ウイルス対策ソフトが無効になっているため、セキュアゾーンには移行しない
 検証ではさらに、Windowsセキュリティ正常性検証ツールでチェックする項目を複数にセットしてみる。ここでは、ファイアウォールとウイルス対策ソフトの2つの項目をチェックするようにしてみた。

 クライアントPCでは、両方とも無効にしてみると、アラートが2つ表示され、検疫ゾーンに移行する。ここで、ファイアウォールだけを有効にしてみても、検疫ゾーンからセキュアゾーンのネットワークに再設定はされない。ウイルス対策ソフトも有効にしないと、セキュアゾーンには移行されないのだ。

 またここまでのテストでは、ポリシーに準拠しないPCのネットワークアクセスを制限するようにしたが、NAPではそうしたPCへの動作をさまざま設定することができる。例えば、クライアントPCの検疫状態をNPSのログに記録するだけの設定や、検疫にパスしないクライアントPCもセキュアゾーンのネットワークに接続させるものの、可能な限り自動修復を行うような設定にもできる。もちろん、今回のように、検疫にパスしないクライアントPCは、検疫ゾーンに移行させて、制限されたネットワークアクセスのみを提供するように設定することも可能だし、そのレベルも、すべての検疫をパスしないとネットワークにアクセスできなくなるようにするという、もっとも厳しい運用にすることも可能だ。

 このように、NAPは、ユーザーの導入状況に応じた運用を行うことができるため、最初は緩い検疫から、日にちが経つにつれて、厳しい検疫に移行していくといった、段階的な運用をすることができる。実運用を考えると、一斉に厳しい運用しかできなくなる検疫システムと比べると、非常に導入しやすいだろう。


セキュリティ強度は強くないDHCP検疫

 テストでは、DHCPサーバーを実施オプションにしたが、実運用を考えると、DHCPサーバーをNAP実施オプションにしている場合は、高いセキュリティは提供できない。NAPのドキュメントにも書かれているが、ちょっとした知識があれば、DHCPサーバーを実施オプションにした検疫システムは破られてしまう。

 やはり、本格的な検疫を行うには、802.1Xなどのスイッチを実施オプションにするか、IPsecを実施オプションにした検疫システムが必要になるだろうと感じた。IPsecの場合は、すべてのクライアントPCに証明書を配布する必要があるため、いわばオールorナッシングのシステムとなる。このため、Windows VistaやXPだけで構築されているシステムならいいが、MacやLinuxなど、異機種が入り交じった環境下では難しいかもしれない。

 ともかく、DHCPサーバーを実施オプションにするのは、NAPのテスト環境だけにして、本格的な運用に関しては、ほかの実施ポイントを選択すべきだろう。実施オプションの選択は、ネットワーク構築にも関わってくるため、最初はDHCPで始めて、途中で802.1Xに変更するといった場合は、移行に苦労する環境があることも考えられる。それならば、最初からセキュアな検疫システムが構築できる実施ポイントを選択した方がいい。


NAPをテストしてわかったこと

NAPは、System Center Configuration Manager 2007と連携して動作する。SCCMを利用することで、柔軟なクライアントPCの更新が可能だ
 実際にNAPをテストしてみると、今後のシステム運用という面では、便利になりそうだという印象を持った。ただ、マイクロソフトが言うように、NAPは基盤であって、これだけでは完成されたモノではないということもよくわかった。例えば、サードパーティのウイルス対策ソフトとの連携に関しても、サードパーティがNAPに対応したSHA/SHVをリリースしないと始まらない。

 また今回のテストでは省略しているが、OSのアップデートに関しても、WSUS(Windows Server Update Services)などにより自動的に行うようにする仕組みが必要になるだろう。マイクロソフト製品では、System Center Configuration Manager 2007をNAP対応にしているので、これを利用すれば、社内の独自アプリケーションがインストールされているかどうかをチェックしたり、インストールされていなければ、自動的にインストールしたりすることもできる。

 個人的に思ったのは、NAPでクライアントPCのグループポリシーなどのコントロールができれば非常に便利になると思う。例えば、USBメモリを使用してはいけないポリシーなのに、ノートPCでUSBメモリを使っていると、自動的にネットワークから隔離されたり、自動的にUSBメモリを使えないように設定し直したりすることができれば便利だ。

 Windows Server 2008のADにあるグループポリシーを利用すればいいが、やはりNPSに連動していれば、より使いやすいソリューションになるだろう。これにより、一括して、クライアントPCのセキュリティレベルをチェックし、コントロールすることができるようになるのであれば、ユーザーにとってのメリットになる。マイクロソフトの今後の取り組みにも、引き続き期待したいところだ。


 さて、ここまではNAPの概要と実際の動作を説明してきたが、最終回となる次回では、少し視点を変えて、NAPをパートナーがどのように見ているかについて紹介する。



URL
  マイクロソフト株式会社
  http://www.microsoft.com/japan/
  Windows Server 2008の検疫システム「NAP」を見る【第二回】 設定編
  http://enterprise.watch.impress.co.jp/static/nap/nap_1.htm

関連記事
  ・ Windows Server 2008の検疫システム「NAP」を見る【第一回】(2008/02/22)


( 山本 雅史 )
2008/02/29 09:01

Enterprise Watch ホームページ
Copyright (c) 2008 Impress Watch Corporation, an Impress Group company. All rights reserved.