#目次
1.はじめに
2.検証結果_gpoの優先順位
3.検証準備_ec2の作成および日本語化
4.検証準備_adインストールおよびdc昇格
5.検証_gpoの優先順位
6.まとめ
#はじめに
Windows Serverの機能で、ユーザや機器の集中管理に利用できるActive Directoryですが、GPO(グループポリシーオブジェクト)の優先順位で時々混乱してしまうため、記事として整理しました。
GPOの優先順位で混乱することを減らすためには実際に手を動かすことが有効であると考え、実機を通した検証を行いました。尚、Active Directoryを使用するためにはWindows Serverが必要になってきますが、今回はAWSのEC2にてWindows Server2019を用意し、検証を実施しています。
#検証結果_gpoの優先順位
今回2つの検証を実施しますが先に結果をまとめておきます。
###検証内容
①「競合するGPO」
→競合するGPOが存在するときの優先順位はどうなるか?
②「強制」 VS 「継承のブロック」
→GPOの「強制」設定と「継承のブロック」設定はどちらが優先されるか?
###検証における構成
・「test」OUを作成する。また、「test」OUの配下に「test-admin」OUを作成する。
・「test-admin」OUにドメインユーザ「Administrator」を所属させる。
・コントロールパネルへのアクセスを拒否するGPO「Deny-Control」を作成し、「test」OUにリンクさせる。
・コントロールパネルへのアクセスを許可するGPO「Allow-Control」を作成し、「test-admin」OUにリンクさせる。
###検証の結果
①「競合するGPO」
→上記のような構成の場合、ユーザ「Administrator」はコントロールパネルへのアクセスが許可される。
→より近い階層のGPO(Allow-Control)が優先される!
②「強制」 VS 「継承のブロック」
→「Deny-Control」に「強制」の設定をし、「test-admin」OUに「継承のブロック」設定をした場合。
→ユーザ「Administrator」はコントロールパネルへのアクセスが拒否される。
「強制」の設定が優先される。
結果としては上記のようになりますが、実際に実機にて確認されたい場合は次章以降を参考として頂ければと思います。
#検証準備_ec2の作成および日本語化
まずはAWSにてEC2を作成していきます。また、今回利用するAMIが英語版のWindowsServerのため、利用言語設定にて日本語が使用できるようにします。
・AWSマネジメントコンソールにログイン後、EC2の画面より、「インスタンスを起動」を押下する。
・AMIの選択画面で「Microsoft Windows Server 2019 Base」の「選択」を押下する。
・インスタンスタイプの選択画面で、デフォルトの「t2.micro」のまま「次のステップ:インスタンスの詳細の設定」を押下する。
・インスタンスの詳細の設定画面で、「ネットワーク」、「サブネット」を今回はデフォルトのものを選択、「自動割り当てパブリックIP」を「有効」にして、「次のステップ:ストレージの追加」を押下する。
・デフォルトのストレージのまま、「次のステップ:タグの追加」を押下する。
・今回は「キー」に「Name」、「値」に「AD」と入力し、「次のステップ:セキュリティグループの設定」を押下する。
・「新しいセキュリティグループを作成する」を選択し、今回は「セキュリティグループ名」、「説明」を「Windows-SG」とする。「RDP」が許可されていることを確認し、「確認と作成」を押下する。
※一時的な検証用のため、ソースは「0.0.0.0/0」としておく。
※今回の検証自体には支障が起きないが、ADサーバとして本格運用する際はDNS等、いくつかのプロトコルを許可する必要がある。
・新しいキーペアを作成しダウンロードするか、既存のキーペアがあれば選択し、「インスタンスの作成」を押下する。
・インスタンスが作成されたことを確認し、チェックを入れた上で、「接続」を押下する。
・「RDPクライアント」にて、「パスワードを取得」を押下する。
・「Browse」にてキーペアを選択し、内容がテキストボックスに表示されることを確認してから、「パスワードを復号化」を押下する。
・Administratorのパスワードが表示されたらコピーをしておく。
・リモートデスクトップ接続にて、今回作成したEC2インスタンスのパブリックIPアドレスを入力し、「接続」を押下する。
・ユーザ名:Administrator、パスワード:先ほどコピーしたパスワードを貼り付け、「OK」を押下する。
・EC2インスタンスにログイン後、スタートメニューから「Settings」を押下する。
・「Will be display language after next sign-in」と表示されてから、「Sign out」をする。
・再度EC2インスタンスにAdministratorでリモート接続し、スタートメニューの表示が日本語となっていることを確認。「コンピュータの管理」を押下する。
・「ローカルユーザーとグループ」→「ユーザー」内、現在サインインしているローカルアカウント「Administrator」が存在することを確認する。
#検証準備_adインストールおよびdc昇格
次に、作成および日本語化したEC2インスタンスに対し、Active Directoryのインストール、ドメインコントローラーへの昇格を実施します。
・「役割ベースまたは機能ベースのインストール」が選択されていることを確認し、「次へ」を押下する。
・今回作成したサーバーが表示されるので、「次へ」を押下する。
・「Active Directory Domain Service」にチェックを入れる。
・「Active Directory Domain Service」にチェックが入ったことを確認し、「次へ」を押下する。
・サーバーマネージャーのフラグより、機能のインストール完了が確認できたら、「このサーバーをドメインコントローラーに昇格する」を押下する。
・「新しいフォレストを追加する」を選択し、ドメイン名を入力後(今回はtest.localとした)、「次へ」を押下する。
・ディレクトリサービス復元モードのパスワードを設定し、「次へ」を押下する。
・「NetBIOSドメイン名」が自動入力されることを確認し、「次へ」を押下する。
・インストールが開始され、しばらくすると自動的にOS再起動が実施され、リモートデスクトップ接続のセッションが切断される。
・「ドメイン名¥Administrator」にて再度、リモートデスクトップ接続を実施する。
パスワードはローカルのAdministratorで使用していたものと同一
・ドメインのAdministratorでログイン後、「コンピュータの管理」を開き、「ローカルユーザーとグループ」の項目が存在しなくなったことを確認する。
※ドメインコントローラーに昇格後、ローカルユーザーはドメインユーザーに移行される。
・「サーバーマネージャー」から「Active Directory ユーザーとコンピューター」を押下する。
・「Users」コンテナー内、現在ログインしているドメインのAdministratorが存在することを確認する。
・「ドメイン名を右クリック」→「新規作成」→「組織単位(OU)」を押下する。
・「作成されたOUを右クリック」→「新規作成」→「組織単位(OU)」を押下する。
※「test」OU配下に別のOUを作成する。
・OU名を入力し(今回はtest-admin)、「OK」を押下する。
・「test」OU、「test-admin」OUが作成されたことを確認し、「Users」コンテナー内、「Administratorを右クリック」→「移動」を押下する。
・移動先として、「test-admin」OUを選択し、「OK」を押下する。
・「test-admin」OU内にAdministratorが移動されたことを確認する。
#検証_gpoの優先順位
ここから先はGPOを作成し、2つの検証を実施していきます。まずはGPOの作成からです。
・「サーバーマネージャー」から「グループポリシーの管理」を押下する。
・「グループポリシーオブジェクト」を右クリックし、「新規」を押下する。
・GPOの名前(今回はDeny-Control)を入力し、「OK」」を押下する。
・「Deny-Control」GPOが作成されることを確認する。
・「test」OUを右クリック→「既存のGPOのリンク」を押下する。
・「Deny-Control」を選択し、「OK」を押下する。
・「test」OUに「Deny-Control」がリンクされること、また「test-admin」OUにもグループポリシーの継承より、「Deny-Control」が適用されることを確認する。
・「ユーザーの構成」→「ポリシー」→「管理用テンプレート」→コントロールパネル」→「コントロールパネルとPC設定へのアクセスを禁止する」を右クリック→「編集」を押下する。
・「Deny-Control」の設定を適用させるため、一度、サインアウトした後、再度ドメインのAdministratorでサインインする。
・「Windows+R」キー→「control」と入力→「OK」を押下する。
・「Deny-Control」の設定により、コントロールパネルが開けないことを確認する。
ここで1つ目の検証を実施します。
##①競合するGPOの優先度
「test-admin」OUに対し、「Allow-Control」GPO(コントロールパネルへのアクセスを許可する)をリンクさせた場合、Administratorによるコントロールパネルへのアクセスがどうなるか。
・「Allow-Control」を右クリック→「編集」を押下する。
・「ユーザーの構成」→「ポリシー」→「管理用テンプレート」→コントロールパネル」→「コントロールパネルとPC設定へのアクセスを禁止する」を「無効」に設定する。
・「test-admin」OUに「Allow-Control」をリンクさせ、「グループポリシーの継承」にて、優先順位が最も高くなっていることを確認する。
・GPOの設定を適用させるため、一度、サインアウトした後、再度ドメインのAdministratorでサインインする。
・「Windows+R」キー→「control」と入力→「OK」を押下し、コントロールパネルが開けることを確認する。
###検証「競合するGPO」の結果
→オブジェクト(今回の場合、ユーザ「Administrator」)に近い階層のGPOが優先される!
##②「強制」 VS 「継承のブロック」
検証①ではAdministratorが「Deny-Control」よりも、「Allow-Control」に近い階層であるため、コントロールパネルを開けることを確認しました。
そこで、「Deny-Control」に対し、「強制」の設定を適用してみます。
・Administratorが所属する「test-admin」OUの「グループポリシーの継承」から、「Deny-Control」が強制となり、最も優先度が高くなっていることを確認します。
・この状態で、サインアウトし、再度Administratorでログインした際、コントロールパネルは開けなくなっています。そこで、次に「継承のブロック」を設定してみます。
・「test-admin」OUを右クリック→「継承のブロック」を押下する。
・「Default Domain Policy」は継承のブロックにより、適用されなくなったが、「Deny-Control」は依然として強制となり、優先順位が最も高いことを確認する。
・この状態で、サインアウトし、再度Administratorでログインしても、コントロールパネルは開けなくなっていることを確認する。
###検証「「強制」 VS 「継承のブロック」」の結果
→「強制」が優先して適用される。
#まとめ
今回、Active DirectoryにおけるGPOの優先順位を検証してみました。実際に手を動かすことで理解度も上がり、より知識の定着ができたと感じます。また、このようにチョコっと検証を行う上で、クラウドサービス(今回はAWS)は非常に便利だと実感しました。
以上、最後まで読んで頂きありがとうございました!