AD」タグアーカイブ

Active Directory Recycle Binに関して~その2

新年明けましておめでとうございます。今年も引き続き様々な情報を発信していきたいと思います。

さて、昨年に引き続きActive Directory Recycle Binに関しての続報を書いていきます。

Active Directory Recycle Binを有効にすると属性が変化すると書きました。今まではTomstone(廃棄)という状態属性だったものが、削除されるとまずはDeleted Object(削除済)という状態になり、180日が経過するとRecycled Object(リサイクル済)という状態になります。更に180日が経過するとガベージコレクションによって完全削除という仕組みになります。

この際にRecycled Object(リサイクル済)の状態はTomstone(廃棄)と同じなのか?

実は違うのです。データベースには残っていますが復活は今まで通りではできないということになります。では、データベースに残っている状態からどのように復活できるのか?

いろいろ調べて判らなかったのでインシデントを使ってMSに問い合わせてみました

[タイトル]

W2K8 R2 Recycled Objects からの復旧方法

[お問い合わせの概要]

Recycled Object (isRecycled = TRUE) となったオブジェクトをバックアップからではない方法で復旧したい。

– 補足

バックアップから戻す (Authoritative Restore) ことは確認できている。

以前のバージョンにおける Tombstone Objects の復旧方法 (ldp を使った復元) ではできなかったことを確認済み。

– 環境

Windows Server 2008 R2

[回答]

本件に関しまして、ご報告いたします。

お問い合わせいただいた Recycled Objects (オブジェクト削除後、既定で 180 日経過後) からバックアップからではない復旧方法は、残念ながら確認が取れませんでした。

なお、Recycled Objects となってから既定で 180 日の間、Active Directory データベースに残る理由と致しましては、ドメイン上のドメインコントローラー間でオブジェクトが削除されている状況を正しく複製するためとなり、この 180 日という既定の値が決定された設計思想等については有効な情報が確認できませんでした。

ということでした。

まとめてみると、ADのオブジェクトを削除してから180日が経過するとRecycled Objectsの状態でADデータベースには残っているが、その状態からの復活は想定していないということになります。そもそもこの設計思想としては、180日が経過して直ぐに削除するのはまずい(ADデータベースの複製期間)ので残しておこう・・・まあ180日もあれば十分じゃないの?ということらしい。これは開発担当に直接問い合わせて聞いたらしいです。

2010/1/22:改訂

ですので、180日が経過したのちはバックアップからの復元にて対応するというのが正しい対応ということになりますね。

Active Directory Recycle Binに関して~その1

以前、Active Directory Recycle BinをRCで試したのですが、RTMで更に深く検証してみます。

まず、Active Directory Recycle Binの概要に関して

Active Directory Recycle Bin

Active Directory Recycle Binを有効にするための条件としては2つあります。

  • フォレスト機能レベルを「2008 R2」にする
    PowerShellより
    PS>Set-ADForestMode –Identity contoso.com –ForestMode Windows2008R2Forest
  • 「ごみ箱」を有効にする
    PowerShellより
    Enable-ADOptionalFeature –Identity ‘Recycle Bin Feature’ –Scope ForestOrConfigurationSet –Target ‘contoso.com’
    *注意 ADモジュールをPowershellにロードする必要があります。<Import-Module ActiveDirectory

これらの条件が整って初めてActive Directory Recycle Binが有効になります。

試しに、上記条件を満たさない状況でUser1というユーザーオブジェクトを削除してからadrestoreを使用して復旧してみました。この場合は以前と同じようにほとんどの属性は削除されているのでUser1は復旧しましたが、多くの属性は戻りませんでした。

以前は、オブジェクトを削除すると廃棄(Tomstone)となりました。この際の有効期間はフォレストを作成した時のOSのバージョンによって異なります。ですのでたとえWindows Server 2008を導入しているからといって180日とは限りません。アップグレードやサービスパックの適用時にも変更はされないことに注意が必要です。

OS 廃棄の有効期間
Windows 2000 Server 60日
Windows Server 2003 60日
Windows Server 2003 SP1 180日
Windows Server 2003 R2 60日
Windows Server 2003 SP2 180日
Windows Server 2008 180日

この廃棄期間はADに情報が残っているのでバックアップを使用しなくても最悪オブジェクトだけは何とか復旧できました。ただし、ほとんどの属性は削除されているので手作業で属性の追加をしなくてはいけなかったのが現状です。これが少数のオブジェクトなら何とかなりますが、OU毎ごっそり間違って削除してしまった場合はお手上げです。そのような場合はバックアップからの復元を行っていたのが現状です。しかし、この場合はDSRMで再起動してAuthoritative Restoreを行わなくてはいけないのでかなり敷居の高い操作となります。

ではActive Directory Recycle Binが有効になると内部的にはどのように動作するのか?

基本的な考え方は、図にある通りです。削除されるとまずはDeleted Object(削除済)という状態になり、180日が経過するとRecycled Object(リサイクル済)という状態になります。更に180日が経過するとガベージコレクションによって完全削除という仕組みになります。

Deleted Object(削除済)の状態のときは、完全復旧が簡単に行えるということになります。一番簡単な方法は今までと同じようにadrestoreを使う方法でしょうかね~

そのほかには、Poweshellを使う方法があります

削除されたユーザーを参照する

PS> Get-ADObject -filter {sAMAccountName -eq “user01”} –IncludeDeletedObject

・ユーザーを復旧する

PS> Get-ADObject -filter {sAMAccountName -eq “user01”} -IncludeDeletedObject | Restore-ADObject

更にOU毎ごっそり削除してしまった場合は次のように復旧する

・OUを復活させる(FinanceというOU名だった場合)

Get-ADObject -ldapFilter:"(msDS-LastKnownRDN=Finance)" -IncludeDeletedObjects | Restore-ADObject


・Finance配下のオブジェクト復旧

Get-ADObject -SearchBase "CN=Deleted Objects,DC=contoso,DC=com" –Filter 
{lastKnownParent -eq "OU=Finance,DC=contoso,DC=com"} -IncludeDeletedObjects
 | Restore-ADObject

とまあ、Deleted Object(削除済)の状態での復旧は特に問題ないことが判明しました。

では、Recycled Object(リサイクル済)のときはどうなんでしょうか?普通に考えると以前の廃棄(Tomstone)と同じかな?なんて思うかもしれませんが実は違います。これに関しては現在調査中なので結果が判り次第書こうと思います。

やっとActive Directory Recycle Binを試しました

いや~、やっといろいろと検証を行う時間が取れるようになりました。

そこで、R2の機能でActive Directory Recycle Binを試してみました。この話は既に安納さんのブログをみるといろいろと検証しているので楽にできるかな?なんて思っていました。

まずは、環境作成です。私の場合はHyper-V環境にR2を入れ込んでDCをそのまま立てましたのでフォレスト機能レベルもR2にしました。これで条件は整っています。

が、フォレスト機能レベルがR2だからと言って初期設定ではActive Directory Recycle Binは有効ではありません。そこで有効にするためにはPowershellを使ってコマンドをたたかなくてはいけません。(ただし、RTMではGUIからできるかも?)

ちなみに現在の状態をイベントログで確認すると次のようになっています。ID2120,2121

イベント2120

イベント2121

[管理ツール]-[Active Directory PowerShell] を起動して

Enable-ADOptionalFeature –Identity ‘Recycle Bin Feature’ –Scope ForestOrConfigurationSet –Target 'vmm.classroom.local’

とたたきました。vmm.classroom.localはドメイン名ですね。

これで有効になりました。ちなみにこの状態のイベントログはID2136、2119

イベント2136

イベント2119

で確認できます。

さて、ここで本番

実際にユーザーを作成して、グループなんぞに入れてみて、削除してみます。

ここで本来ならldp.exeなどのツールを使用して復元するのでしょうがめんどくさい・・・

ここではadrestoreというツールを使用します。このツールはsysinternalsで提供されていますのでそれをDLして使います。

そしてコマンドプロンプトより

adrestore –r

そうすると、現在削除されているオブジェクトを見つけてくれて、復活する場合はyを押せば完了。見事に元にもどりました。また今まで所属していたグループにもきちんと入っています。

試しにOUとその配下にユーザーを作成して、OUごと削除してから、adrestoreを使って復元しました。

問題なしですね!

ただし、OUから復元しないといけないのでその点は注意が必要かな

いや~、これは便利です

R2を入れるのであれば、是非この機能はオンにするべきですね

ADの論理構造設計

Windows Server 2008になり以前のOSからADの論理構造設計に関してはあまり大きな変化はありませんが、唯一変わったことがあります。それについて考えてみます。

そもそも根本的な考え方である設計の指針があります。それは

シングルフォレスト・シングルツリー・シングルドメイン

にならないかを、まず第一に考えるということです。

シングルフォレストだと次のような要件が出てきます。

  • 別ドメインのリソースを利用者が検索・利用可能
  • ADの制御情報(スキーマ、構成)の共有
  • フォレスト全体を管理可能な管理者が存在する(Enterprise Admins)

これらの要件がセキュリティ的にそぐわない場合はマルチフォレストになります。

それでは、マルチドメインの選択基準としては次のようになります。

  • 大規模環境で、ADデータベースサイズや複製トラフィックを最適化したい
  • 分散管理
  • 法的規制
  • 組織ごとのパスワードポリシー

ここでWindows Server 2008のドメイン機能レベルをWindows Server 2008にすることにより新機能であるPSO「Windows Server 2008 のきめ細かなパスワードポリシー」が使用できますので「組織ごとのパスワードポリシー」を考慮しなくてもよくなりました。

今までは、パスワード設定とアカウントロックアウト設定はドメインに限られていて、ドメインごとに1 つの設定しか適用できませんでした。異なるパスワードポリシーを必要とする場合は、ドメインを複数展開する必要があったんですが、Windows Sever 2008ではユーザーやグループごとに複数のパスワード設定とアカウントロックアウト設定を構成できるようになったんです。

次回はWindows Server 2008の新機能であるPSOについて考えてみたいと思います。

RODC設計(その前に知っておきたいこと)

さまざまなHPやブログでRODCのインストール方法などが紹介されていますが、その前に知っておきたいことがあります。それを知っているとなぜRODCをインストールするべきなのかがわかります。また、設計におけるヒントにもなります。

そもそもRODCとは、その役割は?

Windows Server 2008から新しい形態のドメインコントローラーであるRODCがサポートされました。このRODCとは読み取り専用ドメインコントローラーと呼ばれています。

RODCの利用用途としては、セキュリティに不安があるようなブランチオフィスなどに設置するなどとよく言われています。しかし、そもそもなぜRODCという機能ができたのか?を知ることによって設計手法も導き出せると考えます。

では、RODCがなかったころ・・・要するにWindows Server 2003の頃問題となったのはどういうことか?

それは、支社において管理者や、セキュリティ領域(サーバールームなど)がなく運用管理やセキュリティに不安がある場所においても書き込み可能なドメインコントローラー(DC)を置かないといけない場合があった。そうなるとDCにはドメインの資格情報(パスワードなど)が格納されているのでDCのコンピューター自体が盗まれ、解析されてしまうなどのリスクを持つことになります。

この問題を解決するための手段としてRODCが開発されたと考えます。

では、なぜそのような場所にDCを置かなくてはいけないのか?その大きな一つの要因は

  • クライアントユーザーのログイン速度を上げたい

ということになります。

でも支社にDCを置いたからその支社のユーザーはすべてローカルに存在するDCを使ってログインするのか?実はある仕組みが必要になります。それはADのサイトを本社、支社に分け、支社のサイトに支社で使用するDCを配置します。そうすることによって、クライアントはサイトのサブネット設定により自分のサイトのDCを知ることができるのでログイントラフィックの封じ込めが可能になります。しかし、実はこれだけではありません。それは、サイトごとにGCやDNSを置くべきなんです。それはクライアントのログインプロセスに起因します。クライアントはまずDNSのSRVレコードを参照してDCを探します。そしてDCはGCカタログを参照することによってユニバーサルグループに入っているがどうかを確認します。これらのプロセスも同じサイトにないとログイントラフィックの封じ込めが中途半端になります。そしてサイト内のDCからユーザー情報を取得してログインを行います。

ただし、Windows Server 2003以降からはサイトの設定で、ユニバーサルグループメンバーシップのキャッシュをサポートしているので必ずしもGCをサイト内に設置する必要はありません。

RODCの要件とは

RODCを展開するためにはある一定条件が必要になります。それは

  • フォレストの機能レベルが Windows Server 2003以上にする
  • ドメインの機能レベルを Windows Server 2003以上にする
  • 同一ドメイン内に少なくとも一台以上Windows Server 2008が必要

参考

RODC の展開に必要な前提条件

RODCの利点

RODCの管理にはドメインレベルの権限を一切付与せずにRODC用に委任されたローカル管理者を設定することができる。これにより、支社(RODC)のみの管理を任せることができます。

パスワードレプリケーションポリシーを設定することにより、設定された資格情報のみがRODCに配置される。想定されるのは支社のユーザーの資格情報をRODCに配置することによってログオントラフィックを封じ込めができます。よって、RODC自体が盗まれて解析されてもドメイン全体に影響を及ぼすのではなく、その支社の資格情報が危険にさらされるのみとなります。そのような場合は本社側でRODCの資格情報をリセットすれば支社の資格情報も守られることになります。

想定されるRODCの前提とは(まとめ)

RODCは今までDCを配置してログイントラフィックの封じ込めを行っていた場所に対する代替の方法になる。ということは、サイト設計を行いサイトの分離を行う。そして支社のサイトにはDCは置かずに1台のRODCが配置される。またメンバーサーバーもあるかもしれませんね。さらにRODC上にDNSやGCを配置するのは強い推奨となると思われます。ただし、セキュリティを考慮するとGCを配置するよりもユニバーサルグループメンバーシップのキャッシュを設定するほうがよりセキュリティレベルは高くなるでしょう。そうすればRODCが配置されたサイトで、ユーザーがログインしたときのみキャッシュが登録されるからです。

RODCを配置する場合の注意事項

  • サイトにRODCを追加(RODCを複数立てると資格情報の不整合が発生する場合がある)
  • サイトにDCを追加(RODCを導入する意味がない)
  • サイトを作らずにRODCの追加(これも意味がない)

今回は技術的な話というよりは、設計を行う上での考慮点ということになりますね~