Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

5.2.2. 创建信任

以下小节描述了在不同配置场景中创建信任关系。第 5.2.2.1 节 “从命令行创建信任” 包含从命令行配置信任的完整步骤。其他小节描述了与这种基本配置场景不同的步骤,并引用所有其他步骤的基本步骤。
注意
如果您在现有信任环境中设置副本,则副本不会自动配置为信任控制器。要将副本配置为额外的信任控制器,请按照本节中的步骤操作。

5.2.2.1. 从命令行创建信任

在 IdM 和 Active Directory Kerberos 域间创建信任关系涉及以下步骤:
  1. 为信任准备 IdM 服务器,如下所述 第 5.2.2.1.1 节 “为信任准备 IdM 服务器”
  2. 验证 Kerberos 配置,如 所述 第 5.2.2.1.3 节 “验证 Kerberos 配置”
5.2.2.1.1. 为信任准备 IdM 服务器
要为与 AD 的信任关系设置 IdM 服务器,请按照以下步骤执行:
  1. 安装所需的 IdM、信任和 Samba 软件包:
    [root@ipaserver ]# yum install ipa-server ipa-server-trust-ad samba-client
  2. 配置 IdM 服务器以启用信任服务。如果您使用 ipa-replica-install --setup-adtrust 命令安装服务器,您可以跳过这一步。
    1. 运行 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 服务器时。
    2. 脚本会提示配置 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
    3. 首次安装 目录时,至少有一个用户(IdM 管理员)存在。SID 生成任务可以为任何现有用户创建一个 SID,以支持信任环境。这是一个资源密集型任务;对于大量用户而言,这可以单独运行。
      Do you want to run the ipa-sidgen task? [no]: yes
  3. 确保正确配置了 DNS,如 第 5.2.1.2 节 “DNS 和 Realm 设置” 所述。
  4. 启动 smb 服务:
    [root@ipaserver ~]# systemctl start smb
  5. 另外,还可在系统引导时配置 smb 服务自动启动:
    [root@ipaserver ~]# systemctl enable smb
  6. (可选)使用 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 用户是否可以请求服务票据。
验证双向信任:
  1. 为 IdM 用户请求一个 ticket:
    [root@ipaserver ~]# kinit user
  2. 为 IdM 域中的服务请求 ticket:
    [root@ipaserver ~]# kvno -S host ipaserver.example.com
  3. 为 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 端验证单向信任:
  1. 为 ActiveActive Directorynbsp 请求一个 ticket:Directory 用户:
    [root@ipaserver ~]# kinit user@AD.DOMAIN
  2. 为 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 不带密码”