0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Active Directory構築ガイド

0
Posted at

本記事では、実務で一般的に採用されるADサーバーの構築例をベースに、設計のポイントと重要な設定項目について解説します。なお、構築手順の効率化(再現性の確保)のため、Ansibleを用いた手順も併せて紹介します。

1. ネットワークとOSの基本設計

静的IPアドレスの固定

DCは認証の基盤であり、クライアントからの名前解決の対象です。IPアドレスが動的に変わることは許されません。

  • ポイント: 必ず固定IPを割り当てます。後述する2台目のDC構築時、互いを参照し合うDNS設定が冗長化の鍵となります。

サーバー名の命名規則

WIN-XXXXXのような初期名は避け、一目で役割がわかる名前に変更します。

  • 例: AD01, SV-AUTH01 など
  • 注意: AD DS役割の追加後にサーバー名を変更するとトラブルの元になるため、昇格前に必ず完了させます。

DNSサーバーの設定

自分自身がドメインのDNSサーバーとなるため、自身の優先DNSサーバーは「127.0.0.1(自分自身)」または自身の固定IPに設定します。


2. 時刻同期(NTP)の設計

ADにおいて、サーバーとクライアントの時刻のズレは5分以内である必要があります。これを超えるとKerberos認証に失敗し、ログインできなくなります。

PDCエミュレーターの役割

ドメイン内で1台、「PDCエミュレーター」という役割を持つDCが時刻同期のマスターとなります。

  • 設計: PDCエミュレーターは、外部の正確な時刻ソース(独立行政法人情報通信研究機構(NICT)やクラウド事業者の提供するNTP等)と同期するように設定します。

3. Active Directoryの構築(Ansibleによる自動化)

ここではAnsibleを使用して、一貫性のある構築を行います。

1台目のドメインコントローラー構築

前提条件

  • 対象サーバーで WinRM が有効であること。
  • ansible-galaxy collection install microsoft.ad を実行済みであること。

Ansible Playbook (setup_ad.yml)

---
- name: Active Directory ドメインサービスの構築
  hosts: windows
  gather_facts: false
  vars:
    # 構築パラメータ
    domain_name: "example.local"
    safe_mode_password: "" # 環境変数やAnsible Vaultの使用を推奨

  tasks:
    - name: 1. Active Directory ドメインサービス(AD DS)役割のインストール
      ansible.windows.win_feature:
        name: AD-Domain-Services
        state: present
        include_management_tools: true
      register: install_ad_feature

    - name: 2. 新しいフォレストの作成(ドメインコントローラーへの昇格)
      microsoft.ad.domain:
        dns_domain_name: "{{ domain_name }}"
        safe_mode_password: "{{ safe_mode_password }}"
        # NetBIOS名は自動的に生成されます(例: EXAMPLE)
      register: domain_promotion

    - name: 3. インストール後の再起動
      ansible.windows.win_reboot:
        msg: "AD DS構築完了のため再起動します"
        reboot_timeout: 600
      when: domain_promotion.reboot_required

インベントリファイルの例 (hosts.ini)

[windows]
192.168.1.10

[windows:vars]
ansible_user=Administrator
ansible_password=
ansible_connection=winrm
ansible_winrm_server_cert_validation=ignore

手順との対応表

GUIの手順 Ansibleのモジュール / パラメータ
役割と機能の追加 ansible.windows.win_feature
Active Directory ドメインサービス name: AD-Domain-Services
新しいフォレストを追加する microsoft.ad.domain
ルートドメイン名 (example.local) dns_domain_name: "example.local"
パスワード (DSRM) safe_mode_password
再起動 ansible.windows.win_reboot

補足事項

  • パスワードの管理: プレイブック内に直接パスワードを書くのはセキュリティ上推奨されません。本番環境では ansible-vault を使用して暗号化することをお勧めします。
  • NetBIOS名: 手順にある「NetBIOS名は自動入力される」挙動は、Ansibleの microsoft.ad.domain モジュールでも同様で、デフォルトではドメイン名の先頭部分が自動採用されます。
  • DNSオプション: AD DSの役割をインストールする際、依存関係としてDNSサーバー機能も自動的に構成されます。

4. 組織単位(OU)の設計思想

ADのOU設計は「管理の委任」と「GPOの適用範囲」を基準にします。
デフォルトの UsersComputers コンテナは、グループポリシー(GPO)を直接リンクできないという制約があるため、独自のOUを作成します。

推奨される構成例

「拠点・部署」×「オブジェクトの種類」の階層構造が一般的です。

example.local (ドメインルート)
└── IT-Division (管理用OU)
    ├── Admins (管理者用アカウント)
    └── Servers (サーバー機)
└── Tokyo-Office (拠点OU)
    ├── Users (一般ユーザー)
    │   ├── Sales (営業部)
    │   └── BackOffice (事務・人事)
    ├── Computers (一般PC)
    └── Groups (部署ごとのセキュリティグループ)

5. グループポリシー(GPO)の設計

実務でよく設定される主要なGPO項目を整理します。

① セキュリティ基盤(Default Domain Policy等)

  • パスワードのポリシー: 8文字以上、複雑さの要件有効、有効期間90日など。
  • アカウントロックアウト: 5回失敗で30分ロック。

② クライアントPC向け設定(Computers OU)

  • Windows Update: 夜間に自動インストール、再起動を促す設定。
  • 離席対策: スクリーンセーバーを有効にし、5分でパスワード保護。
  • FW設定: Windows Defender Firewallの一括有効化と例外ルールの定義。

③ ユーザー環境設定(Users OU)

  • デスクトップ制限: コントロールパネルへのアクセス禁止など。
  • ブラウザ設定: 社内ポータルをホームページに固定、信頼済みサイトの登録。

6. 冗長化とバックアップ(2台目のDC)

可用性を高めるため、ADは必ず2台以上で構成します。

2台目のDC追加におけるポイント

1台目のDCに障害が発生しても、2台目が認証を継続できるようにします。

Ansible Playbook (add_second_dc.yml)

---
- name: ADサーバーの冗長化(2台目のDC追加)
  hosts: windows_new_dc
  gather_facts: yes
  vars:
    domain_name: "example.local"
    # 1台目のADサーバーのIPアドレス(DNS参照先として使用)
    first_dc_ip: "192.168.1.10"
    # ドメイン参加用の権限を持つユーザー
    domain_admin_user: "Administrator@example.local"
    domain_admin_password: "" # 環境変数やAnsible Vaultの使用を推奨
    # 復元モード用パスワード
    safe_mode_password: "" # 環境変数やAnsible Vaultの使用を推奨

  tasks:
    - name: 1. 優先DNSサーバーを1台目のADに設定
      # 手順の「DNSサーバー変更手順」に該当
      ansible.windows.win_dns_client:
        adapter_names: "*"
        ipv4_addresses:
          - "{{ first_dc_ip }}"
          - "127.0.0.1" # 自分自身も予備として追加

    - name: 2. AD DS および DNS役割のインストール
      # 手順の「役割と機能の追加」に該当
      ansible.windows.win_feature:
        name:
          - AD-Domain-Services
          - DNS
        state: present
        include_management_tools: true

    - name: 3. 既存ドメインへのドメインコントローラー追加(昇格)
      # 手順の「既存のドメインにドメインコントローラーを追加する」に該当
      microsoft.ad.domain_controller:
        domain_name: "{{ domain_name }}"
        safe_mode_password: "{{ safe_mode_password }}"
        domain_admin_user: "{{ domain_admin_user }}"
        domain_admin_password: "{{ domain_admin_password }}"
        state: domain_controller
        read_only: false
        site_name: "Default-First-Site-Name"
      register: dc_promotion

    - name: 4. 完了後の再起動
      ansible.windows.win_reboot:
        msg: "AD冗長化完了のため再起動します"
      when: dc_promotion.reboot_required

手順との対応解説

手順書の項目 Ansibleの処理 解説
DNSサーバーの変更 win_dns_client 2台目がドメインに参加するためには、1台目の名前解決ができる必要があります。
役割と機能の追加 win_feature AD-Domain-ServicesDNS の両方を一括でインストールします。
既存のドメインに追加 domain_controller microsoft.ad コレクションを使用し、既存ドメインへの参加を指定します。
パスワードの設定 safe_mode_password DSRM(復元モード)のパスワードを設定します。
レプリケート元 (自動) domain_controller モジュールは、標準で最適なDCからデータを同期します。
自動的に再起動 win_reboot 昇格処理の結果、再起動が必要な場合にのみ実行されます。

7. まとめ:堅牢なAD環境の維持に向けて

本記事では、Active Directoryの基本設計からAnsibleを用いた自動構築、そして冗長化の構成までを解説しました。安定したドメイン運用を実現するための要点は以下の通りです。

構築・設計の重要ポイント

  • 徹底した事前準備: 静的IPアドレスの固定やサーバー名の命名は、AD昇格後の変更が困難なため、最初に行います。
  • 正確な時刻同期: Kerberos認証の不整合を防ぐため、PDCエミュレーターを起点とした外部NTPサーバーとの同期が不可欠です。
  • 運用を考慮したOU設計: デフォルトのコンテナを避け、管理の委任やグループポリシー(GPO)の適用を前提とした階層構造を構築します。
  • 冗長性の確保: 単一障害点を排除するため、必ず2台以上のドメインコントローラー(DC)を設置し、互いにDNSを参照し合う設定にします。

自動化によるメリット

Ansibleを活用することで、GUI操作による設定漏れやヒューマンエラーを排除し、「コードとしてのインフラ(Infrastructure as Code)」を実現できます。これにより、検証環境の迅速な立ち上げや、将来的なサーバーのリプレース作業も容易になります。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?