35.3. 使用 ad_integration 系统角色将 RHEL 系统直接连接到 AD

您可以通过运行 Ansible playbook,使用 ad_integration 系统角色配置 RHEL 系统和 AD 域之间的直接集成。

注意

从 RHEL8 开始,RHEL 默认不再支持 RC4 加密。如果无法在 AD 域中启用 AES,您必须启用 AD-SUPPORT 加密策略,并在 playbook 中允许 RC4 加密。

重要

RHEL 服务器和 AD 之间的时间必须同步。您可以通过在 playbook 中使用 timesync 系统角色来确保这一点。

在本例中,RHEL 系统通过使用 AD Administrator 用户和存储在 Ansible vault 中的此用户的密码加入 domain.example.com AD 域。playbook 还设置 AD-SUPPORT 加密策略,并允许 RC4 加密。为确保 RHEL 系统和 AD 之间的时间同步,playbook 会将 adserver.domain.example.com 服务器设置为 timesync 源。

先决条件

  • 您已准备好控制节点和受管节点
  • 以可在受管主机上运行 playbook 的用户登录到控制节点。
  • 用于连接到受管节点的帐户具有 sudo 权限。
  • AD 域控制器上的以下端口已开放,并可从 RHEL 服务器访问:

    表 35.1. 使用 ad_integration 系统角色将 Linux 系统直接集成到 AD 所需的端口

    源端口目的地端口协议Service

    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 更改/设置密码(kadmin)

    1024:65535

    3268

    TCP

    LDAP 全局目录

    1024:65535

    3269

    TCP

    LDAP 全局目录 SSL/TLS

    1024:65535

    123

    UDP

    NTP/Chrony (可选)

    1024:65535

    323

    UDP

    NTP/Chrony (可选)

流程

  1. 创建包含以下内容的 playbook 文件,如 ~/playbook.yml

    ---
    - name: Configure a direct integration between a RHEL system and an AD domain
      hosts: managed-node-01.example.com
      roles:
        - rhel-system-roles.ad_integration
      vars:
        ad_integration_realm: "domain.example.com"
        ad_integration_password: !vault | vault encrypted password
        ad_integration_manage_crypto_policies: true
        ad_integration_allow_rc4_crypto: true
        ad_integration_timesync_source: "adserver.domain.example.com"
  2. 验证 playbook 语法:

    $ ansible-playbook --syntax-check ~/playbook.yml

    请注意,这个命令只验证语法,不会防止错误但有效的配置。

  3. 运行 playbook:

    $ ansible-playbook ~/playbook.yml

验证

  • 显示 AD 用户详情,如 administrator 用户:

    $ 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 file
  • /usr/share/doc/rhel-system-roles/ad_integration/ directory