第6章 RHEL システムロールを使用した Active Directory への RHEL システムの参加
組織で Microsoft Active Directory (AD) を使用してユーザー、グループ、およびその他のリソースを集中管理している場合は、Red Hat Enterprise Linux (RHEL) ホストを Microsoft AD に参加させることができます。たとえば、AD ユーザーが RHEL にログインできるようになり、認証された AD ユーザーが RHEL ホスト上のサービスを利用できるようになります。ad_integration
RHEL システムロールを使用すると、Red Hat Enterprise Linux システムの Active Directory (AD) ドメインへの統合を自動化できます。
ad_integration
ロールは、Identity Management (IdM) 環境を使用せずに直接 AD 統合を使用するデプロイメント用です。IdM 環境の場合は、ansible-freeipa
ロールを使用します。
6.1. ad_integration
RHEL システムロールを使用した Active Directory への RHEL システムの参加
ad_integration
RHEL システムロールを使用すると、RHEL を Active Directory (AD) ドメインに参加させるプロセスを自動化できます。
前提条件
- コントロールノードと管理対象ノードの準備が完了している。
- 管理対象ノードで Playbook を実行できるユーザーとしてコントロールノードにログインしている。
-
管理対象ノードへの接続に使用するアカウントに、そのノードに対する
sudo
権限がある。 - 管理対象ノードが、AD の DNS エントリーを解決できる DNS サーバーを使用している。
- コンピューターをドメインに参加させる権限を持つ AD アカウントの認証情報がある。
管理対象ノードが、次のポートを使用して AD のドメインコントローラーへの接続を確立できる。
送信元ポート 送信先ポート プロトコル サービス 1024 - 65535
53
UDP および TCP
DNS
1024 - 65535
389
UDP および TCP
LDAP
1024 - 65535
636
TCP
LDAPS
1024 - 65535
88
UDP および TCP
Kerberos
1024 - 65535
464
UDP および TCP
Kerberos パスワード変更リクエスト
1024 - 65535
3268
TCP
LDAP グローバルカタログ
1024 - 65535
3269
TCP
LDAPS グローバルカタログ
1024 - 65535
123
UDP
NTP (時刻同期が有効な場合)
1024 - 65535
323
UDP
NTP (時刻同期が有効な場合)
手順
機密性の高い変数を暗号化されたファイルに保存します。
vault を作成します。
$ ansible-vault create vault.yml New Vault password: <vault_password> Confirm New Vault password: <vault_password>
ansible-vault create
コマンドでエディターが開いたら、機密データを<key>: <value>
形式で入力します。usr: administrator pwd: <password>
- 変更を保存して、エディターを閉じます。Ansible は vault 内のデータを暗号化します。
次の内容を含む Playbook ファイル (例:
~/playbook.yml
) を作成します。--- - name: Active Directory integration hosts: managed-node-01.example.com vars_files: - vault.yml tasks: - name: Join an Active Directory ansible.builtin.include_role: name: rhel-system-roles.ad_integration vars: ad_integration_user: "{{ usr }}" ad_integration_password: "{{ pwd }}" ad_integration_realm: "ad.example.com" ad_integration_allow_rc4_crypto: false ad_integration_timesync_source: "time_server.ad.example.com"
サンプル Playbook で指定されている設定は次のとおりです。
ad_integration_allow_rc4_crypto: <true|false>
ロールが管理対象ノードで
AD-SUPPORT
暗号化ポリシーを有効にするかどうかを設定します。デフォルトでは、RHEL は脆弱な RC4 暗号化をサポートしていませんが、それでも AD 内の Kerberos で RC4 が必要な場合は、ad_integration_allow_rc4_crypto: true
を設定することでこの暗号化タイプを有効にできます。Kerberos が AES 暗号化を使用する場合は、この変数を省略するか、
false
に設定します。ad_integration_timesync_source: <time_server>
-
時刻同期に使用する NTP サーバーを指定します。Kerberos は、リプレイ攻撃を防ぐために、AD のドメインコントローラーとドメインメンバー間の時刻同期を必要とします。この変数を省略すると、
ad_integration
ロールは、管理対象ノードで時刻同期を設定するためにtimesync
RHEL システムロールを使用しません。
Playbook で使用されるすべての変数の詳細は、コントロールノードの
/usr/share/ansible/roles/rhel-system-roles.ad_integration/README.md
ファイルを参照してください。Playbook の構文を検証します。
$ ansible-playbook --ask-vault-pass --syntax-check ~/playbook.yml
このコマンドは構文を検証するだけであり、有効だが不適切な設定から保護するものではないことに注意してください。
Playbook を実行します。
$ ansible-playbook --ask-vault-pass ~/playbook.yml
検証
administrator
などの AD ユーザーが管理対象ノードでローカルに使用可能かどうかを確認します。$ ansible managed-node-01.example.com -m command -a 'getent passwd administrator@ad.example.com' administrator@ad.example.com:*:1450400500:1450400513:Administrator:/home/administrator@ad.example.com:/bin/bash
関連情報
-
/usr/share/ansible/roles/rhel-system-roles.ad_integration/README.md
ファイル -
/usr/share/doc/rhel-system-roles/ad_integration/
ディレクトリー - Ansible vault