何でも屋DHCP 強制を使用してネットワーク アクセスを制御する
Greg Shields
目次
NAP の目標
いまいましい行為を働くユーザーは、どんどん抜け目なくなっています。こうしたユーザーはファイアウォールを無効にする方法を突き止めており、コーヒー ショップ ネットワークの最も危険な部分に入り浸っています。こうしたユーザーは、毎月の更新プログラム サイクル中はラップトップをオフィスに持ち込みません。最後にブルー スクリーンが発生したのは更新プログラムを適用したせいだと信じているからです。さらには、ほんの少しでもパフォーマンスが低下する気配があると、ウイルス対策ユーティリティやスパイウェア対策ユーティリティを無効にしてしまいます。ユーザーは自分たちのためになると思ってこのような措置をとっているのですが、実際のところ、このような行為は企業のネットワークのセキュリティに悪影響を与えています。
適切に構成され更新プログラムが適用されたコンピュータは正常なコンピュータですが、こうしたコンピュータの正常性を維持するのは骨の折れる仕事です。セキュリティ ポリシーを強制する方法があればいいのですが。強制を行うと、デスクトップとラップトップが適切なファイアウォール構成を持つことが保証されます。強制を行うと、適切な更新プログラムが適用されていないコンピュータはネットワークにアクセスできないことが保証されます。ウイルス対策やマルウェア対策を実行していなければ、強制によって、あなたの汚れなき LAN に接続できないことを意味します。
現在、この種のセキュリティ ポリシー強制はネットワーク アクセス保護 (NAP) で実現することができます。NAP は、Windows Server 2008 の "ネットワーク ポリシーとアクセス サービス" に含まれるコンポーネントです。NAP では、サーバー上のサービスとクライアント上のサービスの両方を使用して、クライアントのセキュリティ ポリシーへの準拠状態を定期的に確認します。クライアントが適切に構成されていない場合、NAP では、そのクライアントが修復されるまでそのクライアントによるネットワーク アクセスを自動的に制限できます。さらに良いことに、NAP では、問題のあるクライアントを自動的に修復することができます (構成に問題のあるクライアントを、確立されたセキュリティ ポリシーに合う状態に戻すことができます)。
NAP は、Forrester のような独立系企業のアナリストがクラス最高のソリューションと見なす強力なツールです。Forrester のアナリストは、NAP を、"優位に立つもの" を表す右上の四分円に位置付けています。これはコスト効率のよいソリューションです。NAP は既に Windows や Active Directory 資産の一部なので、現在、ネットワークに NAP を実装するために追加のソフトウェアを購入する必要はないからです。NAP の機能は、既に Windows Server 2008 の全エディションで提供されています。NAP は、スケーラビリティが高くなるように設計されており、複雑なニーズと多数のクライアントを抱える大企業をサポートすることができます。
しかし、NAP がそれほど優れているなら、なぜ小規模な環境は NAP を利用しないのでしょうか。おそらく、いわゆる何でも屋の管理者の多くは、NAP でどのようなことを実現できるかを知らないか、NAP が複雑そうに見えるのでこれを使用する意欲をそがれてしまっているのでしょう。これは無理もないことです。NAP に関するドキュメントを一読すると、セキュリティ構成を強制するためのさまざまな NAP メカニズムに必要なあらゆる流動的要素に圧倒されるかもしれません。IPsec、802.1x、VPN、および TS Web アクセスはどれも、お使いの環境に現在存在しない可能性がある追加のコンポーネントを必要とする NAP 強制メカニズムです。しかし、DHCP ベースの NAP 強制を実装するために必要なものは、お使いの環境に既に用意されている可能性があります。
今月のコラムでは、設定が容易で使いやすいこの DHCP 強制メカニズムについて説明します。確かに、他の NAP 強制メカニズムの方がより強力な方法でクライアント構成を保証しますが、他の NAP 強制メカニズムの実装を成功させるには、より複雑なテクノロジ (証明書サービス インフラストラクチャなど) や、ネットワーク デバイスについての深い知識が必要です。
小さなことから始めて、徐々にレベルアップしていきましょう。
NAP の目標
手順の説明に入る前に、ネットワークのセキュリティ保護に関しておそらく皆さんが持っている目標のいくつかについて考えてみましょう。皆さんは、コンピュータが確実に適切な更新プログラムで更新されることをお望みでしょう。また、社外に持ち出されたラップトップが社内に戻ってきたときに適切なセキュリティ設定が適用されるようにしたいとお考えでしょう。きっと、ネットワークに接続してサーバーやワークステーションを感染させようとする悪意のあるコンピュータに対する防御も必要でしょう。
こうした目標がすべて達成され、コンピュータに適切な更新プログラムと適切なファイアウォール設定やマルウェア対策設定が適用された場合、一般に、コンピュータを正常であると見なすことができます。正常なコンピュータは、正常性を維持するために適切な保護を備えている傾向があります。また、このようなコンピュータはおそらくネットワーク内にマルウェアをばらまいてはいないでしょう。
NAP の役目は、ネットワーク上にあるコンピュータの正常性を監視および強制することです。コンピュータが接続されると、NAP は、そのコンピュータが正常であるか確認する質問をそのコンピュータに投げかけます。コンピュータが肯定的な応答を返した場合、NAP はそのコンピュータにネットワークへのフル アクセスを許可します。クライアントが応答できない場合、または否定的な応答を返した場合は、そのクライアントは特別な "修復" ネットワークに移されます。そのネットワークでコンピュータが使用できるリソースは、正常性を取り戻すために必要なリソースのみです (更新プログラムを適用するための Windows Server Update Services (WSUS) サーバー、最新のシグネチャ ファイルをダウンロードするためのウイルス対策サーバーなど)。また、NAP は、ネットワーク上にあるコンピュータを監視し、コンピュータの正常性が低下した場合にそれを認識し、低下した場合はすぐにそのコンピュータを修復することができます。
NAP の強制メカニズムは、コンピュータがネットワークにアクセスする方法と関係しています。コンピュータは、802.1x 対応のネットワーク スイッチまたはワイヤレス アクセス ポイントに物理的に接続します。続いて、DHCP サーバーにアドレスを要求します。社外にあるコンピュータは、VPN サーバー経由または TS Web アクセス Web サイト経由で接続する場合があります。ドメインとの通信には、IPsec 認証が必要な場合があります。
前述のとおり、NAP の DHCP 強制メカニズムは最も構成が容易で最も使いやすいメカニズムです。基本的に、DHCP サーバーが NAP のゲートキーパーになります。ネットワークに接続するコンピュータは、まず DHCP にアドレスを要求する必要があります。このときに、NAP が有効になっている DHCP サーバーが、そのコンピュータが正常であるか確認する質問をそのコンピュータに投げかけます。コンピュータが適切な応答を返した場合、DHCP は、ネットワークへのフル アクセスを持つアドレスをコンピュータに付与します。コンピュータがどのように応答すればよいかを認識していない場合、または不適切な応答を返した場合は、DHCP は修復用の特別なアドレスをコンピュータに付与します。
例をさらに単純にするために、WSUS の更新プログラムに関してのみクライアントを監視するよう NAP に指示します。この場合、クライアントが正常でないと見なされるのは、WSUS と通信していない場合または適切な更新プログラムが適用されていない場合だけです。後で説明しますが、このようなことができるのは、マイクロソフトがこうしたチェックの実行を可能にする組み込みのセキュリティ正常性検証ツールを提供しているからです。
この組み込みのセキュリティ正常性検証ツールを使用してコンピュータの正常性を確認するには、2 つのクライアント コンポーネントが連携する必要があります。この 2 つとは、(Windows Vista、Windows Server 2008、および Windows XP Service Pack 3 で既定で使用できる) NAP クライアント、および (コントロール パネルから使用できる) Windows セキュリティ センター (図 1 参照) です。NAP クライアントの役目が、NAP サーバー インフラストラクチャと連携し、クライアントの状態を確認し、実際に強制を実行することであるのに対して、セキュリティ構成が適切でない場合にそれを特定してレポートするのは Windows セキュリティ センターの役目です。次のセクションでは、クライアント コンポーネントとサーバー コンポーネントの両方を構成します。
図 1 Windows セキュリティ センター
WSUS の更新プログラムを強制するために DHCP NAP を実装する
ネットワークとドメインが既に用意されていて、お使いの環境には \\server1 という名前のドメイン コントローラが存在するとしましょう。また、NAP の実装をテストするのに使用する \\client1 という名前の Windows Vista ラップトップがあります。皆さんは、DHCP サービスと NAP サービスをホストする予定の \\nps という名前の Windows Server 2008 コンピュータを構築したばかりです。このコンピュータは、後で、更新プログラムが適用されていないコンピュータ用の修復サーバーとして機能するので、WSUS データベースもホストする予定です。この例では、こうしたサービスをすべて同じコンピュータに配置していますが、それぞれを別々のコンピュータに配置することもできます。DHCP 強制を機能させるには、Windows Server 2008 上で実行する必要があります。
サーバー \\nps 上で、サーバー マネージャを使用して、DHCP サーバー、ネットワーク ポリシーとアクセス サービス、および WSUS の役割をインストールします。テスト用に狭いスコープで DHCP を構成し、お使いの環境に合った必要な構成で WSUS を構成します。
次に、ドメイン内に NAP Client Computers という名前のグローバル グループを作成します。NAP で正常性を監視する必要があるコンピュータの名前を、後でこのグループ内に追加します。この例では、そのコンピュータは \\client1 です。
NAP の DHCP 強制では、アドレスを正常でないコンピュータとはまったく別の分離されたサブネットに割り当てることができますが、話を単純にするために、ここではコンピュータの DNS ドメイン名のみを変更します。ここで DHCP は、正常なコンピュータに、そのコンピュータの DNS サフィックスが contoso.com であることを通知します。一方、正常でないコンピュータには unhealthy.contoso.com という DNS サフィックスが付与されます。これにより、例を単純にしておくことができますが、正常でないコンピュータは必ずしも分離されないことに注意してください。基本的な概念を理解したら、後でここに戻ってサブネットの分離を実装することができます。
前述の DNS サフィックスを使用して DHCP スコープを構成します。これを行うには、DHCP コンソールで [スコープ オプション] を右クリックして [オプションの構成] をクリックします。表示されるウィンドウで、[詳細設定] タブをクリックします。このタブには、関心のある 2 つのユーザー クラスが表示されます。[既定のユーザー クラス] は、正常なコンピュータを表しています。このようなコンピュータには、オプション 15 で、フル アクセスを付与し、contoso.com という DNS サフィックスを付与する必要があります。[既定のネットワーク アクセス保護クラス] は、正常でないコンピュータを表しています。このようなコンピュータには、オプション 15 で unhealthy.contoso.com という DNS サフィックスを付与する必要があります。おそらく、さらに、オプション 6 で DNS サーバーの情報を入力し、オプション 3 でデフォルト ゲートウェイの情報を入力する必要があるでしょう。これらの処理をすべて終えると、結果は図 2 のようになります。ここで、DHCP スコープに対して NAP を有効にすることができます。これを行うには、スコープ自体を右クリックし、プロパティを表示し、[ネットワーク アクセス保護] タブで [このスコープに対して有効にする] をクリックします。
図 2 DHCP の既定の NAP クラスを構成する必要がある
これで、DHCP サービスの構成は完了です。次は、[NAP を構成する] ウィザードを使用して NAP 自体を構成します。"ネットワーク ポリシーとアクセス サービス\NPS (ローカル)" に移動したら、サーバー マネージャの右側のペインで [NAP を構成する] というリンクを探します。この例では、ウィザードの複数のページを以下のように構成します。
NAP で使用するネットワーク接続方法の選択: ネットワーク接続方法に DHCP を選択します。選択すると、[ポリシー名] ボックスに自動的に "NAP DHCP" と表示されます。
DHCP サーバーを実行する NAP 強制サーバーの指定: DHCP サービスが NAP サーバーとは異なるサーバー上にある場合は、ここでそのサーバー名を入力します。この例では、NAP と DHCP は同じサーバー上に配置されているので、このボックスは空白のままでかまいません。
DHCP スコープの指定: NAP を有効にする DHCP スコープを入力します。このボックスを空白のままにすると、すべての DHCP スコープが使用されます。
ユーザー グループとコンピュータ グループの構成: このダイアログ ボックスでは、作成済みの NAP Client Computers というグローバル グループを追加します。これにより、このグループのコンピュータに対してのみ強制を行うよう NAP ポリシーに指示します。他のコンピュータに対しては強制は行われません。
NAP 修復サーバー グループおよび URL の指定: このページでは 2 つのことが行われます。第 1 に、正常でないクライアントの修復を行う修復サーバーが指定されます。この例では、ドメイン サービス用の修復サーバーが \\server1 で、WSUS サービス用の修復サーバーが \\nps です。[新しいグループ] ボタンをクリックして、これらのサーバーを含む新しいグループを作成します。第 2 に、このページではトラブルシューティング用の URL が公開されます。この URL は、分離されたネットワークに修復のために差し戻される正常でないコンピュータのバルーン ヒント内に表示されます。この Web サイト (ご自分で構築する必要があります) では、クライアントに何が起こっているかについての説明や手動修復の手順を提供することができます。この例では、URL は空白のままにします。
NAP 正常性ポリシーの定義: この最後のページでは、Windows セキュリティ正常性検証ツールへのリンク (次の手順でカスタマイズします) が表示され、自動修復とネットワーク アクセス制限の設定が提供されます。ここでは、どちらも既定の設定のままにしておきます。
次はおもしろい部分です。ここで、強制に使用する Windows セキュリティ正常性検証ツール (WSHV) のコンポーネントを構成する必要があります。既定の WSHV には、監視できるいくつかの Windows セキュリティ センター コンポーネントが含まれています。
Windows ファイアウォール: システム上に、Windows セキュリティ センターに登録されているファイアウォールはありますか。そのファイアウォールは、すべてのネットワーク接続に対して有効になっていますか。
ウイルス対策とスパイウェア対策: ウイルス対策アプリケーションとスパイウェア対策アプリケーションはコンピュータにインストールされていますか。また、これらのアプリケーションは Windows セキュリティ センターに登録されていますか。これらのアプリケーションは有効になっていて、現在、最新のシグネチャを使用していますか。WSHA ではウイルス対策アプリケーションとスパイウェア対策アプリケーションは別々に扱われるので、対象システムにどちらか一方を強制することも両方を強制することもできます。
Microsoft 更新プログラム: コンピュータは、Windows Update またはローカルの WSUS サーバーを通じて自動更新を確認するように構成されていますか。このように構成されている場合、コンピュータが更新を確認したのは何時間前のことですか。利用可能な更新プログラムはすべてインストールされていますか。コンピュータを正常であると見なすには、どの程度の重要度 (重要、緊急など) を持つ更新プログラムがインストールされている必要がありますか。
サーバー マネージャで、"ネットワーク ポリシーとアクセス サービス\NPS (ローカル)\ネットワーク アクセス保護\システム正常性検証ツール" に移動し、[Windows セキュリティ正常性検証ツール] をダブルクリックします。表示される画面で、[構成] をクリックして図 3 に示すような画面を表示します。
図 3 既定の Windows セキュリティ正常性検証ツール
NAP で管理する領域を選択します。サードパーティ製のファイアウォール、ウイルス対策アプリケーション、またはスパイウェア対策アプリケーションを NAP で監視するには、これらを Windows セキュリティ センターに登録するか、それぞれのアドオン コンポーネントを提供する必要があります。この例では、図 3 に示すとおりのチェック ボックスのみをオンにします。これにより、すべてのクライアント システムで自動更新が有効にされ緊急の更新プログラムがすべてインストールされるようにするよう、NAP に指示します。両方の条件を満たすことができないクライアントは、自動的に修復ネットワークに移されます。このネットワークでは、WSUS サーバーが自動的に問題を解決してコンピュータを正常な状態に戻すことができます。
最後に、構成する必要がある設定が 3 つあります。これらはグループ ポリシーを通じて適用されます。新しいグループ ポリシー オブジェクト (GPO) を作成し、ドメインに関連付けて、編集のために開きます。
- ネットワーク アクセス保護エージェントを有効にし、"自動" に設定します。これは、"コンピュータの構成\ポリシー\Windows の設定\セキュリティの設定\システム サービス" の下で行います。
- NAP の DHCP 検疫強制エージェントを有効にします。これは、"コンピュータの構成\ポリシー\Windows の設定\セキュリティの設定\ネットワーク アクセス保護\NAP クライアントの構成\実施クライアント" の下にあります。エージェントをダブルクリックし、表示される画面で、この実施クライアントを有効にすることを選択します。この設定を適用するには、[NAP クライアントの構成] ノードを右クリックし、[適用] をクリックします。
- "コンピュータの構成\ポリシー\管理用テンプレート\Windows Components (Windows コンポーネント)\セキュリティ センター" の下にある Windows セキュリティ センターを有効にします。
最後に、グループ ポリシー管理エディタを閉じ、ポリシーの [セキュリティ フィルタ処理] で、Authenticated Users を、作成済みの NAP Client Computers グループに置き換えます。これで、ドメイン コンピュータを NAP Client Computers グループに追加して、ドメイン コンピュータへの NAP 強制の適用を開始することができるようになりました。グループ ポリシーがコンピュータに適用されると、そのコンピュータが DHCP とやりとりする際には、ここで説明した NAP 正常性チェックが行われるようになります。
napstat.exe を使用して、NAP クライアントの状態を確認することができます。コマンド ラインからこのツールを実行すると、システム トレイ アイコンとバルーン ヒントが表示されます。バルーン ヒントには、クライアントの強制状態に関する情報が表示されます。このバルーンをクリックすると、図 4 のような状態ウィンドウが表示されます。このウィンドウでは、適切なセキュリティ更新プログラムがインストールされていないためクライアントが要件に準拠していないことが示されています。NAP がクライアントを正常でないと見なしたため、この時点では、DHCP のリースが再ネゴシエートされており、DNS サフィックスは unhealthy.contoso.com に変更されているでしょう。
図 4 適切なセキュリティ更新プログラムがインストールされておらず正常でない NAP クライアント
言うまでもなく、セキュリティが強化されるように NAP の実装をカスタマイズする方法は他にもたくさんあります。正常でないクライアント用の完全に分離された修復ネットワークを作成するというのも方法の 1 つです。WSHV で追加の強制パラメータを構成するという方法や、新たなサードパーティ製 SHV を追加するという方法もあります。サーバー マネージャの [ネットワーク ポリシーとアクセス サービス] ノード内を確認すると、ニーズに応じて NAP をカスタマイズするための追加オプションが多数見つかるでしょう。
Greg Shields (MVP) は、Concentrated Technology の共同経営者です。何でも屋である IT プロフェッショナル向けのヒントとテクニックについては、www.ConcentratedTech.com を参照してください。