第 6 章 使用 RHEL 系统角色将 RHEL 系统加入到 Active Directory


如果您的组织使用 Microsoft Active Directory (AD)集中管理用户、组和其他资源,您可以将 Red Hat Enterprise Linux (RHEL)主机加入到这个 AD 中。例如,AD 用户可以登录 RHEL,您可以在 RHEL 主机上为经过身份验证的 AD 用户提供服务。通过使用 ad_integration RHEL 系统角色,您可以将 Red Hat Enterprise Linux 系统集成到活动目录(AD)域中。

注意

ad_integration 角色用于使用没有身份管理(IdM)环境的直接 AD 集成的部署。对于 IdM 环境,请使用 ansible-freeipa 角色。

6.1. 使用 ad_integration RHEL 系统角色将 RHEL 加入到 Active Directory 域中

您可以使用 ad_integration RHEL 系统角色来自动化将 RHEL 加入到活动目录(AD)域的过程。

先决条件

  • 您已准备好控制节点和受管节点
  • 以可在受管主机上运行 playbook 的用户登录到控制节点。
  • 用于连接到受管节点的帐户具有 sudo 权限。
  • 受管节点使用 DNS 服务器来解析 AD DNS 条目。
  • AD 帐户的凭证,该帐户有权将计算机加入到域中。
  • 受管节点可使用以下端口建立到 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 密码更改请求

    1024 - 65535

    3268

    TCP

    LDAP 全局目录

    1024 - 65535

    3269

    TCP

    LDAPS 全局目录

    1024 - 65535

    123

    UDP

    NTP (如果启用了时间同步)

    1024 - 65535

    323

    UDP

    NTP (如果启用了时间同步)

步骤

  1. 将您的敏感变量存储在一个加密文件中:

    1. 创建 vault :

      $ ansible-vault create vault.yml
      New Vault password: <vault_password>
      Confirm New Vault password: <vault_password>
    2. ansible-vault create 命令打开编辑器后,以 <key>: <value> 格式输入敏感数据:

      usr: administrator
      pwd: <password>
    3. 保存更改,并关闭编辑器。Ansible 加密 vault 中的数据。
  2. 创建一个包含以下内容的 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 文件。

  3. 验证 playbook 语法:

    $ ansible-playbook --ask-vault-pass --syntax-check ~/playbook.yml

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

  4. 运行 playbook:

    $ ansible-playbook --ask-vault-pass ~/playbook.yml

验证

  • 检查 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
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.