Home > Windows にまつわる e.t.c.

NAP-IPsec


Windows Server 2008 実践ガイド」でカットした原稿です

コンピュータ証明書の自動発行設定

NPS構築とIPsecで使用する証明書を発行するNAP用サブCAの設定

NPSサーバ構築

NPSのコンピュータ証明書設定

AD CSとNPSのインストール

IPsec用のコンピュータ証明書を自動発行する

NAP-IPsecの構成

NAP設定をGPOにセットする

クライアントのNAP参加とNAP-IPsecの動作確認

IPsecの強制設定

IPsec強制の適用

NAP-IPsecの仕組みを簡単に説明すると、サーバとクライアント間の通信をAD CSが発行したコンピュータ証明書を使ったIPsec通信を強制し、NAPクライアントが正常性が損なわれた時に証明書を削除してIPsec通信を出来なくしてしまう仕組みだ。
コンピュータ証明書の自動発行が必要なので、ドメインコントローラがWindows Server 2008 Enterprise以上でないと構築する事が出来ない。
NAP-DHCPはIPv4しかサポートしていないが、NAP-IPsecはIPv6もサポートしているので実運用環境として構築するのであればNAP-IPsecの方が現実的だ。

注意すべき点は、NAP-IPsecで保護をしているサーバ(本書では「NAP-IPsec」OUに格納したサーバ)はIPsec通信しか受け付けなくなり、IPsecを使っていないしていないコンピュータからの通信を受け付けなくなる点だ。
LAN環境でのNAP本命は、802.1x認証を使用するSWや無線LANを使用したタイプであることを付け加えておく。

 

コンピュータ証明書の自動発行設定

NAP-IPsecでは、コンピュータ証明書を使ったIPsecを使用している。
証明書は手動でセットしてもいいのだが、実運用を考えると自動発行になっているのが望ましいので、本書では証明書の自動発行をする。
証明書自動発行はWindows Server 2008 Standardでは実現できないので、Enterpriseが必要だ。

本書でのNAP-IPsec環境

まずはAD CSが自動発行になっているかを確認しよう。

[ad01] CAのプロパティを開く

[ad01] ポリシーモジュールのプロパティを開く

[ad01] 自動発行になっているのを確認

証明書自動発行が確認できたら、自動発行用のGPOを作成し「ワークステーション認証」をベースに、証明書を自動発行する「システム正常性認証」テンプレートを作成する。

[ad01] 証明書自動発行用のグループを作成

[ad01] ワークステーション認証の複製を作成

[ad01] Windows Server 2008 Enterprise Edition

[ad01] 名前を付けて、AD証明書を発行にチェック

[ad01] アプリケーションポリシーを編集

[ad01] 追加

[ad01] システム正常性の認証を選択

[ad01] コンピュータ証明書自動発行グループを追加して登録と自動登録を許可

[ad01] テンプレートの発行

[ad01] 先ほど準備したシステム正常性認証を選択

[ad01] 自動発行テンプレート設定完了

テンプレートが準備出来たら、Default Domain Policy GPOで証明書自動発行を設定する。

[ad01] Default Domain Policy編集

[ad01] 証明書自動登録のプロパティ

[ad01] ポリシーを有効にしフルチェック

 

NPS構築とIPsecで使用する証明書を発行するNAP用サブCAの設定

NPSサーバの構築

続いてNAPコントローラであるNPSサーバを構築する。

サーバ名 nps01(ドメイン参加)
IPv4アドレス 192.168.0.5/24
IPv4デフォルトゲートウェイ 192.168.0.254
IPv4 DNS 192.168.0.1/192.168.0.2
IPv6アドレス 自動構成
IPv6デフォルトゲートウェイ 自動構成
IPv6 DNS 自動構成

nps01がドメイン参加したら、nps01を「コンピュータ証明書自動発行」セキュリティグループのメンバーに登録し、nps01を再起動する。

[ad01] コンピュータ証明書自動発行セキュリティグループにメンバー追加

[ad01] オブジェクトの種類

[ad01] コンピュータを対象に加える

[ad01] nps01を指定

[ad01] nps01がメンバーに加わったのを確認してnps01を再起動

 

NPSのコンピュータ証明書設定

ドメインコントローラ側の設定は一旦ここまでにして、今度はNPS側を設定する。
まずは、コンピュータ証明書のセットだ。
ローカルコンピュータには自動発行されたシステム正常性の認証証明書が既にセットされているハズだ。これに加えてコンピュータ証明書を要求し、「クライアント認証、システム正常性の認証」と「クライアント認証、サーバー認証」の2つが入っていることを確認する。

[nps01] mmcを開きスナップを追加

[nps01] 証明書

[nps01] コンピュータアカウント

[nps01] ローカルコンピュータ

[nps01] 証明書の要求

[nps01] コンピュータ

[nps01] 2つの証明書がセットされた

 

AD CSとNPSのインストール

証明書が準備出来たら、AD CSとNPSをインストールしよう。インストールが終了すると、HRAがエラーになるが、これは気にしなくて良い様だ。

[nps01] AD CSとNPSをインストール

[nps01] 正常性登録機関を選択するとIISもインストールされる

[nps01] ローカルCAをインストール

[nps01] 匿名要求を受け付ける

[nps01] 先ほど要求した証明書を使用

[nps01] 証明機関

[nps01] スタンドアロン

[nps01] 下位CA

[nps01] 新しい秘密鍵を作成

[nps01] デフォルトのアルゴリズム

[nps01] わかりやすいようにSubCAとネーミング

[nps01] 親CAに要求を送信

[nps01] データベースはデフォルトのまま

[nps01] IISもデフォルトのままインストール

 

IPsec用のコンピュータ証明書を自動発行する

デフォルトではAD CSが証明書自動発行になっていないので、自動発行に設定変更する。

[nps01] SubCAのプロパティを開く

[nps01] ポリシーモジュールのプロパティを開く

[nps01] 証明書自動発行に変更

[nps01] AD CSの再起動が求められる

[nps01] AD CSの停止

[nps01] AD CSの再開

再度SubCAのプロパティを開き、「NETWORK SERVICE」アカウントを追加して「証明書の発行と管理」と「CAの管理」を許可する。

[nps01] NETWORK SERVICEを追加して証明書の発行と管理とCAの管理を許可

ここからいよいよNPSのセットアップだ。証明機関に自分自身を登録して、証明機関のプロパティが「スタンドアロン」になっているのを確認する。

[nps01] 証明機関を追加

[nps01} 自分自身を選択

[nps01] 証明機関のプロパティ

[nps01] 有効期限が4時間でスタンドアロンになっているのを確認

 

NAP-IPsecの構成

NPSの仕上げは、ウィザードを使ってNAP-IPsecを指定して各パラメータを自動生成する。
全てデフォルトで構わないが、今回は動作確認をするために自動修復を無効にしておこう。

[nps01] NAPを構成する

[nps01] NAP-IPsecを指定

[nps01] 動作確認のために自動修復を無効にする

仕上げは、正常性をどのように判定するかの設定だ。今回は動作確認をメインにするので、ファイヤウォールの有効性だけをチェックするようにする。

[nps01] 正常性検証ツールのプロパティを開く

[nps01] 構成

[nps01] ファイヤウォール有効性だけチェック

 

NAP設定をGPOにセットする

本書ではちょっと変わったGPOの使い方をするので、GPOを設定する前に少し動作を説明しておこう。

OU構造とGPO設定

GPOは通常OUに配置して、OUは以下にある全てのオブジェクトに対して影響するように設定するが、本書ではドメインルートにGPOを配置する。
このままではドメイン以下全てオブジェクトに対して影響するようになってしまうが、セキュリティフィルタを使って特定グループに所属しているオブジェクト(今回ではコンピュータ)に対してのみGPOが影響するようにする。
このようにすると、OUではなくセキュリティグループでGPOコントロールをする事が可能になるのだ。
また、NAP-IPsecで保護するサーバは、「NAP-IPsec」GPOでIPsec以外の受信を拒否するようにし、NAP・IPsecクライアントは「NAP・IPsec境界」GPOでIPsecを有効にしている。
つまり、NAP-IPsecを使用する全てのコンピュータは、「コンピュータ証明書自動発行」と「NAP-IPsecクライアント」セキュリティグループメンバーにして、NAP-IPsecで保護されるサーバは「NAP-IPsec」OUに格納し、NAP-IPsecクライアントは「NAP-IPsec境界」OUに配置すれば良い。

それでは、NAPメンバーを格納する「NAPクライアント」セキュリティグループを作成する。

[ad01] 作成したセキュリティグループ

セキュリティグループを作成したら、NAPクライアント基本設定用のGPO作成だ。
NAPクライアントは、NAPコンポーネントであるNAP Agentサービスの自動起動とNAP-IPsecの有効化、システム正常性エージェント(SHA)の実態であるセキュリティセンターの有効化が必要なので、これをGPOで設定する。

ドメインルートに対してGPOを作成しGPOを設定するのだが、いきなりGPOを設定してしまうと、全てのオブジェクト対して影響を与えてしまうので、GPOの設定をする前にセキュリティフィルタ設定を先に済ませておこう。

[ad01] GPOの作成

[ad01] GPOのネーミング

[ad01] セキュリティフィルタ処理のAuthenticated Usersを削除

[ad01] NAP-IPsecクライアントのセキュリティグループを登録

セキュリティフィルタが設定出来たら、GPOを設定する

[ad01] NAP Agentのプロパティ

[ad01] NAP Agentを自動起動

[ad01] 実施クライアントのNAP-IPsecを有効

[ad01] 信頼されたサーバグループ作成

[ad01] グループ名

[ad01] https://nps01.ripe.co.jp/domainhra/hcsrvext.dllを設定

[ad01] 設定内容の確認

[ad01] 適用

[ad01] コンピュータの構成\ポリシー\管理テンプレート\Windowsコンポーネント\セキュリティセンターのプロパティ

[ad01] セキュリティセンター有効

 

クライアントのNAP参加とNAP-IPsecの動作確認

まだIPsec強制設定をしていないので通信制限は出来ないが、現段階でNAPクライアントの動作確認が出来るので、NAP-IPsecの基本動作を確認しよう。

クライアントPCを「NAP-IPsecクライアント」セキュリティグループのメンバーにしてgpupdate /foeceでグループポリシーを適用し、サービスを起動させるためにクライアントPCを再起動する。

NAP-IPsecクライアントとして機能開始をしているか確認するには、「netsh nap client show grouppolicy」と「netsh nap client show state」コマンドで確認する事が出来る。

[Client] netsh nap client show grouppolicyでNAP-IPsecが有効になっていることを確認

[Client] netsh nap client show stateでNAP-IPsecが初期化されていることを確認

MMCでローカルコンピュータ証明書を見ると、システム正常性の認証証明書が提供されていることがわかる。
この状態でWindows ファイヤウォールを無効にすると、NAPクライアントが正常性が崩れたことを検出するはずだ。
証明書をリフレッシュすると、発行されていたシステム正常性の認証証明書が削除されているのが確認できるはずだ。IPsec通信をしていると、IPsecに必要な証明書が消失するのでIPsec通信が出来なくなる寸法だ。
Windows ファイヤウォールを有効にすると、再度証明書が発行されIPsec通信が復旧する。

[Client] システム正常性の認証証明書が提供されている

[Client] Windows ファイヤウォールを無効にする

[Client] NAPクライアントが正常性が保たれていないことを検出

[Client] システム正常性の認証証明書が削除された

 

IPsecの強制設定

それでは、IPsecの強制設定をしよう。IPsecを強制もGPOで設定したいので、以下のOUとGPOを作成する。

まずをOUを作成し、各OUに対して同名のGPOを作成する。

[ad01] OUの作成

[ad01] GPOの作成

まずは、「NAP-IPsec」GPOを編集する。

[ad01] セキュリティが強化されたWindowsファイヤウォールのプロパティを編集

[ad01] 状態のファイアウォール:オン、受信:ブロック、送信:許可を設定
プライベートプロファイルとパブリックプロファイルも同じ設定にする

[ad01] 接続セキュリティの規則に新しい規則を作成

[ad01] 分離

[ad01] 受信に認証を強制

[ad01] 正常性証明書のみ受け入れ

[ad01] 全てのプロファイルに適用

[ad01] 適当な名前を付ける

続いて、「NAP-IPsec境界」GPOを編集する。編集個所は「NAP-IPsec」GPOと同じで、相違点はIPsecを強制しない点だけだ。

[ad01] 「NAP-IPsec境界」ではIPsecを有効にするだけ

OUとGPOが準備出来たら、nps01を「NAP-IPsec境界」OUに移動してgpupdate /forceでグループポリシーを適用する。

[ad01] nps01を移動

[ad01] 移動先はNAP-IPsec境界

 

IPsec強制の適用

クライアントPCは、「NAP-IPsecクライアント」セキュリティグループメンバーに登録し、「NAP-IPsec」OUに配置すればOKだ。
NAPで保護するサーバは、「NAP-IPsec」OUに配置してサーバ証明書を要求すれば良い。

[fs01] ローカルコンピュータ証明書のMMCを作成し新しい証明書の要求

[fs01] コンピュータ証明書を要求

[Client] 正常性が確保されている時はサーバへのpingが反応する

[Cleint] ファイアウオールを無効にして正常性を崩す

[Client] 正常性が損なわれるとサーバへのpingは反応しない

NAP-IPsecでは保護対象外のサーバに対する通信制限がかかるだけなので、修復サーバの設定をしなくてもWSUSとの通信やウイルス対策ソフトのパターンアップデート通信が阻害されることは無いので、NAP-DHCPより運用は現実的だろう。

注意すべき点は、NAP-IPsecを設定すると、NAP-IPsecで保護されたサーバはIPsec以外の通信を受け付けなくなる。このため自分自身と通信をするサービス(例えばファイルサーバの共有設定)やサーバ間の通信が必要なサーバへの適用が難しい点だ。
この問題を解決するには、NAP対応の通信機器を使って、802.1xコントロールのNAP-EAPを使う必要がある。

 

back.gif (1980 バイト)

home.gif (1907 バイト)

Copyright © MURA All rights reserved.