linux-system-roles.ad_integration
直接 AD 集成角色
一个配置直接 Active Directory 集成的 ansible 角色。
支持的发行版
- RHEL7+、CentOS7+
- Fedora
要求
为了加入域,必须使用具有足够加入权限的 Active Directory 用户。不推荐使用管理员用户,因为该用户的安全风险太大。
查看 Delegated Permissions 获取用户必须具备的权限。
时间必须与 Active Directory 服务器同步。如果用户将 ad_integration_manage_timesync
设置为 true,并提供一个时间源 ad_integration_timesync_source
,则 ad_integration 角色将使用时钟同步系统角色。
RHEL8(及更新版本)和 Fedora 默认不再支持 RC4 加密,建议在 Active Directory 中启用 AES,如果不可能,则必须启用 AD-SUPPORT 加密策略。如果用户将 ad_integration_manage_crypto_policies
和 ad_integration_allow_rc4_crypto
参数设置为 true,集成功能将会使用 crypto_policies 系统角色。
Linux 系统必须能够解析默认的 AD DNS SRV 记录。
在 AD 服务器端,必须开放以下防火墙端口,以便 Linux 客户端能够访问。
源端口 | 目标 | 协议 | 服务 |
---|---|---|---|
1024:65535 | 53 | TCP 和 UDP | DNS |
1024:65535 | 389 | TCP 和 UDP | LDAP |
1024:65535 | 636 | TCP | LDAPS |
1024:65535 | 88 | TCP 和 UDP | Kerberos |
1024:65535 | 464 | TCP 和 UDP | Kerberos 更改/设置密码 (kadmin) |
1024:65535 | 3268 | TCP | LDAP 全局目录 |
1024:65535 | 3269 | TCP | LDAP 全局目录 SSL |
1024:65535 | 123 | UDP | NTP/Chrony(可选) |
1024:65535 | 323 | UDP | NTP/Chrony(可选) |
集合要求
该角色需要来自外部集合的额外模块。请使用以下命令安装它们:
ansible-galaxy collection install -vv -r meta/collection-requirements.yml
角色变量
必需变量
ad_integration_realm
Active Directory 领域或要加入的域名。
ad_integration_password
用于加入领域的用户的密码。请不要使用明文 - 使用 Ansible Vault 加密该值。
可选变量
ad_integration_user
用于加入领域的用户名称。
默认:Administrator
ad_integration_join_to_dc
可以指定 Active Directory 域控制器的主机名(不要使用 IP 地址),以便通过该域控制器直接加入。
默认:未设置
ad_integration_force_rejoin
在进行加入之前,先离开现有域。如果密钥表无法通过计算机帐户进行身份验证,则可能需要此项。
默认:false
ad_integration_auto_id_mapping
为用户和组执行自动 UID/GID 映射,将其设置为 false
以依赖 Active Directory 中已存在的 POSIX 属性。
默认:true
ad_integration_client_software
仅加入可使用指定客户端软件的领域。可能的值包括 sssd 或 winbind。并非所有值适用于所有领域。
默认:自动选择
ad_integration_membership_software
用于加入领域的软件。可能的值包括 samba 或 adcli。并非所有值适用于所有领域。
默认:自动选择
ad_integration_computer_ou
要创建计算机帐户的组织单位的 Distinguished Name。可以相对于 Root DSE,或是完整的 LDAP DN。
默认:默认的 AD 计算机容器
ad_integration_manage_timesync
如果为 true,ad_integration 角色将使用 fedora.linux_system_roles.timesync。需要提供一个值 ad_integration_timesync_source
作为时间源。
默认:false
ad_integration_timesync_source
要与之同步系统时钟的时间源的主机名或 IP 地址。提供此变量会自动将 ad_integration_manage_timesync
设置为 true。
ad_integration_manage_crypto_policies
如果为 true,ad_integration 角色将根据需要使用 fedora.linux_system_roles.crypto_policies。
默认:false
ad_integration_allow_rc4_crypto
如果为 true,ad_integration 角色将设置允许 RC4 加密的加密策略。提供此变量会自动将 ad_integration_manage_crypto_policies
设置为 true。
默认:false
ad_integration_manage_dns
如果为 true,ad_integration 角色将使用 fedora.linux_system_roles.network 将提供的 DNS 服务器(见下文)使用手动 DNS 配置添加到现有连接。如果为 true,则需要以下变量:
ad_integration_dns_server
- 要添加的 DNS 服务器ad_integration_dns_connection_name
- 要配置的现有网络连接名称ad_integration_dns_connection_type
- 要配置的现有网络连接类型
ad_integration_dns_server
要添加到现有网络配置中的 DNS 服务器的 IP 地址。仅在 ad_integration_manage_dns
为 true 时适用。
ad_integration_dns_connection_name
名称选项标识要通过网络角色配置的连接配置文件。它不是适用的网络接口的名称。仅在 ad_integration_manage_dns
为 true 时适用。
ad_integration_dns_connection_type
网络连接类型,例如以太网、桥接等,网络角色包含可能值的列表。仅在 ad_integration_manage_dns
为 true 时适用。
ad_dyndns_update
如果为 true,将配置 SSSD 以自动使用客户端的 IP 地址更新 AD DNS 服务器。
默认:false
ad_dyndns_ttl
可选。更新客户端的 DNS 记录时要应用的 TTL(以秒为单位)。仅在 ad_dyndns_update
为 true 时适用。
注意: 这将覆盖管理员在服务器上设置的 TTL。
默认:3600
ad_dyndns_iface
可选。应使用其 IP 地址进行动态 DNS 更新的接口或接口列表。特殊值 "*" 表示应使用所有接口的所有 IP。仅在 ad_dyndns_update
为 true 时适用。
默认:使用用于 AD LDAP 连接的接口的 IP 地址。
ad_dyndns_refresh_interval
可选。在后端上线的情况下,除了定期的 DNS 更新外,应该多长时间(以秒为单位)执行一次周期性 DNS 更新。仅在 ad_dyndns_update
为 true 时适用。
注意: 最低可能值为 60 秒。如果指定的值小于 60,sssd 将假定为最低值。
默认:86400
ad_dyndns_update_ptr
可选。如果为 true,则 PTR 记录也应该被明确地更新。仅在 ad_dyndns_update
为 true 时适用。
默认:true
ad_dyndns_force_tcp
可选。如果为 true,nsupdate 工具将默认使用 TCP 与 DNS 服务器进行通信。仅在 ad_dyndns_update
为 true 时适用。
默认:false
ad_dyndns_auth
可选。如果为 true,GSS-TSIG 身份验证将用于使用 DNS 服务器进行安全更新的 A 和 AAAA 记录更新。仅在 ad_dyndns_update
为 true 时适用。
默认:true
ad_dyndns_server
可选。当自动检测设置失败时,进行 DNS 更新时使用的 DNS 服务器。仅在 ad_dyndns_update
为 true 时适用。
默认:无(让 nsupdate 选择服务器)
ad_integration_join_parameters
直接提供给领域加入命令的附加参数(作为字符串)。如果需要一些特定配置,例如 --user-principal=host/name@REALM 或 --use-ldaps,则很有用。有关详细信息,请参见 man realm。 示例:ad_integration_join_parameters: "--user-principal host/client007@EXAMPLE.COM"
ad_integration_sssd_settings
要包含到 sssd.conf 文件的 [sssd]
部分的设置列表。有关详细信息,请参见 sssd.conf 手册页。
示例:
ad_integration_sssd_settings:
- key: "configuration_name"
value: "configuration_value"
ad_integration_sssd_custom_settings
要包含到 sssd.conf 文件的 [domain/$REALM]
部分的自定义设置列表。有关详细信息,请参见 sssd.conf 手册页。
示例:
ad_integration_sssd_custom_settings:
- key: "configuration_name"
value: "configuration_value"
ad_integration_preserve_authselect_profile
这是一个布尔值,默认值为 false
。如果为 true
,将配置 realmd.conf 以从 sssd-enable-logins
中删除 authselect
命令,以避免覆盖之前的 PAM/nsswitch 更改,直到解决 RHEL-5101。
示例剧本
以下是一个示例剧本,用于设置与 AD 域 domain.example.com
的直接 Active Directory 集成,加入将由用户 Administrator 使用存储在 Vault 中的密码执行。在加入之前,将设置 AD SUPPORT 加密策略,并允许使用 RC4 加密。
- hosts: all
vars:
ad_integration_realm: "domain.example.com"
ad_integration_password: !vault | …vault 加密密码…
ad_integration_manage_crypto_policies: true
ad_integration_allow_rc4_crypto: true
roles:
- linux-system-roles.ad_integration
rpm-ostree
请参阅 README-ostree.md
许可证
MIT。
作者信息
Justin Stephenson (jstephen@redhat.com)