5.2.2. 创建信任
以下小节描述了在不同配置场景中创建信任关系。第 5.2.2.1 节 “从命令行创建信任” 包含从命令行配置信任的完整步骤。其他小节描述了与这种基本配置场景不同的步骤,并引用所有其他步骤的基本步骤。
注意
如果您在现有信任环境中设置副本,则副本不会自动配置为信任控制器。要将副本配置为额外的信任控制器,请按照本节中的步骤操作。
创建信任后,请参阅 第 5.2.3 节 “跨林信任的安装后注意事项”。
5.2.2.1. 从命令行创建信任
在 IdM 和 Active Directory Kerberos 域间创建信任关系涉及以下步骤:
- 为信任准备 IdM 服务器,如下所述 第 5.2.2.1.1 节 “为信任准备 IdM 服务器”
- 创建信任协议,如 第 5.2.2.1.2 节 “创建信任协议”
- 验证 Kerberos 配置,如 所述 第 5.2.2.1.3 节 “验证 Kerberos 配置”
5.2.2.1.1. 为信任准备 IdM 服务器
要为与 AD 的信任关系设置 IdM 服务器,请按照以下步骤执行:
- 安装所需的 IdM、信任和 Samba 软件包:
[root@ipaserver ]# yum install ipa-server ipa-server-trust-ad samba-client
- 配置 IdM 服务器以启用信任服务。如果您使用 ipa-replica-install --setup-adtrust 命令安装服务器,您可以跳过这一步。
- 运行
ipa-adtrust-install
工具:[root@ipaserver ]# ipa-adtrust-install
实用程序添加 AD 信任所需的 DNS 服务记录。如果 IdM 安装了集成的 DNS 服务器,则会自动创建这些记录。如果 IdM 安装时没有集成 DNS服务器,ipa-adtrust-install
会输出您必须手动添加到 DNS 的服务记录列表,然后才能继续。重要红帽强烈建议在每次运行ipa-adtrust-install 后验证 DNS 配置,如
“验证 DNS 配置”一节 所述,特别是在 IdM 或 AD 不使用集成 DNS 服务器时。 - 脚本会提示配置
slapi-nis
插件,这是一个兼容插件,允许较旧的 Linux 客户端与受信任的用户一起工作。Do you want to enable support for trusted domains in Schema Compatibility plugin? This will allow clients older than SSSD 1.9 and non-Linux clients to work with trusted users. Enable trusted domains support in slapi-nis? [no]: y
- 首次安装 目录时,至少有一个用户(IdM 管理员)存在。SID 生成任务可以为任何现有用户创建一个 SID,以支持信任环境。这是一个资源密集型任务;对于大量用户而言,这可以单独运行。
Do you want to run the ipa-sidgen task? [no]: yes
- 确保正确配置了 DNS,如 第 5.2.1.2 节 “DNS 和 Realm 设置” 所述。
- 启动
smb
服务:[root@ipaserver ~]# systemctl start smb
- 另外,还可在系统引导时配置
smb
服务自动启动:[root@ipaserver ~]# systemctl enable smb
- (可选)使用
smbclient
实用程序验证 Samba 是否从 IdM 端响应 Kerberos 身份验证。[root@ipaserver ~]# smbclient -L ipaserver.ipa.example.com -k lp_load_ex: changing to config backend registry Sharename Type Comment --------- ---- ------- IPC$ IPC IPC Service (Samba 4.9.1) Reconnecting with SMB1 for workgroup listing. Server Comment --------- ------- Workgroup Master --------- -------
5.2.2.1.2. 创建信任协议
使用 ipa trust-add 命令为 Active Directory 域和 IdM 域创建信任协议:
# ipa trust-add --type=type ad_domain_name --admin ad_admin_username --password
ipa trust-add 命令默认设置单向信任。在 RHEL 7 中无法建立双向信任。
要建立外部信任,请将
--external=true
选项传递给 ipa trust-add 命令。详情请查看 第 5.1.5 节 “外部 Trusts 到 ActiveActive Directorynbsp;Directory”。
注意
ipa trust-add 命令默认将服务器配置为信任控制器。详情请查看 第 5.1.6 节 “信任控制器和信任代理”。
以下示例使用
--two-way=true
选项建立了双向信任:
[root@ipaserver ~]# ipa trust-add --type=ad ad.example.com --admin Administrator --password --two-way=true Active Directory domain administrator's password: ------------------------------------------------------- Added Active Directory trust for realm "ad.example.com" ------------------------------------------------------- Realm-Name: ad.example.com Domain NetBIOS name: AD Domain Security Identifier: S-1-5-21-796215754-1239681026-23416912 SID blacklist incoming: S-1-5-20, S-1-5-3, S-1-5-2, S-1-5-1, S-1-5-7, S-1-5-6, S-1-5-5, S-1-5-4, S-1-5-9, S-1-5-8, S-1-5-17, S-1-5-16, S-1-5-15, S-1-5-14, S-1-5-13, S-1-5-12, S-1-5-11, S-1-5-10, S-1-3, S-1-2, S-1-1, S-1-0, S-1-5-19, S-1-5-18 SID blacklist outgoing: S-1-5-20, S-1-5-3, S-1-5-2, S-1-5-1, S-1-5-7, S-1-5-6, S-1-5-5, S-1-5-4, S-1-5-9, S-1-5-8, S-1-5-17, S-1-5-16, S-1-5-15, S-1-5-14, S-1-5-13, S-1-5-12, S-1-5-11, S-1-5-10, S-1-3, S-1-2, S-1-1, S-1-0, S-1-5-19, S-1-5-18 Trust direction: Two-way trust Trust type: Active Directory domain Trust status: Established and verified
5.2.2.1.3. 验证 Kerberos 配置
要验证 Kerberos 配置,测试是否可以获取 IdM 用户的票据,以及 IdM 用户是否可以请求服务票据。
验证双向信任:
- 为 IdM 用户请求一个 ticket:
[root@ipaserver ~]# kinit user
- 为 IdM 域中的服务请求 ticket:
[root@ipaserver ~]# kvno -S host ipaserver.example.com
- 为 AD 域中的服务请求服务票据:
[root@ipaserver ~]# kvno -S cifs adserver.example.com
如果 AD 服务票据被成功授予,则会使用其他所有请求的票据列出跨域票据(TGT)。TGT 命名为krbtgt/AD.DOMAIN@IPA.DOMAIN
。[root@ipaserver ]# klist Ticket cache: FILE:/tmp/krb5cc_0 Default principal: user@IPA.DOMAIN Valid starting Expires Service principal 06/15/12 12:13:04 06/16/12 12:12:55 krbtgt/IPA.DOMAIN@IPA.DOMAIN 06/15/12 12:13:13 06/16/12 12:12:55 host/ipaserver.ipa.example.com@IPA.DOMAIN 06/15/12 12:13:23 06/16/12 12:12:55 krbtgt/AD.DOMAIN@IPA.DOMAIN 06/15/12 12:14:58 06/15/12 22:14:58 cifs/adserver.ad.example.com@AD.DOMAIN
从 IdM 端验证单向信任:
- 为 ActiveActive Directorynbsp 请求一个 ticket:Directory 用户:
[root@ipaserver ~]# kinit user@AD.DOMAIN
- 为 IdM 域中的服务请求 ticket:
[root@ipaserver ~]# kvno -S host ipaserver.example.com
如果 AD 服务票据被成功授予,则会使用其他所有请求的票据列出跨域票据(TGT)。TGT 命名为krbtgt/IPA.DOMAIN@AD.DOMAIN
。[root@ipaserver ]# klist Ticket cache: KEYRING:persistent:0:krb_ccache_hRtox00 Default principal: user@AD.DOMAIN Valid starting Expires Service principal 03.05.2016 18:31:06 04.05.2016 04:31:01 host/ipaserver.ipa.example.com@IPA.DOMAIN renew until 04.05.2016 18:31:00 03.05.2016 18:31:06 04.05.2016 04:31:01 krbtgt/IPA.DOMAIN@AD.DOMAIN renew until 04.05.2016 18:31:00 03.05.2016 18:31:01 04.05.2016 04:31:01 krbtgt/AD.DOMAIN@AD.DOMAIN renew until 04.05.2016 18:31:00
localauth
插件将 Kerberos 主体映射到本地 SSSD 用户名。这允许 AD 用户使用 Kerberos 身份验证并访问 Linux 服务,这些服务直接支持 GSSAPI 身份验证。
注意
有关插件的详情请参考 第 5.3.7.2 节 “使用 SSH 不带密码”。