コラム

Windows Server 2008 検証レポート

検証レポート Vol.10~ IPSecを利用したNAP ~

更新

CTCの独自視点を織り交ぜたWindows Server のポイントを解説

著:クロスファンクショングループ ITエンジニアリング室 プラットフォーム推進部 杵島 正和 10-0123

IPSecとは

Windows Server 2008のNetwork Access Protection(NAP)の実現方法の1つにIPSecを利用する方法がある。他の方法もそうだが、IPSecはNAPとは直接関係のない一般的な技術で、ネットワークの通信を暗号化し、たとえ悪意のある人間に傍受されたとしても内容を読むことができないようにすることができる。暗号化の方法はWebサーバで利用されるSSLと同様、証明書を利用することが多い。全社的にIPSecを用いた通信を強制している環境では、IPSecが利用できないコンピュータは他のコンピュータと通信することができない。

NAPでIPSec

NAPでIPSecを利用する場合、暗号化に利用する証明書を動的に発行する。クライアントが健全な状態の場合には証明書を発行し、不健全な場合には証明書を発行しない。仮に健全だったクライアントが不健全な状況に陥った場合(Windowsファイアウォールが無効にされたような状態)、クライアントから証明書は削除される。証明書を失効させるわけではなく、NAPエージェントが証明書を削除することで即座にネットワークへのアクセスを制限することができる。一般的なWebサーバのSSL通信の場合には失効している証明書でも利用できるようにすることが多いことからもわかるように、「失効」のロジックを利用したのではそのまま継続利用できてしまう可能性が高いので、「削除」という方法になったのではないかと推測する。このように証明書の発行と削除をその状態に応じて行うことで、クライアントの通信を制御するのがIPSecを利用したNAPの特徴である。

必要なコンポーネント

検証構成図

ネットワークポリシーサーバ(NPS)上でActive Directory証明書サービスを動作させ、IPSecで利用する証明書を発行することになる。証明機関の構成(トポロジー)は企業のセキュリティポリシーや利用するアプリケーションによって様々だと思われるが、今回の検証で動作確認を行った構成は、以下のようになっている。 スタンドアロンの下位CAとすることで必要なときにクライアント側から証明書の発行要求が出され自動登録が行われる。発行される証明書はコンピュータ証明書と同じタイプのものだが、ワークステーション用の物をIPSec用にカスタマイズしたものである。

IPSec用グループポリシー

Windows Server 2008のドメインではIPSec用のグループポリシーがWindows Server 2003の頃と異なっている。Windowsファイアウォールと統合されたグループポリシーに変更されているのだ(下位互換のためか以前と同じポリシーも存在する)。このグループポリシーで通信にIPSecを強制するかどうかを制御できる。

悩むグループポリシーの適用範囲

検証を進める上で疑問に感じたことがある。IPSecのグループポリシーをどのように適用させるべきかというところだ。単純にすべてのコンピュータにこのポリシーを適用するとした場合、新しいコンピュータがドメインに参加できなくなる上に一度不健全と判断されたコンピュータは二度と他のコンピュータと通信ができなくなる。なぜなら、ドメインコントローラも証明書を発行するサーバも「既に証明書を持っているコンピュータ」としか通信できなくなるからだ。 IPSecを利用した通信を要求はするがIPSecが使えなくても接続させるというグループポリシーも設定できる。しかしこの設定では結局、IPSecを利用せずにすべての通信ができてしまう。 USのMicrosoftのWebサイトで公開されているベータ段階でのStep by Stepによれば、クライアントPCはIPSecを強制するようにグループポリシーで制御し、ネットワークポリシーサーバはIPSecを要求はするが強制はしないというグループポリシーを適用している。このグループポリシーによりクライアントPC同士は片方が不健全と判断された段階で通信はできなくなる。しかし、不健全なクライアントPCでもNPSに接続できる上、更にグループポリシーで制御されていないドメインコントローラや他の社内サーバに無条件で接続できてしまう。これでいいのだろうか。実際にIPSecでのNAPを導入する場合には、ポリシーの適応範囲を十分に検討する必要があるように思う。

ウィザード

NAP正常性ポリシーの定義画面

NAPを構成する際にNAP構成ウィザードを利用することが多いと思うが、IPSecを利用したNAP構成ウィザードで作成されるポリシーは、他の方式(DHCPや802.1X)で作成されるポリシーと異なる部分がある。DHCPや802.1Xの場合には、作成されるNAP未対応クライアント用のネットワークポリシーが作成されないのだ。 IPSecを利用する場合でも、NAP未対応クライアントをどのように扱うかは制御すべきだと思うのだが、NAP構成ウィザードを使用してIPSecのポリシーを構成する際に、左記(左:IPSecの場合、右:DHCPおよび 802.1xの場合) のように、NAP未対応クライアントに関する処置を設定する場所が存在しない。 したがって、ポリシーができないのは当たり前といえば当たり前なのだが、この状態ではNAP未対応クライアントは当然ネットワークに接続できなくなってしまうために、何らかの救済策を用意しないことには無用な混乱を招いてしまうように感じている。

まとめ

IPSecを利用した場合、通信そのものが暗号化されるため、ウィルス対策やファイアウォールを強制するというネットワーク検疫の目的の他に通信の傍受を防ぐという利点もある。ただ、前述したようにポリシーの適用範囲を適切に設定しなければならない。またIPSec用の証明書はかなり頻繁に発行されることになるため、その証明書サーバの負荷も常に監視しなければならない。他の方式に比べ、運用には注意が必要なことも事実である。

  • このページについてツイッターでツイート(新しいウィンドウで開く)
  • このページをフェイスブックでシェア(新しいウィンドウで開く)

このコラムに関するお問い合わせはこちら

※記載内容は掲載当時のものであり、変更されている場合がございます。