Powered by
Movable Type 4.1

メインだよ(カテゴリーアーカイブ)

2006年7月11日

グローバル カタログ(GC)の役割

■[HOWTO] Windows 2000 でグローバル カタログの作成または移動を行う方法http://support.microsoft.com/kb/313994/ja

グローバル カタログは、フォレスト内の
すべての Active Directoryオブジェクトのコピーを格納するドメイン コントローラ。

グローバル カタログには、そのドメインのディレクトリ内のすべてのオブジェクトの完全なコピー、
およびフォレスト内の他のすべてのドメインのすべてのオブジェクトの部分的なコピーが格納される。

FSMO(操作マスタ)について

■Windows 2000 Active Directory の FSMO 役割
http://support.microsoft.com/kb/197132/ja


○スキーマ マスタ

この DC だけがディレクトリ スキーマへの更新を行うことができる。

 ※ディレクトリスキーマ
  スキーマ名前付けコンテキストまたは LDAP://cn=schema,cn=configuration,dc=domain

フォレストにひとつ必要。


○ドメイン名前付けマスタ

この DC だけが、ディレクトリへのドメインの追加、およびディレクトリからのドメインの削除を行うことができる。

フォレスト全体のドメイン名前空間 (Partitions\Configuration 名前付けコンテキストまたは LDAP://CN=Partitions, CN=Configuration, DC=) への更新処理を行うことができるということ。

フォレストにひとつ必要。


○RID マスタ

ドメイン内にある各DCには、DCが作成するセキュリティ プリンシパルに割り当てることのできるRIDのプールの割り当てを持っている。

DC に割り当てられた RID プールがしきい値を下回ると、DC は、ドメインの RID マスタに対して RID の追加要求を発行し、RIDマスタは新たなドメイン内の空きRIDを提供する。

ゆえに、ドメイン内にひとつのRIDマスタが必要(DHCPサーバーを連想すればよい)


○インフラストラクチャ マスタ

あるドメインのオブジェクトが、別のドメインにあるオブジェクトから参照される場合、参照されるオブジェクトは、GUID、SID、DN によって識別される。

インフラストラクチャマスタは、ドメイン間オブジェクト参照におけるオブジェクトの SID およびDNの更新処理を行う。

ドメインにつき、ひとつ必要。


○PDC エミュレータ

・時刻マスタ

・パスワードマスタ

・アカウントロックマスタ

・その他、NTドメインのPDCの役割を持つ

ドメインにつき、ひとつ必要。


■グラフィカル ユーザー インターフェイスで FSMO 役割を表示し転送する方法http://support.microsoft.com/kb/255690/ja


○RID マスタ、インフラストラクチャ マスタ、PDC エミュレータ はこのツールで確認、変更ができる
FSMO1.JPG


○ドメイン名前付けマスタはこのツールから
FSMO2.JPG


○スキーマ マスタは少々面倒

1.スキーマ ツールの登録

[ファイル名を指定して実行] から、[ regsvr32 schmmgmt.dll ] と入力すると、
登録が成功したことを伝えるメッセージが表示される。
FSMO3.JPG

2.mmcに「Active Directory スキーマ」を追加するし、このように変更をする。
FSMO4.JPG


■どのドメインコントローラがFSMOをやっているかを確認するには。

あるドメインコントローラ上で

> DCdiag /test:Knowsofroleholders /v

と実行する。

Domain Controller Diagnosis

Performing initial setup:
* Verifying that the local machine dc-hoge, is a DC.
* Connecting to directory service on server dc-hoge.
* Collecting site info.
* Identifying all servers.
* Identifying all NC cross-refs.
* Found 1 DC(s). Testing 1 of them.
Done gathering initial info.

Doing initial required tests

Testing server: Default-First-Site-Name\dc-hoge
Starting test: Connectivity
* Active Directory LDAP Services Check
* Active Directory RPC Services Check
......................... dc-hoge passed test Connectivity

Doing primary tests

Testing server: Default-First-Site-Name\dc-hoge
Test omitted by user request: Replications
Test omitted by user request: Topology
Test omitted by user request: CutoffServers
Test omitted by user request: NCSecDesc
Test omitted by user request: NetLogons
Test omitted by user request: Advertising
Starting test: KnowsOfRoleHolders
Role Schema Owner = CN=NTDS Settings,CN=dc-hoge,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=ad,DC=example,DC=com
Role Domain Owner = CN=NTDS Settings,CN=dc-hoge,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=ad,DC=example,DC=com
Role PDC Owner = CN=NTDS Settings,CN=dc-hoge,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=ad,DC=example,DC=com
Role Rid Owner = CN=NTDS Settings,CN=dc-hoge,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=ad,DC=example,DC=com
Role Infrastructure Update Owner = CN=NTDS Settings,CN=dc-hoge,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=ad,DC=example,DC=com

......................... dc-hoge passed test KnowsOfRoleHolders
Test omitted by user request: RidManager
Test omitted by user request: MachineAccount
Test omitted by user request: Services
Test omitted by user request: OutboundSecureChannels
Test omitted by user request: ObjectsReplicated
Test omitted by user request: frssysvol
Test omitted by user request: frsevent
Test omitted by user request: kccevent
Test omitted by user request: systemlog
Test omitted by user request: VerifyReplicas
Test omitted by user request: VerifyReferences
Test omitted by user request: VerifyEnterpriseReferences

Running partition tests on : ForestDnsZones
Test omitted by user request: CrossRefValidation
Test omitted by user request: CheckSDRefDom

Running partition tests on : DomainDnsZones
Test omitted by user request: CrossRefValidation
Test omitted by user request: CheckSDRefDom

Running partition tests on : Schema
Test omitted by user request: CrossRefValidation
Test omitted by user request: CheckSDRefDom

Running partition tests on : Configuration
Test omitted by user request: CrossRefValidation
Test omitted by user request: CheckSDRefDom

Running partition tests on : ad
Test omitted by user request: CrossRefValidation
Test omitted by user request: CheckSDRefDom

Running enterprise tests on : ad.example.com
Test omitted by user request: Intersite
Test omitted by user request: FsmoCheck

>

2006年5月19日

「アカウントログオンイベントの監査」と「ログオン イベントの監査」の違い

大変紛らわしい、
・「アカウントログオンイベントの監査」
・「ログオン イベントの監査」
ですが、以下の違いがあります。


【アカウントログオンイベントの監査】
Active DirectoryのKerberos認証におけるTGTその他のチケットの発行を監査します。
 ログオン時にはチケットの発行のためにクライアントはドメインコントローラと通信し、
チケットを発行してもらう必要がありますので、監査の対象になります。
チケットの発行が成功すれば、ドメインコントローラのセキュリティログに672で記録されます。

May 19 18:14:17 dc101 security[success] 672 NT AUTHORITY\SYSTEM  認証チケットの要求:    ユーザー名:  DomainCtrl$    提供された領域名: EXAMPLE.LOCAL    ユーザー ID:  %{S-1-5-21-82319771-177121436-2465514707-1000}    サービス名:  krbtgt    サービス ID:  %{S-1-5-21-82319771-177121436-2465514707-502}    チケット オプション:  0x40810010    結果コード:  -    チケット暗号化の種類: 0x17    事前認証の種類: 2    クライアント アドレス:  127.0.0.1    証明書発行者名:     証明書シリアル番号:     証明書拇印:

 しかし、ログオフ時にはクライアントはチケットを単に自分で破棄するだけで監査はされません。

【ログオンイベントの監査】
 サーバに対するセッションの確立、切断を監査しています。
例えばサーバ上の共有ディレクトリに接続したり、ターミナルサービスに接続したりすると、ログオンとみなされます。
 このとき、イベントログに「ユーザのログオン」(ID: 540)が記録されます。
 しかし、セッションは明示的に処理が行われたり、デフォルトで15分無通信状態が続いたりした場合に切断され、イベントログには「ユーザのログオフ」(ID: 538)が記録されます。これは対話的なログオン、ログオフとは無関係に行われます。
 なので、このログをたよりに対話的なログオンの監査を試みても支離滅裂な結果が待ち受けてます。

#
# どのログオフが、どのログオンと対応しているかは
# ログオン ID: (0x0,0xFABA4EF)
# でわかります。

May 19 17:56:49 TS001 security[success] 540 EXAMPLE\user01 ネットワーク ログオンの成功: ユーザー名: user01 ドメイン: EXAMPLE ログオン ID: (0x0,0xFABA4EF) ログオンの種類: 3 ログオン プロセス: Advapi 認証パッケージ: Negotiate ワークステーション名: TS001 ログオン GUID: - 呼び出し側ユーザー名: TS001$ 呼び出し側ドメイン: EXAMPLE 呼び出し側ログオン ID: (0x0,0x3E7) 呼び出し側プロセス ID: 2716 移行されたサービス: - ソース ネットワーク アドレス: - ソース ポート: -
May 19 17:56:49 TS001 security[success] 538 EXAMPLE\user01 ユーザーのログオフ: ユーザー名: user01 ドメイン: EXAMPLE ログオン ID: (0x0,0xFABA4EF) ログオンの種類: 3

May 19 17:56:50 TS001 security[success] 540 EXAMPLE\user01 ネットワーク ログオンの成功: ユーザー名: user01 ドメイン: EXAMPLE ログオン ID: (0x0,0xFABA6C4) ログオンの種類: 3 ログオン プロセス: Advapi 認証パッケージ: Negotiate ワークステーション名: TS001 ログオン GUID: - 呼び出し側ユーザー名: TS001$ 呼び出し側ドメイン: EXAMPLE 呼び出し側ログオン ID: (0x0,0x3E7) 呼び出し側プロセス ID: 2716 移行されたサービス: - ソース ネットワーク アドレス: - ソース ポート: -
May 19 17:56:50 TS001 security[success] 538 EXAMPLE\user01 ユーザーのログオフ: ユーザー名: user01 ドメイン: EXAMPLE ログオン ID: (0x0,0xFABA6C4) ログオンの種類: 3

じつにわけのわからないログですね。
しかもWindows2000では「ログオフが記録されない」という現象もあったようです。
■Logoff event messages are not logged in the security log when you use the Audit Logon Events feature in Windows 2000

ユーザーがドメイン(や、特にターミナルサーバー、MetaFrameサーバー)にログオンしたか、
ログオフしたかを正しく監査するには、ログオン/ログオフスクリプトをつかって
イベントビューアに書き込んだ方がいいでしょう。
参考:Active Directory ドメインで、ユーザのログオン/ログオフの状況を監査したい

また、監査全般についてはこちらの記事を参考にしてください。
イベントログ説明
マイクロソフトの Securing Windows 2000 Server ソリューション
第 9 章 ‐ 監査と侵入検出

2006年5月15日

グループポリシー(セキュリティポリシー)を手動で適用させる

なんかど忘れするので、書いておきます。

このコマンド、グループポリシーを適用させるってよくいわれるけど、ドメインコントローラセキュリティポリシーとか、ドメインセキュリティポリシーにも効きますよ。
って、根本は同じものなのかしら?

■Windows Server 2003
 gpupdate

■Windows 2000 Server
 secedit /refreshpolicy machine_policy
 secedit /refreshpolicy user_policy


C:\>gpupdate /?
Microsoft(R) Windows(R) Operating System Group Policy Refresh Utility v5.2
(C) Microsoft Corporation. All rights reserved.

説明: グループ ポリシーの設定を最新の情報に更新します。

文法: GPUpdate [/Target:{Computer | User}] [/Force] [/Wait:<値>]
[/Logoff] [/Boot] [/Sync]

パラメータ:

値 説明
/Target:{Computer | User} ユーザーのみまたはコンピュータのみの
ポリシー設定を更新するかを指定します。
既定では、どちらのポリシー設定も更新
されます。

/Force すべてのポリシー設定を適用し直します。
既定では、設定が変更されたポリシーの
みが適用し直されます。

/Wait:{値} ポリシー処理の完了を待つ時間 (秒) を
設定します。既定は 600 秒です。
'0' は完了を待たないことを意味します。
'-1' は完了するまで待つことを意味します。
指定された時間が経過すると、コマンド
プロンプトが返されますが、ポリシーの
処理は続行されます。

/Logoff グループ ポリシーの設定の更新完了後にログ
オフします。これは、バックグラウンド更新
サイクルではポリシーを処理しないが、ユーザー
のログオン時にポリシーを処理するクライアント
側の拡張に必要です。例としては、ユーザーを
ターゲットとした "ソフトウェアのインストール"
や "フォルダ リダイレクト" があげられます。
ログオフを必要とする拡張が呼び出されない
場合は、このオプションは影響しません。

/Boot グループ ポリシーの設定の更新完了後に再
起動します。これは、バックグラウンド更新
サイクルではポリシーを処理しないが、コン
ピュータの起動時にポリシーを処理するクラ
イアント側の拡張に必要です。例としては、
コンピュータをターゲットとした "ソフトウェ
アのインストール" があげられます。再起動を
必要とする拡張が呼び出されない場合は、この
オプションは影響しません。

/Sync 次のフォアグラウンド ポリシー アプリケー
ションを同時に実行します。フォアグラウンド
ポリシー アプリケーションはコンピュータの
起動時およびユーザーのログオン時に実行され
ます。/Target パラメータを使うと、これを
ユーザー、コンピュータ、または両方に指定する
ことができます。指定された場合 /Force および
/Wait パラメータは無視されます。

secedit /refreshpolicy

セキュリティ設定を最新の情報に更新する
secedit /refreshpolicy
このコマンドは、グループ ポリシー オブジェクトにセキュリティ設定を再適用して、
システム セキュリティを最新の情報に更新します。

構文
secedit /refreshpolicy {machine_policy | user_policy}[/enforce]

パラメータ

machine_policy
ローカル コンピュータのセキュリティ設定を最新の情報に更新します。

user_policy
現在、コンピュータにログオンしているローカル ユーザー アカウントの
セキュリティ設定を最新の情報に更新します。

/enforce
グループ ポリシー オブジェクトの設定に変更がない場合でも、
セキュリティ設定を最新の情報に更新します。


2006年5月 8日

ActiveDirectoryにユーザーアカウントを作成する権限を一般ユーザー(グループ)に部分的権限委譲する

特に制限を強化したくないのであれば、権限を委譲するユーザー、グループを
Builtin/Account Operatorsグループに所属させるだけでよいのですが、
このままでは、ユーザー、グループの作成、削除、プロパティの変更など、
すべての権限が可能となっています。

そこで、一旦、Account Operatorsグループに所属させた後、
各コンテナのセキュリティタブで
Account Operatorsの危険な権限を無効(削除してしまう)にしてしまうのがよいです。

無効化する権限の例としては、

【ユーザー、グループ格納用としたOU】
・ユーザーオブジェクトの削除 (不用意な削除を防ぐ場合)
・グループオブジェクトの削除 (不用意な削除を防ぐ場合)
・コンピュータの作成、削除 (クライアントがすべてターミナルサーバーの場合)
・OU作成、削除権限の付与 (場合によっては)

【Usersコンテナ】
作成はともかく、重要なユーザーを削除されてはたまらない。
・ユーザーオブジェクトの削除
・グループオブジェクトの削除

【Computersコンテナ】
クライアントがすべてターミナルサーバーの場合は全権削除

【コンピューター格納用としたOU】
クライアントがすべてターミナルサーバーの場合は全権削除

もしくは、最初からAccount Operatorsグループをあてにせず、
「オブジェクト制御の委任ウィザード」などをつかって、
一般のグループやユーザーに権限を委譲するほうがよいです。

というのは、Builtinの中の特権グループには色々と秘密があり、
■委任されたアクセス許可を利用できず継承が自動的に無効になる
簡単にいうと下記の保護グループに属しているオブジェクトのACLは
ActiveDirectoryによって決め打ちされるため(セキュリティ保持のためらしい)
実際に属しているOUのACLはあえて継承しないようになっているそうな。
・Administrators
* Account Operators
* Server Operators
* Print Operators
* Backup Operators
* Domain Admins
* Schema Admins
* Enterprise Admins
* Cert Publishers
だったら、最初から「上からのアクセス許可を継承する」に
チェックなんか入れさせないようにすればよさそうなもんですが、
そういう仕組みではなくて、1時間に1回操作マスタがACLを書きもどすそうです。
んだから、かってに権限を剥奪されてしまうわけでした。

あと、Account Operatorsに属していると、
Exchange Serverの管理権限を与えても、「ActiveDirectory ユーザーとコンピュータ」ツールから
「電子メールアドレス」タブの編集ができなくなってしまう
こともありました。
※後述のExchangeアカウントの作成も参照。

まあ、そんなわけで、Builtinグループを使うのは細かい制御をしたい場合にはお勧めしません。


■最終的にはOUのプロパティで「セキュリティ」タブ->「詳細」をみると、このような権限になる。
※セキュリティタブを見るにはMMCの「表示」ツールバーから「拡張機能」を選ぶ

例:OU=HOGE内のオブジェクトに対し、accountグループに下記の権限を付与した。
 ・ユーザーの作成、削除、編集
 ・グループの作成、削除、編集
 ・連絡先の作成、削除、編集

種類	名前	アクセス許可		継承元			適用先
--------------------------------------------------------------------------------------------------------
許可 account フルコントロール <継承なし> グループオブジェクト
許可 account フルコントロール <継承なし> ユーザーオブジェクト
許可 account フルコントロール <継承なし> 連絡先オブジェクト
許可 account グループオブジェクト OU=ue,DC=my,DC=local このオブジェクトとすべての子オブジェクト
許可 account ユーザーオブジェクト OU=ue,DC=my,DC=local このオブジェクトとすべての子オブジェクト
許可 account 連絡先オブジェクト OU=ue,DC=my,DC=local このオブジェクトとすべての子オブジェクト


■Exchange Server とActiveDirecotryが連携している場合は、
メールボックスを作成する権限を付与する必要がある。

まず、管理者がExchangeシステムマネージャの
「管理グループ」=>「最初の管理グループ」を右クリックし、
「制御の委任」を選択すると、Exchange管理委任ウィザードが始まる。
しかし、このウィザードでは
 「Exchange管理者」
 「Exchange管理者(完全)」
 「Exchange管理者(参照のみ可)」
の3パターンしか選べない。
とりあえず、 「Exchange管理者」以上の権限を与えなければ
メールボックスの作成もできないので、
この権限をAccount Operatorsではなく、一般のユーザー、グループに付与する。
※というのはなぜかというと、Account Operatorsに権限を付与すると、「電子メールアドレス」タブにおいて、メールアドレスの追加、削除、編集ができなくなってしまうのであった。
この環境はWindows Server 2003(SPなし)+Exchange Server 2003 Enterprise Edition(SPなし)

さて、メールボックスをつくったり、メールアドレスを設定したりする操作は
Exchangeサーバーのシステムマネージャがインストールされている状態の
「Active Directory ユーザーとコンピュータ」で行うが、
ここでExchangeシステムマネージャも操作されて、
Exchangeサーバー内のオブジェクトを自由に操作されてしまうのも危険である。

そこで、Account Operatorsにしたユーザーの所属するOUのグループポリシーで制御する。
グループポリシーの「ユーザーの構成」の方で、

「管理用テンプレート」
 ->「Windows コンポーネント」
  ->「Microsoft管理コンソール」   
   ※「明示的に許可されているスナップインだけに制限する」を有効

   ->「制限および許可するスナップイン」
    ※「Active Directory ユーザーとコンピュータ」だけ有効


これで、Exchangeシステムマネージャを操作されることはない。


■さらに、Windows Server 2003 SP1 + Exchange Server 2003 SP2の組み合わせだと、
下記の障害が起きる可能性があります。

a "何も番号: c10308a2 " Active Directory ユーザーを使用し、そしてコンピュータがコンピュータ Exchange Server 2003 でのメールが有効なユーザーの電子メール アドレスをリモート追加する、またはコンピュータ リモート編集するとき、スナップインする場合、エラー メッセージ受信します。
http://support.microsoft.com/kb/905809/ja