安装身份管理


Red Hat Enterprise Linux 10

安装 IdM 服务器和客户端的方法

Red Hat Customer Content Services

摘要

根据您的环境,您可以安装身份管理(IdM)来提供 DNS 和证书颁发机构(CA)服务,或者配置 IdM 以使用现有的 DNS 和 CA 基础架构。您可以手动或使用 Ansible Playbook 安装 IdM 服务器、副本和客户端。另外,您可以使用 Kickstart 文件在系统安装过程中自动将客户端加入到 IdM 域中。

对红帽文档提供反馈

我们感谢您对我们文档的反馈。让我们了解如何改进它。

通过 Jira 提交反馈(需要帐户)

  1. 登录到 Jira 网站。
  2. 在顶部导航栏中点 Create
  3. Summary 字段中输入描述性标题。
  4. Description 字段中输入您对改进的建议。包括文档相关部分的链接。
  5. 点对话框底部的 Create

第 1 章 为 IdM 服务器安装准备系统

以下小节列出了安装身份管理(IdM)服务器的要求。在安装前,请确定您的系统满足这些要求。

1.1. 先决条件

  • 您需要 root 特权才能在主机上安装 IdM 服务器。

1.2. 硬件建议

对于性能调整,RAM 是最重要的硬件。请确定您的系统有足够可用 RAM。典型的 RAM 要求是:

  • 对于 10,000 个用户和 100 个组:至少 4 GB RAM 和 4 GB 交换(swap)空间
  • 对于 100,000 个用户和 50,000 个组:至少 16 GB RAM 和 4 GB swap 空间

对于较大的部署,增加 RAM 比增加磁盘空间效率更高,因为大部分数据都存储在缓存中。通常,对于大型部署,添加更多 RAM 会因为有更多的缓存使系统具有更好的性能。在虚拟环境中,必须禁用内存膨胀,或者必须为客户机 IdM 服务器保留完整的 RAM。

注意

基本用户条目或带有证书的简单主机条目大约是 5-​10 kB 大小。

1.3. IdM 的自定义配置要求

在干净的系统上安装 RHEL 身份管理(IdM)服务器,而无需对 DNS、Kerberos、Apache 或目录服务器等服务进行任何自定义配置。

IdM 服务器安装覆盖了系统文件来设置 IdM 域。IdM 将原始系统文件备份到 /var/lib/ipa/sysrestore/。当在生命周期结束时卸载 IdM 服务器时,会恢复这些文件。

1.3.1. IdM 中的 IPv6 要求

IdM 系统必须在内核中启用 IPv6 协议。如果禁用 IPv6,IdM 服务使用的 CLDAP 插件将无法初始化。

注意

不必在网络中启用 IPv6。

1.3.2. 支持 IdM 中的加密类型

Red Hat Enterprise Linux (RHEL)使用 Kerberos 协议版本 5,它支持加密类型,如高级加密标准(AES)、Camellia 和数据加密标准(DES)。

支持的加密类型列表

虽然 IdM 服务器和客户端上的 Kerberos 库可能会支持更多的加密类型,但 IdM Kerberos 分发中心(KDC)只支持以下加密类型:

  • aes256-cts:normal
  • aes256-cts:special (默认)
  • aes128-cts:normal
  • aes128-cts:special (默认)
  • aes128-sha2:normal
  • aes128-sha2:special
  • aes256-sha2:normal
  • aes256-sha2:special
  • camellia128-cts-cmac:normal
  • camellia128-cts-cmac:special
  • camellia256-cts-cmac:normal
  • camellia256-cts-cmac:special

默认禁用 RC4 加密类型

RHEL 9 中默认禁用了以下 RC4 加密类型,因为它们被视为比新的 AES-128 和 AES-256 加密类型安全性低:

  • arcfour-hmac:normal
  • arcfour-hmac:special

有关手动启用 RC4 支持以与旧活动目录环境兼容的更多信息,请参阅 确保在 AD 和 RHEL 中对通用加密类型的支持

删除了对 DES 和 3DES 加密的支持

由于安全考虑,在 RHEL 7 中弃用了对 DES 算法的支持。RHEL 8 中删除了 single-DES(DES)和 triple-DES(3DES)加密类型,且不会在 RHEL 9 中使用。

1.3.3. 支持 IdM 中系统范围的加密策略

IdM 使用 DEFAULT 系统范围的加密策略。此政策为当前威胁模型提供安全设置。它允许 TLS 1.2 和 1.3 协议,以及 IKEv2 和 SSH2 协议。如果 RSA 密钥和 Diffie-Hellman 参数至少是 2048 位,则可以接受它们。此策略不允许 DES、3DES、RC4、DSA、TLS v1.0 和其他较弱的算法。

注意

您不能使用 FUTURE 系统范围的加密策略来安装 IdM 服务器。安装 IdM 服务器时,请确保您使用的是 DEFAULT 系统范围的加密策略。

1.3.4. FIPS 合规性

您可以在启用了联邦信息处理标准(FIPS)模式的系统上安装新的 IdM 服务器或副本。唯一的例外是启用了 FIPS:OSPP 加密子策略的系统。

要使用 FIPS 安装 IdM,首先在主机上启用 FIPS 模式,然后安装 IdM。IdM 安装脚本会检测是否 FIPS 已启用,并配置 IdM ,以只使用与 FIPS 140-3 兼容的加密类型:

  • aes128-sha2:normal
  • aes128-sha2:special
  • aes256-sha2:normal
  • aes256-sha2:special

要使 IdM 环境符合 FIPS,所有 IdM 副本都必须启用 FIPS 模式。

红帽建议您在 IdM 客户端中也启用 FIPS,特别是您可以将这些客户端提升到 IdM 副本。最终,由管理员来决定它们如何满足 FIPS 要求;红帽不强制执行 FIPS 标准。

迁移到符合 FIPS 的 IdM

您无法将现有 IdM 安装从非 FIPS 环境迁移到符合 FIPS 的安装。这不是技术问题,而是法律和监管限制。

要操作符合 FIPS 的系统,必须在 FIPS 模式下创建所有加密密钥资料。另外,加密密钥材料不得离开 FIPS 环境,除非它被安全包装,且永远不会在非 FIPS 环境中解封。

如果您的场景需要将非 FIPS IdM 领域迁移到符合 FIPS 的领域,您必须:

  1. 在 FIPS 模式下创建一个新 IdM 领域
  2. 使用阻止所有密钥材料的过滤器,从非 FIPS 领域执行到新 FIPS 模式领域的数据迁移

迁移过滤器必须阻止:

  • KDC 主密钥、keytab 以及所有相关 Kerberos 密钥材料
  • 用户密码
  • 所有证书,包括 CA、服务和用户证书
  • OTP 令牌
  • SSH 密钥和指纹
  • 所有 vault 条目
  • 与 AD 信任相关的密钥材料

实际上,新的 FIPS 安装是一种不同的安装。即使具有严格的过滤,此类迁移可能无法通过 FIPS 140 认证。您的 FIPS 审核员可能会标记这个迁移。

支持启用了 FIPS 模式的跨林信任

要在启用了 FIPS 模式的情况下与活动目录(AD)建立跨林信任,您必须使用 AD 管理帐户进行身份验证。在启用 FIPS 模式时,您无法使用共享 secret 建立信任。

重要

RADIUS 身份验证不兼容 FIPS。如果您需要 RADIUS 身份验证,不要在启用了 FIPS 模式的服务器中安装 IdM。

其它资源

1.4. IdM 的时间服务要求

以下章节讨论了使用 chronyd 来使 IdM 主机与中央时间源同步:

1.4.1. IdM 如何使用 chronyd 进行同步

您可以使用 chronyd 使 IdM 主机与中央时间源同步,如下所述。

Kerberos 是 IdM 中的底层验证机制,使用时间戳作为其协议的一部分。如果 IdM 客户端的系统时间与密钥发布中心(KDC)的系统时间相差超过 5 分钟,则 Kerberos 身份验证会失败。

为确保 IdM 服务器和客户端与中央时间源同步,IdM 安装脚本会自动配置 chronyd 网络时间协议(NTP)客户端软件。

如果您没有将任何 NTP 选项传给 IdM 安装命令,安装程序将搜索指向网络中 NTP 服务器的 _ntp._udp DNS 服务(SRV)记录,并使用该 IP 地址配置 chrony。如果您没有任何 _ntp._udp SRV 记录,chronyd 会使用 chrony 软件包提供的配置。

1.4.2. IdM 安装命令的 NTP 配置选项列表

您可以使用 chronyd 使 IdM 主机与中央时间源同步。

您可以在任何 IdM 安装命令(ipa-server-installipa-replica-installipa-client-install)中指定以下选项来在设置过程中配置 chronyd 客户端软件。

表 1.1. IdM 安装命令的 NTP 配置选项列表
选项行为

--ntp-server

使用它指定一个 NTP 服务器。您可以多次使用它来指定多个服务器。

--ntp-pool

使用它指定一个解析为主机名的多个 NTP 服务器池。

-N,--no-ntp

不要配置、启动或启用 chronyd

1.4.3. 确保 IdM 可以引用您的 NTP 时间服务器

您可以验证您是否有必要的配置,以使 IdM 能够与您的网络时间协议(NTP)时间服务器同步。

先决条件

  • 您已在环境中配置了 NTP 时间服务器。在本例中,之前配置的时间服务器的主机名为 ntpserver.example.com

流程

  1. 对您环境中的 NTP 服务器执行 DNS 服务(SRV)记录搜索。

    [user@server ~]$ dig +short -t SRV _ntp._udp.example.com
    0 100 123 ntpserver.example.com.
    Copy to Clipboard
  2. 如果之前的 dig 搜索没有返回您的时间服务器,请添加一个指向时间服务器 123 端口的 _ntp._udp SRV 记录。这个过程取决于您的 DNS 解决方案。

验证

  • 在您执行搜索 _ntp._udp SRV 记录时,DNS 验证您的时间服务器的 123 端口是否返回一条记录。

    [user@server ~]$ dig +short -t SRV _ntp._udp.example.com
    0 100 123 ntpserver.example.com.
    Copy to Clipboard

1.5. 满足 IdM 的 DNS 主机名和 DNS 要求

以下概述了服务器和副本系统的主机名和 DNS 要求,以及如何验证系统是否满足要求。

警告

DNS 记录对于几乎所有 RHEL 身份管理(IdM)域功能至关重要,包括运行 LDAP 目录服务、Kerberos 和 Active Directory 集成。请非常小心,并确保:

  • 您有一个经过测试且可以正常工作的 DNS 服务
  • 该服务已被正确配置

这个要求适用于所有 IdM 服务器,包括具有 没有集成的 DNS。

验证服务器主机名

主机名必须是完全限定域名,如 server.idm.example.com

重要

不要使用单标签域名,例如 .company : IdM 域必须由一个或多个子域和一个顶级域组成,如 example.comcompany.example.com

完全限定域名必须满足以下条件:

  • 它是一个有效的 DNS 名称,即只允许数字、字母字符和连字符(-)。主机名中的其他字符(如下划线(_))会导致 DNS 失败。
  • 都是小写。不允许使用大写字母。
  • 它无法解析回送地址。它必须解析系统的公共 IP 地址,而不是 127.0.0.1

要验证主机名,在您要安装的系统中使用 hostname 工具:

# hostname
server.idm.example.com
Copy to Clipboard

hostname 的输出不能是 localhostlocalhost6

验证转发和反向 DNS 配置
  1. 获取服务器的 IP 地址。

    1. ip addr show 命令显示 IPv4 和 IPv6 地址。在以下示例中,相关的 IPv6 地址为 2001:DB8::1111,因为其范围是全局的:

      [root@server ~]# ip addr show
      ...
      2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
      link/ether 00:1a:4a:10:4e:33 brd ff:ff:ff:ff:ff:ff
      inet 192.0.2.1/24 brd 192.0.2.255 scope global dynamic eth0
      valid_lft 106694sec preferred_lft 106694sec
      inet6 2001:DB8::1111/32 scope global dynamic
      valid_lft 2591521sec preferred_lft 604321sec
      inet6 fe80::56ee:75ff:fe2b:def6/64 scope link
      valid_lft forever preferred_lft forever
      ...
      Copy to Clipboard
  2. 使用 dig 工具证正向 DNS 配置。

    1. 运行 dig +short server.idm.example.com A 命令。返回的 IPv4 地址必须与 ip addr show 返回的 IP 地址匹配:

      [root@server ~]# dig +short server.idm.example.com A
      192.0.2.1
      Copy to Clipboard
    2. 运行 dig +short server.idm.example.com AAAA 命令。如果返回一个地址,它必须与 ip addr show 返回的 IPv6 地址匹配:

      [root@server ~]# dig +short server.idm.example.com AAAA
      2001:DB8::1111
      Copy to Clipboard
      注意

      如果 dig 没有返回 AAAA 记录的任何输出,那么这并不表示配置不正确。没有输出只表示系统在 DNS 中没有配置 IPv6 地址。如果您不打算在网络中使用 IPv6 协议,则可以继续进行安装。

  3. 验证反向 DNS 配置(PTR 记录)。使用 dig 工具并添加 IP 地址。

    如果以下命令显示不同的主机名或没有主机名,则反向 DNS 配置不正确。

    1. 运行 dig +short -x IPv4_address 命令。输出必须显示服务器主机名。例如:

      [root@server ~]# dig +short -x 192.0.2.1
      server.idm.example.com
      Copy to Clipboard
    2. 如果上一步中的 dig +short -x server.idm.example.com AAAA 命令返回 IPv6 地址,请使用 dig 查询 IPv6 地址。输出必须显示服务器主机名。例如:

      [root@server ~]# dig +short -x 2001:DB8::1111
      server.idm.example.com
      Copy to Clipboard
      注意

      如果上一步中的 dig +short server.idm.example.com AAAA 没有显示任何 IPv6 地址,查询 AAAA 记录不会输出任何内容。在这种情况下,这是正常的行为,不代表配置不正确。

      警告

      如果反向 DNS(PTR 记录)搜索返回多个主机名,那么 httpd 和其他与 IdM 关联的软件可能会显示无法预测的行为。红帽强烈建议每个 IP 只配置一个 PTR 记录。

验证 DNS 正向解析器的标准合规性(仅集成DNS需要)

确保您要与 IdM DNS 服务器一起使用的所有 DNS 转发器都符合 DNS 扩展机制(EDNS0)。要做到这一点,请分别检查每个正向解析器的以下命令的输出:

$ dig @IP_address_of_the_DNS_forwarder . SOA
Copy to Clipboard

命令显示的预期输出包含以下信息:

  • 状态:NOERROR
  • 标记:ra

如果输出中缺少这些项的其中一个,请检查您的 DNS 转发器的文档,并验证 EDNS0 是否被支持并启用了。

验证 /etc/hosts 文件

验证 /etc/hosts 文件是否满足以下条件之一:

  • 该文件不包含主机的条目。它只列出主机的 IPv4 和 IPv6 localhost 条目。
  • 该文件包含主机条目,并且文件满足以下所有条件:

    • 前两个条目是 IPv4 和 IPv6 localhost 条目。
    • 下一个条目指定 IdM 服务器 IPv4 地址和主机名。
    • IdM 服务器的 FQDN 位于 IdM 服务器的短名称之前。
    • IdM 服务器主机名不是 localhost 条目的一部分。

    以下是正确配置的 /etc/hosts 文件示例:

127.0.0.1 localhost localhost.localdomain \
localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain \
localhost6 localhost6.localdomain6
192.0.2.1 server.idm.example.com server
2001:DB8::1111 server.idm.example.com server
Copy to Clipboard

1.6. IdM 的端口要求

RHEL 身份管理(IdM)使用 多个端口 与其服务进行通信。这些端口必须是开放的,并可用于 IdM 服务器的传入连接,这样 IdM 才能工作。。它们目前不能被其他服务使用,或者被 防火墙阻止

表 1.2. IdM 端口
端口端口协议

HTTP/HTTPS

80, 443

TCP

LDAP/LDAPS

389, 636

TCP

Kerberos

88, 464

TCP 和 UDP

DNS

53

TCP 和 UDP(可选)

注意

IdM 使用端口 80 和 389。这是一种安全做法,因为有以下保护措施:

  • IdM 通常将到达端口 80 的请求重定向到端口 443。端口 80(HTTP)仅用于提供在线证书状态协议(OCSP)响应和证书撤销列表(CRL)。两者均进行数字签名,因此可防止中间人攻击。
  • 端口 389(LDAP)使用 STARTTLS 和通用安全服务 API(GSSAPI)进行加密。

另外,端口 8080 和 8443 在内部被 pki-tomcat 使用,在防火墙中阻止它们以防止被其他服务使用。端口 749 用于 Kerberos 服务器的远程管理,只有在打算使用远程管理时才打开它。

表 1.3. firewalld 服务
服务名称详情请查看:

freeipa-4

/usr/lib/firewalld/services/freeipa-4.xml

dns

/usr/lib/firewalld/services/dns.xml

1.7. 打开 IdM 所需的端口

您可以打开 IdM 用来与其服务进行通信所需的端口。

流程

  1. 验证 firewalld 服务是否正在运行。

    • 查看 firewalld 当前是否正在运行:

      # systemctl status firewalld.service
      Copy to Clipboard
    • 启动 firewalld 并将其配置为在系统引导时自动启动:

      # systemctl start firewalld.service
      # systemctl enable firewalld.service
      Copy to Clipboard
  2. 使用 firewall-cmd 工具打开所需的端口。选择以下选项之一:

    1. 使用 firewall-cmd --add-port 命令在防火墙中添加各个端口。例如,要在默认区中打开端口:

      # firewall-cmd --permanent --add-port={80/tcp,443/tcp,389/tcp,636/tcp,88/tcp,88/udp,464/tcp,464/udp,53/tcp,53/udp}
      Copy to Clipboard
    2. 使用 firewall-cmd --add-service 命令在防火墙中添加 firewalld 服务。例如,要在默认区中打开端口:

      # firewall-cmd --permanent --add-service={freeipa-4,dns}
      Copy to Clipboard

      有关使用 firewall-cmd 开放系统上端口的详情,请参考 firewall-cmd(1)手册页。

  3. 重新载入 firewall-cmd 配置以确保修改立即生效:

    # firewall-cmd --reload
    Copy to Clipboard

    请注意,在生产环境的系统上重新载入 firewalld 可能会导致 DNS 连接超时。如果需要,为了避免超时的风险并在运行的系统上永久保留修改,请使用 firewall-cmd 命令的 --runtime-to-permanent 选项,例如:

    # firewall-cmd --runtime-to-permanent
    Copy to Clipboard

验证

  • 登录到客户端子网上的主机,并使用 nmapnc 工具连接到打开的端口或运行端口扫描。

    • 例如,要扫描 TCP 流量所需的端口:

      $ nmap -p 80,443,389,636,88,464,53 server.idm.example.com
      [...]
      PORT    STATE SERVICE
      53/tcp  open  domain
      80/tcp  open  http
      88/tcp  open  kerberos-sec
      389/tcp open  ldap
      443/tcp open  https
      464/tcp open  kpasswd5
      636/tcp open  ldapssl
      Copy to Clipboard
    • 要扫描 UDP 流量所需的端口:

      # nmap -sU -p 88,464,53 server.idm.example.com
      [...]
      PORT    STATE         SERVICE
      53/udp  open          domain
      88/udp  open|filtered kerberos-sec
      464/udp open|filtered kpasswd5
      Copy to Clipboard
注意

您还必须为传入和传出流量打开基于网络的防火墙。

1.8. 安装 IdM 服务器所需的软件包

以下流程演示了如何下载设置您选择的 IdM 环境所需的软件包。

先决条件

  • 您有一个新安装的 RHEL 系统。
  • 您已提供所需的软件仓库:

    • 如果您的 RHEL 系统不是在云中运行,您已将您的系统注册到 Red Hat Subscription Manager(RHSM)。详情请查看 订阅中心。您还可以启用 IdM 使用的 BaseOSAppStream 软件仓库:

      # subscription-manager repos --enable=rhel-10-for-x86_64-baseos-rpms
      # subscription-manager repos --enable=rhel-10-for-x86_64-appstream-rpms
      Copy to Clipboard

      有关如何使用 RHSM 启用和禁用特定存储库的详情,请参阅 订阅中心

    • 如果您的 RHEL 系统在云中运行请跳过注册。所需的软件仓库已通过 Red Hat Update Infrastructure(RHUI)提供。

流程

  • 根据您的 IdM 要求选择以下选项之一:

    • 要下载在没有集成 DNS 的情况下安装 IdM 服务器所需的软件包:

      # dnf install ipa-server
      Copy to Clipboard
    • 要下载安装带有集成 DNS 的 IdM 服务器所需的软件包:

      # dnf install ipa-server ipa-server-dns
      Copy to Clipboard
    • 要下载安装与 Active Directory 具有信任协议的 IdM 服务器所需的软件包:

      # dnf install ipa-server ipa-server-trust-ad samba-client
      Copy to Clipboard

1.9. 为 IdM 安装设置正确的文件模式创建掩码

身份管理(IdM)安装过程要求将 root 帐户的文件模式创建掩码(umask)设为 0022。这允许除了 root 之外的用户可以读取在安装过程中创建的文件。如果设置了不同的 umask,IdM 服务器的安装会显示一个警告。如果继续安装,则服务器的一些功能将无法正常工作。例如,您无法从这个服务器安装 IdM 副本。安装后,您可以将 umask 设回其原始值。

先决条件

  • 您有 root 特权。

流程

  1. 可选:显示当前的 umask

    # umask
    0027
    Copy to Clipboard
  2. umask 设为 0022

    # umask 0022
    Copy to Clipboard
  3. 可选:在 IdM 安装完成后,将 umask 设置回其原始值:

    # umask 0027
    Copy to Clipboard

1.10. 确保 fapolicyd 规则不会阻止 IdM 安装

如果您使用 RHEL 主机上的 fapolicyd 软件框架,根据用户定义的策略控制应用程序的执行,则 RHEL 身份管理(IdM)服务器的安装可能会失败。由于安装和操作需要 Java 程序成功完成,因此请确保 Java 和 Java 类不会被任何 fapolicyd 规则阻止。

如需更多信息,请参阅红帽知识库解决方案 fapolicy 限制导致 IdM 安装失败

1.11. IdM 安装命令的选项

ipa-server-installipa-replica-installipa-dns-installipa-ca-install 等命令有大量选项,您可以用来为交互式安装提供额外的信息。您还可以使用这些选项来编写无人值守安装脚本。

下表显示了用于不同组件的一些最常见的选项。特定组件的选项可在多个命令间共享。例如,您可以在 ipa-ca-installipa-server-install 命令中使用 --ca-subject 选项。

有关选项的详细列表,请查看 ipa-server-install(1)ipa-replica-install(1)ipa-dns-install(1)ipa-ca-install(1) 手册页。

表 1.4. 常用选项:可用于 ipa-server-install 和 ipa-replica-install
参数描述

-d,--debug

为更详细的输出启用 debug 日志记录。

-u,--unattended

启用不提示用户输入的无人值守安装会话。

--hostname=server.idm.example.com

IdM 服务器机器的完全限定域名。只允许数字、小写字母字符和连字符(-)。

--ip-address 127.0.0.1

指定服务器的 IP 地址。这个选项只接受与本地接口关联的 IP 地址。

--dirsrv-config-file <LDIF_file_name>

用于修改目录服务器实例配置的 LDIF 文件的路径。

-n example.com

用于 IdM 域的 LDAP 服务器域名。这通常基于 IdM 服务器的主机名。

-p <directory_manager_password>

LDAP 服务的超级用户 cn=Directory Manager 的密码。

-a <ipa_admin_password>

admin IdM 管理员帐户向 Kerberos 域进行身份验证的密码。对于 ipa-replica-install,改为使用 -w

-r <KERBEROS_REALM_NAME>

为 IdM 域创建的大写的 Kerberos 域的名称,如 EXAMPLE.COM。对于 ipa-replica-install,这指定了现有 IdM 部署的 Kerberos 领域的名称。

--setup-dns

告知安装脚本在 IdM 域内建立 DNS 服务。

--setup-ca

在此副本上安装和配置 CA。如果没有配置 CA,证书操作将转发给安装了 CA 的另一个副本。对于 ipa-server-install,默认安装了 CA,您不需要使用这个选项。

表 1.5. CA 选项:可用于 ipa-ca-install 和 ipa-server-install
参数描述

--random-serial-numbers

为 IdM CA 启用随机序列号版本 3 (RSNv3)。启用后,CA 为 PKI 中的证书和请求生成完全随机的序列号。在 RHEL 10 上,所有新的 IdM 安装都会默认启用这个选项,或者拓扑中的另一个 CA 配置了 RSNv3。因为 RHEL 10 不支持顺序序列号,因此无法禁用它。

重要信息: RSNv3 仅支持新的 IdM CA 安装。如果启用,则需要在所有 PKI 服务上使用 RSNv3。

--ca-subject=<SUBJECT>

指定 CA 证书主题可辨识名称(默认为: CN=Certificate Authority,O=REALM.NAME)。相对可辨识名称(RDN)采用 LDAP 顺序,首先是最特定的 RDN。

--subject-base=<SUBJECT>

指定 IdM 发布的证书的主题基础(默认 O=REALM.NAME)。相对可辨识名称(RDN)采用 LDAP 顺序,首先是最特定的 RDN。

--external-ca

生成要由外部 CA 签名的证书签名请求。

--ca-signing-algorithm= <ALGORITHM>

指定 IdM CA 证书的签名算法。可能的值为 SHA1withRSA, SHA256withRSA, SHA512withRSA。默认值为 SHA256withRSA。如果外部 CA 不支持默认的签名算法,请将这个选项与 --external-ca 一起使用。

--pki-config-override=<PKI_CONFIG_OVERRIDE>

指定包含 CA 安装覆盖的文件。也可使用 ipa-replica-install 命令。

表 1.6. DNS 选项:在使用 --setup-dns时,适用于 ipa-dns-install 或 ipa-server-install 和 ipa-replica-install
参数描述

--forwarder=192.0.2.1

指定要与 DNS 服务一起使用的 DNS 转发器。要指定多个转发器,请多次使用这个选项。

--no-forwarders

使用带有 DNS 服务的 root 服务器,而不是转发器。

--no-reverse

设置 DNS 域时,不创建反向 DNS 区。如果已经配置了反向 DNS 区域,则使用现有的反向 DNS 区域。

如果没有使用这个选项,则默认值为 true。这指示安装脚本配置反向 DNS。

第 2 章 安装 IdM 服务器:使用集成的 DNS,集成的 CA 作为 root CA

安装带有集成 DNS 的新 RHEL 身份管理(IdM)服务器具有以下优点:

  • 您可以使用原生 IdM 工具自动执行大多数维护和 DNS 记录管理。例如:在设置过程中自动创建 DNS SRV 记录,之后会自动更新。
  • 您可以在安装 IdM 服务器的过程中为稳定的外部互联网连接配置全局转发器。全局转发器对 Active Directory 的信任也很有用。
  • 您可以设置 DNS 反向区,以防止来自您的域的电子邮件被 IdM 域之外的电子邮件服务器视为垃圾邮件。

安装带有集成 DNS 的 IdM 有一定的限制:

本章描述了如何安装带有集成证书颁发机构(CA)作为根 CA的新 IdM 服务器。

注意

ipa-server-install 命令的默认配置是集成的 CA 作为根CA。如果您没有使用 --http-cert-file 和-- dirsrv-cert-file 提供 HTTP 和 LDAP 服务器证书,则 IdM 服务器会安装带有集成 CA。如果您指定了-- external-ca,则 CA 默认由自签名或外部签名。

2.1. 带有集成 DNS 和集成 CA 作为根 CA 的 IdM 服务器的交互式安装

在使用 ipa-server-install 工具进行交互式安装过程中,您需要提供系统的基本配置,如 realm、管理员的密码和目录管理器的密码。

ipa-server-install 安装脚本在 /var/log/ipaserver-install.log 中创建一个日志文件。如果安装失败,日志可帮助您辨别问题。

流程

  1. 运行 ipa-server-install 工具程序。

    # ipa-server-install
    Copy to Clipboard
  2. 此脚本提示配置集成的 DNS 服务。输入 yes

    Do you want to configure integrated DNS (BIND)? [no]: yes
    Copy to Clipboard
  3. 该脚本提示输入一些必需的设置,并在括号中提供推荐的默认值。

    • 要接受默认值,请按 Enter 键。
    • 要提供自定义值,请输入所需的值。

      Server host name [server.idm.example.com]:
      Please confirm the domain name [idm.example.com]:
      Please provide a realm name [IDM.EXAMPLE.COM]:
      Copy to Clipboard
      警告

      仔细规划这些名称。安装完成后您将无法更改它们。

  4. 输入目录服务器超级用户(cn=Directory Manager)和 RHEL Identity Management (IdM)管理系统用户帐户(admin)的密码。

    Directory Manager password:
    IPA admin password:
    Copy to Clipboard
  5. 脚本提示每台服务器的 DNS 转发器。

    Do you want to configure DNS forwarders? [yes]:
    Copy to Clipboard
    • 要配置每台服务器的 DNS 转发器,请输入 yes,然后按照命令行中的说明操作。安装过程会将转发器 IP 地址添加到 IdM LDAP。

      • 有关转发策略默认设置,请参阅 ipa-dns -install (1)手册页中的--forward-policy描述。
    • 如果您不想使用 DNS 正向解析,请输入 no

      如果没有 DNS 转发器,您 IdM 域中的主机将不能解析来自基础架构中其他的、内部的、DNS 域的名称。主机将只剩下公共 DNS 服务器来解析其 DNS 查询。

  6. 脚本会提示检查是否需要配置与服务器关联的 IP 地址的任何 DNS 反向(PTR)记录。

    Do you want to search for missing reverse zones? [yes]:
    Copy to Clipboard

    如果您运行搜索并发现丢失了反向区,脚本会询问您是否创建反向区以及 PTR 记录。

    Do you want to create reverse zone for IP 192.0.2.1 [yes]:
    Please specify the reverse zone name [2.0.192.in-addr.arpa.]:
    Using reverse zone(s) 2.0.192.in-addr.arpa.
    Copy to Clipboard
    注意

    使用 IdM 管理反向区是可选的。您可以改为使用外部 DNS 服务来实现这一目的。

  7. 输入 yes 以确认服务器配置。

    Continue to configure the system with these values? [no]: yes
    Copy to Clipboard
  8. 安装脚本现在配置服务器。等待操作完成。
  9. 安装脚本完成后,使用以下方法更新您的 DNS 记录:

    1. 将父域中的 DNS 委托程序添加到 IdM DNS 域。例如,如果 IdM DNS 域是 idm.example.com,请在 example.com 父域中添加一个名字服务器(NS)记录。

      重要

      每次安装 IdM DNS 服务器后都会重复这个步骤。

    2. 将时间服务器的 _ntp._udp 服务(SRV)记录添加到您的 IdM DNS。IdM DNS 中新安装的 IdM 服务器的时间服务器的 SRV 记录可确保将来的副本和客户端安装会自动配置为与此主 IdM 服务器使用的时间服务器同步。

2.2. 带有集成 DNS 和集成 CA 作为根 CA 的 IdM 服务器的非互动安装

ipa-server-install 安装脚本在 /var/log/ipaserver-install.log 中创建一个日志文件。如果安装失败,日志可帮助您辨别问题。

流程

  1. 使用选项运行 ipa-server-install 程序来提供所有所需信息。非互动安装的最低所需选项是:

    • --realm 提供 Kerberos 领域名
    • --ds-password 为目录管理者(DM)(目录服务器超级用户)提供密码
    • --admin-passwordadmin 提供密码,即 RHEL Identity Management (IdM)管理员
    • --unattended ,让安装进程为主机名和域名选择默认选项

    要安装使用集成 DNS 的服务器,还要添加以下选项:

    • --setup-dns 用于配置集成 DNS
    • --forwarder--no-forwarders,取决于您是否要配置 DNS 正向解析器
    • --auto-reverse--no-reverse,取决于您是否要配置在 IdM DNS 中创建的反向 DNS 区的自动检测,或者不需要反向区自动检测

    例如:

    # ipa-server-install --realm IDM.EXAMPLE.COM --ds-password DM_password --admin-password admin_password --unattended --setup-dns --forwarder 192.0.2.1 --no-reverse
    Copy to Clipboard
  2. 安装脚本完成后,使用以下方法更新您的 DNS 记录:

    1. 将父域中的 DNS 委托程序添加到 IdM DNS 域。例如,如果 IdM DNS 域是 idm.example.com,请在 example.com 父域中添加一个名字服务器(NS)记录。

      重要

      每次安装 IdM DNS 服务器后都会重复这个步骤。

    2. 将时间服务器的 _ntp._udp 服务(SRV)记录添加到您的 IdM DNS。IdM DNS 中新安装的 IdM 服务器的时间服务器的 SRV 记录可确保将来的副本和客户端安装会自动配置为与此主 IdM 服务器使用的时间服务器同步。

第 3 章 安装 IdM 服务器:具有集成的 DNS,具有外部 CA 作为根CA

安装带有集成 DNS 的新 RHEL 身份管理(IdM)服务器具有以下优点:

  • 您可以使用原生 IdM 工具自动执行大多数维护和 DNS 记录管理。例如:在设置过程中自动创建 DNS SRV 记录,之后会自动更新。
  • 您可以在安装 IdM 服务器的过程中为稳定的外部互联网连接配置全局转发器。全局转发器对 Active Directory 的信任也很有用。
  • 您可以设置 DNS 反向区,以防止来自您的域的电子邮件被 IdM 域之外的电子邮件服务器视为垃圾邮件。

安装带有集成 DNS 的 IdM 有一定的限制:

本章描述了如何安装具有外部证书颁发机构(CA)作为根CA的新 IdM 服务器。

3.1. 带有集成 DNS 和外部 CA 作为根 CA 的 IdM 服务器的交互式安装

在使用 ipa-server-install 工具进行交互式安装过程中,您需要提供系统的基本配置,如 realm、管理员的密码和目录管理器的密码。

ipa-server-install 安装脚本在 /var/log/ipaserver-install.log 中创建一个日志文件。如果安装失败,日志可帮助您辨别问题。

按照以下流程安装服务器:

  • 带有集成的 DNS
  • 使用外部证书颁发机构(CA)作为 root CA

先决条件

  • 您已确定了要通过 --external-ca-type 选项指定的外部 CA 类型。详情请查看 ipa-server-install(1)手册页。
  • 如果您使用 Microsoft Certificate Services 证书颁发机构(MS CS CA)作为外部 CA:您已确定要通过 --external-ca-profile 选项指定的证书配置文件或模板。默认情况下使用 SubCA 模板。

    有关 the -external-ca-type and- -external-ca-profile 选项的更多信息,请参阅 安装外部 CA 作为根 CA 的 IdM CA 时使用的选项

流程

  1. 使用 --external-ca 选项来运行 ipa-server-install 工具。

    # ipa-server-install --external-ca
    Copy to Clipboard
    • 如果您使用 Microsoft 证书服务(MS CS) CA,还使用 --external-ca-type 选项,并可选使用 --external-ca-profile 选项:

      [root@server ~]# ipa-server-install --external-ca --external-ca-type=ms-cs --external-ca-profile=<oid>/<name>/default
      Copy to Clipboard
    • 如果您没有使用 MS CS 为 IdM CA 生成签名证书,则不需要其他选项:

      # ipa-server-install --external-ca
      Copy to Clipboard
  2. 此脚本提示配置集成的 DNS 服务。输入 yesno。在此过程中,我们安装了带有集成 DNS 的服务器。

    Do you want to configure integrated DNS (BIND)? [no]: yes
    Copy to Clipboard
    注意

    如果您要安装没有集成 DNS 的服务器,安装脚本将不会提示您进行 DNS 配置,如下面步骤所述。有关安装没有 DNS 的服务器的步骤的详情,请查看 第 5 章 安装 IdM 服务器: 在不集成 DNS 的情况,将集成的 CA 作为 root CA

  3. 该脚本提示输入一些必需的设置,并在括号中提供推荐的默认值。

    • 要接受默认值,请按 Enter 键。
    • 要提供自定义值,请输入所需的值。

      Server host name [server.idm.example.com]:
      Please confirm the domain name [idm.example.com]:
      Please provide a realm name [IDM.EXAMPLE.COM]:
      Copy to Clipboard
      警告

      仔细规划这些名称。安装完成后您将无法更改它们。

  4. 输入目录服务器超级用户(cn=Directory Manager)和 RHEL Identity Management (IdM)管理系统用户帐户(admin)的密码。

    Directory Manager password:
    IPA admin password:
    Copy to Clipboard
  5. 脚本提示每台服务器的 DNS 转发器。

    Do you want to configure DNS forwarders? [yes]:
    Copy to Clipboard
    • 要配置每台服务器的 DNS 转发器,请输入 yes,然后按照命令行中的说明操作。安装过程会将转发器 IP 地址添加到 IdM LDAP。

      • 有关转发策略默认设置,请参阅 ipa-dns -install (1)手册页中的--forward-policy描述。
    • 如果您不想使用 DNS 正向解析,请输入 no

      如果没有 DNS 转发器,您 IdM 域中的主机将不能解析来自基础架构中其他的、内部的、DNS 域的名称。主机将只剩下公共 DNS 服务器来解析其 DNS 查询。

  6. 脚本会提示检查是否需要配置与服务器关联的 IP 地址的任何 DNS 反向(PTR)记录。

    Do you want to search for missing reverse zones? [yes]:
    Copy to Clipboard

    如果您运行搜索并发现丢失了反向区,脚本会询问您是否创建反向区以及 PTR 记录。

    Do you want to create reverse zone for IP 192.0.2.1 [yes]:
    Please specify the reverse zone name [2.0.192.in-addr.arpa.]:
    Using reverse zone(s) 2.0.192.in-addr.arpa.
    Copy to Clipboard
    注意

    使用 IdM 管理反向区是可选的。您可以改为使用外部 DNS 服务来实现这一目的。

  7. 输入 yes 以确认服务器配置。

    Continue to configure the system with these values? [no]: yes
    Copy to Clipboard
  8. 在证书系统实例配置过程中,该工具会打印证书签名请求(CSR)的位置: /root/ipa.csr:

    ...
    
    Configuring certificate server (pki-tomcatd): Estimated time 3 minutes 30 seconds
      [1/8]: creating certificate server user
      [2/8]: configuring certificate server instance
    The next step is to get /root/ipa.csr signed by your CA and re-run /sbin/ipa-server-install as:
    /sbin/ipa-server-install --external-cert-file=/path/to/signed_certificate --external-cert-file=/path/to/external_ca_certificate
    Copy to Clipboard

    当发生这种情况时:

    1. 将位于 /root/ipa.csr 中的 CSR 提交给外部 CA。这个过程根据要用作外部 CA 的服务的不同而有所不同。
    2. 在基础 64 编码 blob 中检索颁发的证书和颁发 CA 的 CA 证书链(Windows CA 的 PEM 文件或 Base_64 证书)。同样,不同的证书服务的进程会有所不同。通常,网页或通知电子邮件中的下载链接允许管理员下载所有需要的证书。

      重要

      确保获取 CA 的完整证书链,而不只是 CA 证书。

    3. 再次运行 ipa-server-install,这次指定新发布的 CA 证书和 CA 链文件的位置和名称。例如:

      # ipa-server-install --external-cert-file=/tmp/servercert20170601.pem --external-cert-file=/tmp/cacert.pem
      Copy to Clipboard
  9. 安装脚本现在配置服务器。等待操作完成。
  10. 安装脚本完成后,使用以下方法更新您的 DNS 记录:

    1. 将父域中的 DNS 委托程序添加到 IdM DNS 域。例如,如果 IdM DNS 域是 idm.example.com,请在 example.com 父域中添加一个名字服务器(NS)记录。

      重要

      每次安装 IdM DNS 服务器后都会重复这个步骤。

    2. 将时间服务器的 _ntp._udp 服务(SRV)记录添加到您的 IdM DNS。IdM DNS 中新安装的 IdM 服务器的时间服务器的 SRV 记录可确保将来的副本和客户端安装会自动配置为与此主 IdM 服务器使用的时间服务器同步。
注意

ipa-server-install --external-ca 命令有时可能会失败,并显示以下错误:

ipa         : CRITICAL failed to configure ca instance Command '/usr/sbin/pkispawn -s CA -f /tmp/configuration_file' returned non-zero exit status 1
Configuration of CA failed
Copy to Clipboard

当设置 *_proxy 环境变量时,会发生此失败。有关此问题的解决方案,请参阅 故障排除:外部 CA 安装失败

3.2. 故障排除:外部 CA 安装失败

ipa-server-install --external-ca 命令失败并显示以下错误:

ipa         : CRITICAL failed to configure ca instance Command '/usr/sbin/pkispawn -s CA -f /tmp/configuration_file' returned non-zero exit status 1
Configuration of CA failed
Copy to Clipboard

env|grep proxy 命令显示如下变量:

# env|grep proxy
http_proxy=http://example.com:8080
ftp_proxy=http://example.com:8080
https_proxy=http://example.com:8080
Copy to Clipboard
这意味着:

*_proxy 环境变量会阻止安装服务器。

解决此问题:
  1. 使用以下 shell 脚本取消设置 *_proxy 环境变量:

    # for i in ftp http https; do unset ${i}_proxy; done
    Copy to Clipboard
  2. 运行 pkidestroy 工具来删除失败的证书颁发机构(CA)子系统的安装:

    # pkidestroy -s CA -i pki-tomcat; rm -rf /var/log/pki/pki-tomcat /etc/sysconfig/pki-tomcat /etc/sysconfig/pki/tomcat/pki-tomcat /var/lib/pki/pki-tomcat /etc/pki/pki-tomcat /root/ipa.csr
    Copy to Clipboard
  3. 删除失败的 RHEL 身份管理(IdM)服务器安装:

    # ipa-server-install --uninstall
    Copy to Clipboard
  4. 重新运行 ipa-server-install --external-ca

第 4 章 安装 IdM 服务器:使用集成的 DNS,没有 CA

安装带有集成 DNS 的新 RHEL 身份管理(IdM)服务器具有以下优点:

  • 您可以使用原生 IdM 工具自动执行大多数维护和 DNS 记录管理。例如:在设置过程中自动创建 DNS SRV 记录,之后会自动更新。
  • 您可以在安装 IdM 服务器的过程中为稳定的外部互联网连接配置全局转发器。全局转发器对 Active Directory 的信任也很有用。
  • 您可以设置 DNS 反向区,以防止来自您的域的电子邮件被 IdM 域之外的电子邮件服务器视为垃圾邮件。

安装带有集成 DNS 的 IdM 有一定的限制:

本章描述了如何安装没有证书颁发机构(CA)的新 IdM 服务器。

4.1. 安装没有 CA 的 IdM 服务器所需的证书

您需要提供在没有证书颁发机构(CA)安装 RHEL 身份管理(IdM)服务器所需的证书。通过使用描述的命令行选项,您可以将这些证书提供给 ipa-server-install 工具。

重要

您不能使用自签名的第三方服务器证书来安装服务器或副本,因为导入的证书文件必须包含签发 LDAP 和 Apache 服务器证书的 CA 的完整 CA 证书链。

LDAP 服务器证书和私钥
  • --dirsrv-cert-file 用于 LDAP 服务器证书的证书和私钥文件
  • --dirsrv-pin 用于访问 --dirsrv-cert-file中指定的文件中的私钥的密码
Apache 服务器证书和私钥
  • --http-cert-file 用于 Apache 服务器证书的证书和私钥文件
  • --http-pin,用于访问 --http-cert-file中指定的文件中的私钥的密码
发布 LDAP 和 Apache 服务器证书的 CA 完整 CA 证书链
  • --dirsrv-cert-file--http-cert-file用于具有完整 CA 证书链或部分证书链的证书文件

您可以提供在 --dirsrv-cert-file--http-cert-file 选项中指定的以下格式的文件:

  • Privacy-Enhanced Mail(PEM)编码的证书(RFC 7468)。请注意,RHEL Identity Management 安装程序接受串联的 PEM 编码对象。
  • 区分编码规则(DER)
  • PKCS #7 证书链对象
  • PKCS #8 私钥对象
  • PKCS #12 归档

您可以多次指定 --dirsrv-cert-file--http-cert-file 选项来指定多个文件。

完成完整 CA 证书链的证书文件(某些环境中不需要)
  • --ca-cert-file 用于包含签发 LDAP、Apache 服务器和 Kerberos KDC 证书的 CA 证书的文件或文件。如果其他选项提供的证书文件中没有 CA 证书,请使用这个选项。

使用 -dirsrv-cert-file--http-cert-file 以及使用 -ca-cert-file 提供的文件必须包含签发 LDAP 和 Apache 服务器证书的 CA 的完整 CA 证书链。

Kerberos 密钥分发中心(KDC) PKINIT 证书和私钥
  • 如果您有 PKINIT 证书,请使用以下 2 个选项:

    • --pkinit-cert-file 用于 Kerberos KDC SSL 证书和私钥
    • --pkinit-pin 用于访问在 in- pkinit-cert-file中指定的文件中的 Kerberos KDC 私钥的密码
  • 如果您没有 PKINIT 证书,并希望使用带有自签名证书的本地 KDC 配置 IdM 服务器,请使用以下选项:

    • --no-pkinit 用于禁用 pkinit 设置步骤

4.2. 带有集成 DNS 和没有 CA 的 IdM 服务器的交互式安装

在使用 ipa-server-install 工具进行交互式安装过程中,您需要提供系统的基本配置,如 realm、管理员的密码和目录管理器的密码。

ipa-server-install 安装脚本在 /var/log/ipaserver-install.log 中创建一个日志文件。如果安装失败,日志可帮助您辨别问题。

流程

  1. 运行 ipa-server-install 工具,并提供所有所需的证书。例如:

    [root@server ~]# ipa-server-install \
        --http-cert-file /tmp/server.crt \
        --http-cert-file /tmp/server.key \
        --http-pin secret \
        --dirsrv-cert-file /tmp/server.crt \
        --dirsrv-cert-file /tmp/server.key \
        --dirsrv-pin secret \
        --ca-cert-file ca.crt
    Copy to Clipboard

    有关 提供的证书的详情,请参阅 安装没有 CA 的 IdM 服务器 所需的证书。

  2. 此脚本提示配置集成的 DNS 服务。输入 yesno。在此过程中,我们安装了带有集成 DNS 的服务器。

    Do you want to configure integrated DNS (BIND)? [no]: yes
    Copy to Clipboard
    注意

    如果您要安装没有集成 DNS 的服务器,安装脚本将不会提示您进行 DNS 配置,如下面步骤所述。如需了解 安装没有 DNS 的服务器的详情,请参阅安装 IdM 服务器:没有集成的 DNS,集成的 CA 作为 root CA

  3. 该脚本提示输入一些必需的设置,并在括号中提供推荐的默认值。

    • 要接受默认值,请按 Enter 键。
    • 要提供自定义值,请输入所需的值。

      Server host name [server.idm.example.com]:
      Please confirm the domain name [idm.example.com]:
      Please provide a realm name [IDM.EXAMPLE.COM]:
      Copy to Clipboard
      警告

      仔细规划这些名称。安装完成后您将无法更改它们。

  4. 输入目录服务器超级用户(cn=Directory Manager)和 RHEL Identity Management (IdM)管理系统用户帐户(admin)的密码。

    Directory Manager password:
    IPA admin password:
    Copy to Clipboard
  5. 脚本提示每台服务器的 DNS 转发器。

    Do you want to configure DNS forwarders? [yes]:
    Copy to Clipboard
    • 要配置每台服务器的 DNS 转发器,请输入 yes,然后按照命令行中的说明操作。安装过程会将转发器 IP 地址添加到 IdM LDAP。

      • 有关转发策略默认设置,请参阅 ipa-dns -install (1)手册页中的--forward-policy描述。
    • 如果您不想使用 DNS 正向解析,请输入 no

      如果没有 DNS 转发器,您 IdM 域中的主机将不能解析来自基础架构中其他的、内部的、DNS 域的名称。主机将只剩下公共 DNS 服务器来解析其 DNS 查询。

  6. 脚本会提示检查是否需要配置与服务器关联的 IP 地址的任何 DNS 反向(PTR)记录。

    Do you want to search for missing reverse zones? [yes]:
    Copy to Clipboard

    如果您运行搜索并发现丢失了反向区,脚本会询问您是否创建反向区以及 PTR 记录。

    Do you want to create reverse zone for IP 192.0.2.1 [yes]:
    Please specify the reverse zone name [2.0.192.in-addr.arpa.]:
    Using reverse zone(s) 2.0.192.in-addr.arpa.
    Copy to Clipboard
    注意

    使用 IdM 管理反向区是可选的。您可以改为使用外部 DNS 服务来实现这一目的。

  7. 输入 yes 以确认服务器配置。

    Continue to configure the system with these values? [no]: yes
    Copy to Clipboard
  8. 安装脚本现在配置服务器。等待操作完成。
  9. 安装脚本完成后,使用以下方法更新您的 DNS 记录:

    1. 将父域中的 DNS 委托程序添加到 IdM DNS 域。例如,如果 IdM DNS 域是 idm.example.com,请在 example.com 父域中添加一个名字服务器(NS)记录。

      重要

      每次安装 IdM DNS 服务器后都会重复这个步骤。

    2. 将时间服务器的 _ntp._udp 服务(SRV)记录添加到您的 IdM DNS。IdM DNS 中新安装的 IdM 服务器的时间服务器的 SRV 记录可确保将来的副本和客户端安装会自动配置为与此主 IdM 服务器使用的时间服务器同步。

第 5 章 安装 IdM 服务器: 在不集成 DNS 的情况,将集成的 CA 作为 root CA

本章论述了如何安装没有集成 DNS 的新的 RHEL 身份管理(IdM)服务器。

注意

红帽强烈建议在 IdM 部署中为基本用途安装集成 IdM 的 DNS:当 IdM 服务器也管理 DNS 时,DNS 和原生 IdM 工具之间存在紧密集成,从而实现一些 DNS 记录管理的自动化。

如需了解更多详细信息,请参阅 规划 DNS 服务和主机名

5.1. 没有集成 DNS 的 IdM 服务器的交互式安装,集成的 CA 作为 root CA

在使用 ipa-server-install 工具进行交互式安装过程中,您需要提供系统的基本配置,如 realm、管理员的密码和目录管理器的密码。

ipa-server-install 安装脚本在 /var/log/ipaserver-install.log 中创建一个日志文件。如果安装失败,日志可帮助您辨别问题。

这个过程安装服务器:

  • 没有集成的 DNS
  • 集成的 RHEL Identity Management (IdM)证书颁发机构(CA)作为根 CA,这是默认的 CA 配置

流程

  1. 运行 ipa-server-install 工具。

    # ipa-server-install
    Copy to Clipboard
  2. 此脚本提示配置集成的 DNS 服务。按 Enter 键选择默认的 no 选项。

    Do you want to configure integrated DNS (BIND)? [no]:
    Copy to Clipboard
  3. 该脚本提示输入一些必需的设置,并在括号中提供推荐的默认值。

    • 要接受默认值,请按 Enter 键。
    • 要提供自定义值,请输入所需的值。

      Server host name [server.idm.example.com]:
      Please confirm the domain name [idm.example.com]:
      Please provide a realm name [IDM.EXAMPLE.COM]:
      Copy to Clipboard
      警告

      仔细规划这些名称。安装完成后您将无法更改它们。

  4. 输入目录服务器超级用户(cn=Directory Manager)和 IdM 管理系统用户帐户(admin)的密码。

    Directory Manager password:
    IPA admin password:
    Copy to Clipboard
  5. 该脚本提示输入一些必需的设置,并在括号中提供推荐的默认值。

    • 要接受默认值,请按 Enter 键。
    • 要提供自定义值,请输入所需的值。

      NetBIOS domain name [EXAMPLE]:
      Do you want to configure chrony with NTP server or pool address? [no]:
      Copy to Clipboard
  6. 输入 yes 以确认服务器配置。

    Continue to configure the system with these values? [no]: yes
    Copy to Clipboard
  7. 安装脚本现在配置服务器。等待操作完成。
  8. 安装脚本生成包含 DNS 资源记录的文件:下面示例输出中的 /tmp/ipa.system.records.UFRPto.db 文件。将这些记录添加到现有的外部 DNS 服务器中。更新 DNS 记录的过程因特定的 DNS 解决方案而异。

    _kerberos-master._tcp.example.com. 86400 IN SRV 0 100 88 server.example.com.
    _kerberos-master._udp.example.com. 86400 IN SRV 0 100 88 server.example.com.
    _kerberos._tcp.example.com. 86400 IN SRV 0 100 88 server.example.com.
    _kerberos._udp.example.com. 86400 IN SRV 0 100 88 server.example.com.
    _kerberos.example.com. 86400 IN TXT "EXAMPLE.COM"
    _kpasswd._tcp.example.com. 86400 IN SRV 0 100 464 server.example.com.
    _kpasswd._udp.example.com. 86400 IN SRV 0 100 464 server.example.com.
    _ldap._tcp.example.com. 86400 IN SRV 0 100 389 server.example.com.
    Copy to Clipboard
    重要

    在将 DNS 记录添加到现有 DNS 服务器之前,服务器安装不会完成。

5.2. 没有集成 DNS 和集成 CA 作为根 CA 的 IdM 服务器的非互动安装

您可以安装没有集成 DNS 的服务器,或者带有集成的 RHEL 身份管理(IdM)证书颁发机构(CA)作为根 CA,这是默认的 CA 配置。

注意

ipa-server-install 安装脚本在 /var/log/ipaserver-install.log 中创建一个日志文件。如果安装失败,日志可帮助您辨别问题。

流程

  1. 运行带有选项的 ipa-server-install 工具以提供所有必需的信息。非互动安装的最低所需选项是:

    • --realm 提供 Kerberos 领域名
    • --ds-password 为目录管理者(DM)(目录服务器超级用户)提供密码
    • --admin-passwordadmin (IdM 管理员)提供密码
    • --unattended ,让安装进程为主机名和域名选择默认选项

    例如:

    # ipa-server-install --realm IDM.EXAMPLE.COM --ds-password DM_password --admin-password admin_password --unattended
    Copy to Clipboard
  2. 安装脚本生成包含 DNS 资源记录的文件:下面示例输出中的 /tmp/ipa.system.records.UFRPto.db 文件。将这些记录添加到现有的外部 DNS 服务器中。更新 DNS 记录的过程因特定的 DNS 解决方案而异。

    ...
    Restarting the KDC
    Please add records in this file to your DNS system: /tmp/ipa.system.records.UFRBto.db
    Restarting the web server
    ...
    Copy to Clipboard
    重要

    在将 DNS 记录添加到现有 DNS 服务器之前,服务器安装不会完成。

5.3. 外部 DNS 系统的 IdM DNS 记录

在安装了没有集成 DNS 的 IdM 服务器后,您必须将 IdM 服务器的 LDAP 和 Kerberos DNS 资源记录添加到外部 DNS 系统中。

ipa-server-install 安装脚本生成一个包含 DNS 资源记录列表的文件,其中文件名格式为 /tmp/ipa.system.records.<random_characters>.db ,并打印添加这些记录的指令:

Please add records in this file to your DNS system: /tmp/ipa.system.records.6zdjqxh3.db
Copy to Clipboard

这是文件内容的示例:

_kerberos-master._tcp.example.com. 86400 IN SRV 0 100 88 server.example.com.
_kerberos-master._udp.example.com. 86400 IN SRV 0 100 88 server.example.com.
_kerberos._tcp.example.com. 86400 IN SRV 0 100 88 server.example.com.
_kerberos._udp.example.com. 86400 IN SRV 0 100 88 server.example.com.
_kerberos.example.com. 86400 IN TXT "EXAMPLE.COM"
_kpasswd._tcp.example.com. 86400 IN SRV 0 100 464 server.example.com.
_kpasswd._udp.example.com. 86400 IN SRV 0 100 464 server.example.com.
_ldap._tcp.example.com. 86400 IN SRV 0 100 389 server.example.com.
Copy to Clipboard
注意

在将 IdM 服务器的 LDAP 和 Kerberos DNS 资源记录添加到 DNS 系统后,请确保 DNS 管理工具没有为 ipa-ca 添加 PTR 记录。DNS 中出现 ipa-ca 的 PTR 记录可能会导致后续的 IdM 副本安装失败。

第 6 章 安装 IdM 服务器: 在不集成 DNS 的情况下,使用外部 CA 作为 root CA

您可以安装没有集成 DNS 的新的 RHEL 身份管理(IdM)服务器,该服务器使用外部证书颁发机构(CA)作为 root CA。

注意

为 IdM 部署中的基本用途安装集成了 IdM 的 DNS。当 IdM 服务器也管理 DNS 时,DNS 和原生 IdM 工具之间有紧密集成,这实现了一些 DNS 记录管理的自动化。

如需了解更多详细信息,请参阅 规划 DNS 服务和主机名

6.1. 安装外部 CA 作为根 CA 的 IdM CA 时使用的选项

如果满足以下条件之一,您可能希望安装带有外部 CA 作为根 CA 的 RHEL 身份管理 IdM 证书颁发机构(CA):

  • 您正在使用 ipa-server-install 命令安装新的 IdM 服务器或副本。
  • 您正在使用 ipa-ca-install 命令将 CA 组件安装到现有的 IdM 服务器中。

在安装外部 CA 作为根 CA 的 IdM CA 时,您可以对两个命令使用以下选项来创建证书签名请求(CSR)。

--external-ca-type=TYPE
外部 CA 的类型。可能的值是 genericms-cs。默认值为 generic。使用 ms-cs 来在生成的 CSR 中包含 Microsoft 证书服务(MS CS)所需的模板名称。要使用非默认配置文件,请将 --external-ca-profile 选项与 --external-ca-type=ms-cs 结合使用。
--external-ca-profile=PROFILE_SPEC

在为 IdM CA 发布证书时,请指定您希望 MS CS 应用的证书配置文件或模板。

请注意,如果 --external-ca-type 是 ms-cs ,则只能使用 --external-ca-profile 选项。

您可以通过以下方法之一识别 MS CS 模板:

  • <oid>:<majorVersion>[:<minorVersion>]。您可以通过其对象标识符(OID)和主版本来指定证书模板。您还可以选择指定次版本。
  • <name>。您可以根据其名称指定证书模板。名称不能包含任何 : 字符,不能是 OID,否则基于 OID 的模板指定符语法优先。
  • default。如果您使用这个指定符,则会使用模板名称 SubCA

在某些情场景中,活动目录(AD)管理员可以使用 下级证书机构 (SCA)模板(这是 AD CS 中的内置模板)来创建一个唯一的模板,来更好地满足组织的需求。例如,新模板可以具有自定义的有效期和自定义的扩展。关联的对象标识符(OID)可以在 AD 证书模板 控制台中找到。

如果 AD 管理员禁用了原始的、内置的模板,则您在为 IdM CA 请求证书时,必须指定新模板的 OID 或名称。请您的 AD 管理员为您提供新模板的名称或 OID。

如果原始的 SCA AD CS 模板仍然被启用,则您可以通过指定 --external-ca-type=ms-cs 来使用它,而无需额外使用 --external-ca-profile 选项。在这种情况下,会使用 subCA 外部 CA 配置文件,它是与 SCA AD CS 模板对应的默认 IdM 模板。

6.2. 没有集成 DNS 和外部 CA 作为根 CA 的 IdM 服务器的交互式安装

在使用 ipa-server-install 工具进行交互式安装过程中,您需要提供系统的基本配置,如 realm、管理员的密码和目录管理器的密码。

ipa-server-install 安装脚本在 /var/log/ipaserver-install.log 中创建一个日志文件。如果安装失败,日志可帮助您辨别问题。

按照以下流程安装服务器:

  • 没有集成的 DNS
  • 使用外部证书颁发机构(CA)作为 root CA

先决条件

  • 您已确定了要通过 --external-ca-type 选项指定的外部 CA 类型。详情请查看 ipa-server-install(1)手册页。
  • 如果您使用 Microsoft Certificate Services 证书颁发机构(MS CS CA)作为外部 CA:您已确定要通过 --external-ca-profile 选项指定的证书配置文件或模板。默认情况下使用 SubCA 模板。

    有关 the -external-ca-type and- -external-ca-profile 选项的更多信息,请参阅 安装外部 CA 作为根 CA 的 IdM CA 时使用的选项

流程

  1. 使用 --external-ca 选项来运行 ipa-server-install 工具。

    • 如果您使用 Microsoft 证书服务(MS CS) CA,还使用 --external-ca-type 选项,并可选使用 --external-ca-profile 选项:

      [root@server ~]# ipa-server-install --external-ca --external-ca-type=ms-cs --external-ca-profile=<oid>/<name>/default
      Copy to Clipboard
    • 如果您没有使用 MS CS 为 IdM CA 生成签名证书,则不需要其他选项:

      # ipa-server-install --external-ca
      Copy to Clipboard
  2. 此脚本提示配置集成的 DNS 服务。按 Enter 键选择默认的 no 选项。

    Do you want to configure integrated DNS (BIND)? [no]:
    Copy to Clipboard
  3. 该脚本提示输入一些必需的设置,并在括号中提供推荐的默认值。

    • 要接受默认值,请按 Enter 键。
    • 要提供自定义值,请输入所需的值。

      Server host name [server.idm.example.com]:
      Please confirm the domain name [idm.example.com]:
      Please provide a realm name [IDM.EXAMPLE.COM]:
      Copy to Clipboard
      警告

      仔细规划这些名称。安装完成后您将无法更改它们。

  4. 输入目录服务器超级用户(cn=Directory Manager)和 IdM 管理系统用户帐户(admin)的密码。

    Directory Manager password:
    IPA admin password:
    Copy to Clipboard
  5. 输入 yes 以确认服务器配置。

    Continue to configure the system with these values? [no]: yes
    Copy to Clipboard
  6. 在证书系统实例配置过程中,该工具会打印证书签名请求(CSR)的位置: /root/ipa.csr:

    ...
    
    Configuring certificate server (pki-tomcatd): Estimated time 3 minutes 30 seconds
      [1/8]: creating certificate server user
      [2/8]: configuring certificate server instance
    The next step is to get /root/ipa.csr signed by your CA and re-run /sbin/ipa-server-install as:
    /sbin/ipa-server-install --external-cert-file=/path/to/signed_certificate --external-cert-file=/path/to/external_ca_certificate
    Copy to Clipboard

    当发生这种情况时:

    1. 将位于 /root/ipa.csr 中的 CSR 提交给外部 CA。这个过程根据要用作外部 CA 的服务的不同而有所不同。
    2. 在基础 64 编码 blob 中检索颁发的证书和颁发 CA 的 CA 证书链(Windows CA 的 PEM 文件或 Base_64 证书)。同样,不同的证书服务的进程会有所不同。通常,网页或通知电子邮件中的下载链接允许管理员下载所有需要的证书。

      重要

      确保获取 CA 的完整证书链,而不只是 CA 证书。

    3. 再次运行 ipa-server-install,这次指定新发布的 CA 证书和 CA 链文件的位置和名称。例如:

      # ipa-server-install --external-cert-file=/tmp/servercert20170601.pem --external-cert-file=/tmp/cacert.pem
      Copy to Clipboard
  7. 安装脚本现在配置服务器。等待操作完成。
  8. 安装脚本生成包含 DNS 资源记录的文件:下面示例输出中的 /tmp/ipa.system.records.UFRPto.db 文件。将这些记录添加到现有的外部 DNS 服务器中。更新 DNS 记录的过程因特定的 DNS 解决方案而异。

    ...
    Restarting the KDC
    Please add records in this file to your DNS system: /tmp/ipa.system.records.UFRBto.db
    Restarting the web server
    ...
    Copy to Clipboard
    重要

    在将 DNS 记录添加到现有 DNS 服务器之前,服务器安装不会完成。

6.3. 没有集成 DNS 和外部 CA 作为根 CA 的 IdM 服务器的非互动安装

您可以安装服务器:

  • 没有集成的 DNS
  • 使用外部证书颁发机构(CA)作为 root CA
注意

ipa-server-install 安装脚本在 /var/log/ipaserver-install.log 中创建一个日志文件。如果安装失败,日志可帮助您辨别问题。

先决条件

  • 您已确定了要通过 --external-ca-type 选项指定的外部 CA 类型。详情请查看 ipa-server-install(1)手册页。
  • 如果您使用 Microsoft Certificate Services 证书颁发机构(MS CS CA)作为外部 CA:您已确定要通过 --external-ca-profile 选项指定的证书配置文件或模板。默认情况下使用 SubCA 模板。

    有关 the -external-ca-type and- -external-ca-profile 选项的更多信息,请参阅 安装外部 CA 作为根 CA 的 IdM CA 时使用的选项

流程

  1. 运行带有选项的 ipa-server-install 工具以提供所有必需的信息。使用外部 CA 的 IdM 服务器非互动安装的最低必需选项是:

    • --external-ca 用于指定外部 CA 是根CA
    • --realm 提供 Kerberos 领域名
    • --ds-password 为目录管理者(DM)(目录服务器超级用户)提供密码
    • --admin-passwordadmin (IdM 管理员)提供密码
    • --unattended ,让安装进程为主机名和域名选择默认选项

      例如:

      # ipa-server-install --external-ca --realm IDM.EXAMPLE.COM --ds-password DM_password --admin-password admin_password --unattended
      Copy to Clipboard

    如果您使用 Microsoft 证书服务(MS CS) CA,也使用 --external-ca-type 选项,并选择使用 --external-ca-profile 选项。如需更多信息,请参阅 安装外部 CA 作为根 CA 的 IdM CA 时使用的选项

  2. 在证书系统实例配置过程中,该工具会打印证书签名请求(CSR)的位置: /root/ipa.csr:

    ...
    
    Configuring certificate server (pki-tomcatd). Estimated time: 3 minutes
      [1/11]: configuring certificate server instance
    The next step is to get /root/ipa.csr signed by your CA and re-run /usr/sbin/ipa-server-install as:
    /usr/sbin/ipa-server-install --external-cert-file=/path/to/signed_certificate --external-cert-file=/path/to/external_ca_certificate
    The ipa-server-install command was successful
    Copy to Clipboard

    当发生这种情况时:

    1. 将位于 /root/ipa.csr 中的 CSR 提交给外部 CA。这个过程根据要用作外部 CA 的服务的不同而有所不同。
    2. 在基础 64 编码 blob 中检索颁发的证书和颁发 CA 的 CA 证书链(Windows CA 的 PEM 文件或 Base_64 证书)。同样,不同的证书服务的进程会有所不同。通常,网页或通知电子邮件中的下载链接允许管理员下载所有需要的证书。

      重要

      确保获取 CA 的完整证书链,而不只是 CA 证书。

    3. 再次运行 ipa-server-install,这次指定新发布的 CA 证书和 CA 链文件的位置和名称。例如:

      # ipa-server-install --external-cert-file=/tmp/servercert20170601.pem --external-cert-file=/tmp/cacert.pem --realm IDM.EXAMPLE.COM --ds-password DM_password --admin-password admin_password --unattended
      Copy to Clipboard
  3. 安装脚本现在配置服务器。等待操作完成。
  4. 安装脚本生成包含 DNS 资源记录的文件:下面示例输出中的 /tmp/ipa.system.records.UFRPto.db 文件。将这些记录添加到现有的外部 DNS 服务器中。更新 DNS 记录的过程因特定的 DNS 解决方案而异。

    ...
    Restarting the KDC
    Please add records in this file to your DNS system: /tmp/ipa.system.records.UFRBto.db
    Restarting the web server
    ...
    Copy to Clipboard
重要

在将 DNS 记录添加到现有 DNS 服务器之前,服务器安装不会完成。

6.4. 外部 DNS 系统的 IdM DNS 记录

在安装了没有集成 DNS 的 IdM 服务器后,您必须将 IdM 服务器的 LDAP 和 Kerberos DNS 资源记录添加到外部 DNS 系统中。

ipa-server-install 安装脚本生成一个包含 DNS 资源记录列表的文件,其中文件名格式为 /tmp/ipa.system.records.<random_characters>.db ,并打印添加这些记录的指令:

Please add records in this file to your DNS system: /tmp/ipa.system.records.6zdjqxh3.db
Copy to Clipboard

这是文件内容的示例:

_kerberos-master._tcp.example.com. 86400 IN SRV 0 100 88 server.example.com.
_kerberos-master._udp.example.com. 86400 IN SRV 0 100 88 server.example.com.
_kerberos._tcp.example.com. 86400 IN SRV 0 100 88 server.example.com.
_kerberos._udp.example.com. 86400 IN SRV 0 100 88 server.example.com.
_kerberos.example.com. 86400 IN TXT "EXAMPLE.COM"
_kpasswd._tcp.example.com. 86400 IN SRV 0 100 464 server.example.com.
_kpasswd._udp.example.com. 86400 IN SRV 0 100 464 server.example.com.
_ldap._tcp.example.com. 86400 IN SRV 0 100 389 server.example.com.
Copy to Clipboard
注意

在将 IdM 服务器的 LDAP 和 Kerberos DNS 资源记录添加到 DNS 系统后,请确保 DNS 管理工具没有为 ipa-ca 添加 PTR 记录。DNS 中出现 ipa-ca 的 PTR 记录可能会导致后续的 IdM 副本安装失败。

第 7 章 使用保存在 HSM 上的密钥和证书安装 IdM 部署

硬件安全模块(HSM)提供了一个强化的、篡改的环境,用于安全加密处理、密钥生成和加密。您可以在 HSM 上存储 IdM 证书颁发机构(CA)和密钥恢复授权(KRA)的密钥对和证书。这为私钥材料增加了物理安全。

IdM 依赖于 HSM 的网络功能,来在机器之间共享密钥来创建副本。HSM 提供了额外的安全性,而不会明显影响大多数 IdM 操作。当您使用低级工具时,系统以不同的方式处理证书和密钥,但对大多数用户来说是无缝的。

重要

注意以下几点:

  • HSM 必须连接到网络。
  • 私钥无法离开设备。
  • 您无法混合在 HSM 中存储的内容。例如,您无法在 HSM 上安装 KRA 私钥,而无需在其上安装 CA 私钥。
  • 如果在初始安装中使用 HSM,则所有副本和 KRA 都必须使用相同的 HSM。
  • 您无法将没有密钥在 HSM 中生成的现有安装升级到基于 HSM 的安装。

使用 HSM 对用户和管理员在安装期间传递附加选项外,对用户和管理员不可见。所需的选项以及任何预安装工作都是特定于 HSM 的选项。

7.1. 支持的硬件安全模块

下表列出了身份管理(IdM)支持的硬件安全模块(HSM):

HSM固件设备软件客户端软件

nCipher nShield Connect XC (High)

nShield_HSM_Firmware-12.72.1

12.71.0

SecWorld_Lin64-12.71.0

Thales TCT Luna Network HSM Luna-T7

lunafw_update-7.11.1-4

7.11.0-25

610-500244-001_LunaClient-7.11.1-5

7.2. 安装带有集成 CA 的 IdM 服务器,其密钥和证书存储在 HSM 中

ipa-server-install 命令的默认配置是集成的 CA 作为 root CA。

在安装过程中,您必须提供系统的基本配置,如 realm、管理员的密码和 Directory Manager 的密码。

ipa-server-install 安装脚本在 /var/log/ipaserver-install.log 中创建一个日志文件。如果安装失败,日志可帮助您辨别问题。

先决条件

  • 根据供应商说明安装受支持的网络 HSM。请参阅支持的 HSM
  • HSM PKCS modprobe 库路径 /opt/nfast/toolkits/pkcs11/libcknfast.so
  • 一个可用的插槽、令牌和令牌密码。

流程

  1. 运行 install 命令,确保您指定 PKCS modprobe 库的位置、令牌名称和令牌密码:

    ipa-server-install -a <password> -p <dmpassword>-r <IDM.EXAMPLE.COM> -U --setup-dns --allow-zone-overlap --no-forwarders -N --auto-reverse --random-serial-numbers -–token-name=<HSM-TOKEN> --token-library-path=/opt/nfast/toolkits/pkcs11/libcknfast.so
    Copy to Clipboard
  2. 提示时指定令牌密码。

验证

  1. 运行 certutil 以显示 CA 证书信息:

    certutil -L -d /etc/pki/pki-tomcat/alias
    
    Certificate Nickname                    Trust Attributes
                                            SSL,S/MIME,JAR/XPI
    
    caSigningCert cert-pki-ca               CT,C,C
    ocspSigningCert cert-pki-ca             ,,
    Server-Cert cert-pki-ca                 u,u,u
    subsystemCert cert-pki-ca               ,,
    auditSigningCert cert-pki-ca            ,,P
    Copy to Clipboard

    请注意,如果证书的 Trust Attributes 下没有列出 u,这表示私钥存储在令牌中。在这种情况下,只有 Server-Cert cert-pki-cau 标志,因为它不会因为性能的原因在 HSM 上安装。

  2. 验证密钥和证书存储在 HSM 中:

    certutil -L -d /etc/pki/pki-tomcat/alias -h <HSM-TOKEN>
    
    Certificate Nickname                                Trust Attributes
    	   SSL,S/MIME,JAR/XPI
    
    Enter Password or Pin for "<HSM-TOKEN>":
    <HSM-TOKEN>:subsystemCert cert-pki-ca                  	u,u,u
    <HSM-TOKEN>:ocspSigningCert cert-pki-ca                	u,u,u
    <HSM-TOKEN>:caSigningCert cert-pki-ca                  	CTu,Cu,Cu
    <HSM-TOKEN>:auditSigningCert cert-pki-ca               	u,u,Pu
    Copy to Clipboard

    证书名称前缀为 HSM 令牌名称,这表示私钥和证书存储在令牌中。

    存储密钥不会影响用户获取或使用证书的方式。

7.3. 使用存储在 HSM 中的密钥和证书安装带有外部 CA 的 IdM 服务器

您可以安装使用外部证书颁发机构(CA)作为根 CA 的新身份管理(IdM)服务器。

在安装过程中,您必须提供系统的基本配置,如 realm、管理员的密码和 Directory Manager 的密码。

ipa-server-install 安装脚本在 /var/log/ipaserver-install.log 中创建一个日志文件。如果安装失败,日志可帮助您辨别问题。

先决条件

  • 根据供应商说明安装受支持的网络 HSM。请参阅支持的 HSM
  • HSM PKCS modprobe 库路径 /opt/nfast/toolkits/pkcs11/libcknfast.so
  • 一个可用的插槽、令牌和令牌密码。
  • 如果安装没有集成 IdM CA 的服务器,则必须从第三方认证机构请求以下证书:

    • LDAP 服务器证书
    • Apache 服务器证书
    • PKINIT 证书
    • 发布 LDAP 和 Apache 服务器证书的 CA 完整 CA 证书链

流程

  1. 运行 install 命令,确保您指定了使用外部 CA。

    # ipa-server-install --external-ca
    Copy to Clipboard

    在安装过程中,工具会输出证书签名请求(CSR) /root/ipa.csr 的位置:

    ...
    
    Configuring certificate server (pki-tomcatd): Estimated time 3 minutes 30 seconds
      [1/8]: creating certificate server user
      [2/8]: configuring certificate server instance
    The next step is to get /root/ipa.csr signed by your CA and re-run /sbin/ipa-server-install as:
    /sbin/ipa-server-install --external-cert-file=/path/to/signed_certificate --external-cert-file=/path/to/external_ca_certificate
    Copy to Clipboard
  2. 要完成证书过程,使用安装工具生成的 CSR,请完成以下步骤:

    1. 将位于 /root/ipa.csr 中的 CSR 提交给外部 CA。这个过程根据要用作外部 CA 的服务的不同而有所不同。
    2. 在基础 64 编码 blob 中检索颁发的证书和颁发 CA 的 CA 证书链(Windows CA 的 PEM 文件或 Base_64 证书)。同样,不同的证书服务的进程会有所不同。通常,网页或通知电子邮件中的下载链接允许管理员下载所有需要的证书。

      重要

      获取 CA 的完整证书链,而不只是 CA 证书。

  3. 再次运行 ipa-server-install 工具,以指定新发布的 CA 证书的路径和名称以及 PKCS modprobe 库的位置、令牌名称和令牌密码:

    # ipa-server-install --external-cert-file=</tmp/servercert20170601.pem> --external-cert-file=</tmp/cacert.pem> -–token-name=<HSM-TOKEN> --token-library-path=/opt/nfast/toolkits/pkcs11/libcknfast.so
    Copy to Clipboard
  4. 提示时指定令牌密码。
  5. 安装脚本现在配置服务器。等待操作完成。

验证

  1. 运行 certutil 以显示 CA 证书信息:

    certutil -L -d /etc/pki/pki-tomcat/alias
    
    Certificate Nickname                    Trust Attributes
                                            SSL,S/MIME,JAR/XPI
    
    caSigningCert cert-pki-ca               CT,C,C
    ocspSigningCert cert-pki-ca             ,,
    Server-Cert cert-pki-ca                 u,u,u
    subsystemCert cert-pki-ca               ,,
    auditSigningCert cert-pki-ca            ,,P
    Copy to Clipboard

    您可以看到证书 但 表示私钥不会存储在令牌中。

  2. 验证密钥和证书存储在 HSM 中:

    certutil -L -d /etc/pki/pki-tomcat/alias - h <HSM-TOKEN>
    
    Certificate Nickname                                Trust Attributes
    	   SSL,S/MIME,JAR/XPI
    
    Enter Password or Pin for "<HSM-TOKEN>":
    <HSM-TOKEN>:subsystemCert cert-pki-ca                  	u,u,u
    <HSM-TOKEN>:ocspSigningCert cert-pki-ca                	u,u,u
    <HSM-TOKEN>:caSigningCert cert-pki-ca                  	CTu,Cu,Cu
    <HSM-TOKEN>:auditSigningCert cert-pki-ca               	u,u,Pu
    Copy to Clipboard

    证书名称前缀为 HSM 令牌名称,这表示私钥和证书存储在令牌中。

    存储密钥不会影响用户获取或使用证书的方式。

7.4. 使用存储在 HSM 上的密钥和证书安装 IdM 副本服务器

副本安装过程复制现有服务器的配置,并根据该配置安装副本。

先决条件

流程

  1. 运行 install 命令,确保您指定令牌名称:

    # ipa-replica-install --token-name=<HSM-TOKEN> --setup-ca -P admin -w <password> -U
    Copy to Clipboard
  2. 提示时指定令牌密码。

验证

  • 验证密钥和证书存储在 HSM 中:

    certutil -L -d /etc/pki/pki-tomcat/alias - h <HSM-TOKEN>
    
    Certificate Nickname                                Trust Attributes
    	   SSL,S/MIME,JAR/XPI
    
    Enter Password or Pin for "<HSM-TOKEN>":
    <HSM-TOKEN>:subsystemCert cert-pki-ca                  	u,u,u
    <HSM-TOKEN>:ocspSigningCert cert-pki-ca                	u,u,u
    <HSM-TOKEN>:caSigningCert cert-pki-ca                  	CTu,Cu,Cu
    <HSM-TOKEN>:auditSigningCert cert-pki-ca               	u,u,Pu
    Copy to Clipboard

    证书名称前缀为 HSM 令牌名称,这表示私钥和证书存储在令牌中。

    存储密钥不会影响用户获取或使用证书的方式。

7.5. 使用存储在 HSM 上的密钥和证书安装 KRA 服务器

要在 RHEL Identity Management (IdM)中启用 vault,请在特定的 IdM 服务器上安装密钥恢复授权(KRA)证书系统(CS)组件。

先决条件

  • 令牌密码。

流程

  1. 运行 install 命令,确保您指定令牌名称和令牌密码:

    # ipa-kra-install -p <password>
    Copy to Clipboard
  2. 提示时指定令牌密码。

验证

  • 验证密钥和证书存储在 HSM 中:

    certutil -L -d /etc/pki/pki-tomcat/alias - h <HSM-TOKEN>
    
    Certificate Nickname                                Trust Attributes
    	   SSL,S/MIME,JAR/XPI
    
    Enter Password or Pin for "<HSM-TOKEN>":
    <HSM-TOKEN>:subsystemCert cert-pki-ca                  	u,u,u
    <HSM-TOKEN>:ocspSigningCert cert-pki-ca                	u,u,u
    <HSM-TOKEN>:caSigningCert cert-pki-ca                  	CTu,Cu,Cu
    <HSM-TOKEN>:auditSigningCert cert-pki-ca               	u,u,Pu
    <HSM-TOKEN>:storageCert cert-pki-kra                           u,u,u
    <HSM-TOKEN>:transportCert cert-pki-kra                         u,u,u
    <HSM-TOKEN>:auditSigningCert cert-pki-kra                      u,u,Pu
    Copy to Clipboard

    证书名称前缀为 HSM 令牌名称,这表示私钥和证书存储在令牌中。

    存储密钥不会影响用户获取或使用证书的方式。

7.6. 使用存储在 HSM 上的密钥和证书安装 KRA 克隆

默认情况下,IdM 副本没有 KRA,除非您在 IdM 客户端提升过程中指定了 the -setup-kra 选项。

先决条件

  • 令牌密码。
  • 已安装 KRA 服务器。

流程

  1. 要安装 KRA 克隆,请在副本中执行以下命令:

    # ipa-kra-install -p <Secret.123 >
    Copy to Clipboard
  2. 提示时指定令牌密码。

验证

  • 验证密钥和证书存储在 HSM 中:

    certutil -L -d /etc/pki/pki-tomcat/alias - h <HSM-TOKEN>
    
    Certificate Nickname                                Trust Attributes
    	   SSL,S/MIME,JAR/XPI
    
    Enter Password or Pin for "<HSM-TOKEN>":
    <HSM-TOKEN>:subsystemCert cert-pki-ca                  	u,u,u
    <HSM-TOKEN>:ocspSigningCert cert-pki-ca                	u,u,u
    <HSM-TOKEN>:caSigningCert cert-pki-ca                  	CTu,Cu,Cu
    <HSM-TOKEN>:auditSigningCert cert-pki-ca               	u,u,Pu
    <HSM-TOKEN>:storageCert cert-pki-kra                           u,u,u
    <HSM-TOKEN>:transportCert cert-pki-kra                         u,u,u
    <HSM-TOKEN>:auditSigningCert cert-pki-kra                      u,u,Pu
    Copy to Clipboard

    证书名称前缀为 HSM 令牌名称,这表示私钥和证书存储在令牌中。

    存储密钥不会影响用户获取或使用证书的方式。

第 8 章 使用自定义目录服务器和证书颁发机构设置安装 IdM 服务器或副本,来自 LDIF 和 INI 文件

您可以使用配置文件安装 RHEL 身份管理(IdM)服务器或带有自定义设置的副本:

  • IdM 目录服务器。
  • IdM 证书颁发机构。

8.1. 使用 LDIF 文件中的自定义目录服务器设置安装 IdM 服务器或副本

您可以为目录服务器(DS)安装 RHEL 身份管理(IdM)服务器和副本。以下流程演示了如何使用 IdM DS 设置创建 LDAP 数据交换格式(LDIF)文件,以及如何将这些设置传递给 IdM 服务器和副本安装命令。

先决条件

流程

  1. 使用自定义 DS 设置,创建 LDIF 格式的文本文件。使用短划线(-)分隔 LDAP 属性修改。这个示例为空闲超时和最大文件描述符设置了非默认值。

    dn: cn=config
    changetype: modify
    replace: nsslapd-idletimeout
    nsslapd-idletimeout: 1800
    -
    replace: nsslapd-maxdescriptors
    nsslapd-maxdescriptors: 8192
    Copy to Clipboard
  2. 使用 --dirsrv-config-file 参数将 LDIF 文件传给安装脚本。

    1. 要安装 IdM 服务器:

      # ipa-server-install --dirsrv-config-file <filename.ldif>
      Copy to Clipboard
    2. 要安装 IdM 副本:

      # ipa-replica-install --dirsrv-config-file <filename.ldif>
      Copy to Clipboard

8.2. 使用 INI 文件中的自定义证书颁发机构设置安装 IdM 服务器或副本

您可以使用 IdM 证书颁发机构(CA)和密钥恢复授权(KRA)的自定义设置安装 RHEL 身份管理(IdM)服务器和 IdM 副本。

以下流程描述了如何创建包含 CA 的覆盖的 INI 文件,以及如何将其传递给 IdM 服务器和副本安装命令。

先决条件

  • 您有 root 特权。

流程

  1. 使用自定义 CA 设置,创建 INI 格式的文本文件。在新行中写入每个参数。这个示例将 CA 签名密钥大小设置为 4096 位。

    [CA]
    pki_ca_signing_key_size=4096
    Copy to Clipboard
  2. 使用 --pki-config-override 参数,将 INI 文件传递给安装脚本。

    1. 要安装 IdM 服务器:

      # ipa-server-install --pki-config-override <pkiconfig.ini>
      Copy to Clipboard
    2. 要安装 IdM 副本:

      # ipa-replica-install --pki-config-override <pkiconfig.ini>
      Copy to Clipboard

第 9 章 IdM 服务器安装故障排除

以下章节节介绍了如何收集有关失败的 IdM 服务器安装的信息,以及如何解决常见的安装问题。

9.1. 查看 IdM 服务器安装错误日志

安装身份管理(IdM)服务器时,调试信息会附加到以下日志文件中:

  • /var/log/ipaserver-install.log
  • /var/log/httpd/error_log
  • /var/log/dirsrv/slapd-INSTANCE-NAME/access
  • /var/log/dirsrv/slapd-INSTANCE-NAME/errors

日志文件的最后几行报告成功或失败,而 ERRORDEBUG 条目则提供额外的上下文。

要解决 IdM 服务器安装失败的问题,请查看日志文件末尾的错误,并使用这些信息来解决任何相应的问题。

先决条件

  • 您必须具有 root 特权才能显示 IdM 日志文件中的内容。

流程

  1. 使用 tail 命令来显示日志文件的最后几行。以下示例显示了 /var/log/ipaserver-install.log 的最后 10 行。

    [user@server ~]$ sudo tail -n 10 /var/log/ipaserver-install.log
    [sudo] password for user:
    value = gen.send(prev_value)
    File "/usr/lib/python3.6/site-packages/ipapython/install/common.py", line 65, in _install
    for unused in self._installer(self.parent):
    File "/usr/lib/python3.6/site-packages/ipaserver/install/server/init.py", line 564, in main
    master_install(self)
    File "/usr/lib/python3.6/site-packages/ipaserver/install/server/install.py", line 291, in decorated
    raise ScriptError()
    
    2020-05-27T22:59:41Z DEBUG The ipa-server-install command failed, exception: ScriptError:
    2020-05-27T22:59:41Z ERROR The ipa-server-install command failed. See /var/log/ipaserver-install.log for more information
    Copy to Clipboard
  2. 要以交互方式查看日志文件,请使用 less 工具打开日志文件的末尾,然后使用 箭头键来导航。以下示例以交互方式打开 /var/log/ipaserver-install.log 文件。

    [user@server ~]$ sudo less -N +G /var/log/ipaserver-install.log
    Copy to Clipboard
  3. 通过使用剩余的日志文件重复此查看过程来收集额外的故障排除信息。

    [user@server ~]$ sudo less -N +G /var/log/httpd/error_log
    
    [user@server ~]$ sudo less -N +G /var/log/dirsrv/slapd-INSTANCE-NAME/access
    
    [user@server ~]$ sudo less -N +G /var/log/dirsrv/slapd-INSTANCE-NAME/errors
    Copy to Clipboard

其他资源

9.2. 第一个 IdM CA 服务器中的 CA 安装错误日志文件

在身份管理(IdM)服务器上安装证书颁发机构(CA)服务时,调试信息会被附加到以下位置(按照推荐的优先级顺序):

位置描述

/var/log/pki/pki-ca-spawn.$TIME_OF_INSTALLATION.log

pkispawn 安装进程的高级别问题和 Python 跟踪

journalctl -u pki-tomcatd@pki-tomcat output

pki-tomcatd@pki-tomcat 服务中的错误

/var/log/pki/pki-tomcat/ca/debug.$DATE.log

公钥基础设施(PKI)产品核心中的大型 JAVA 堆栈跟踪活动

/var/log/pki/pki-tomcat/ca/signedAudit/ca_audit 日志文件

PKI 产品的审计日志

  • /var/log/pki/pki-tomcat/ca/system
  • /var/log/pki/pki-tomcat/ca/transactions
  • /var/log/pki/pki-tomcat/catalina.$DATE.log

用于服务主体、主机和其它使用证书实体的证书操作的低级调试数据

注意

如果在安装可选 CA 组件时整个 IdM 服务器安装失败,则不会记录有关 CA 的详情;会在 /var/log/ipaserver-install.log 文件中记录一条信息,表示整个安装过程失败。查看上面列出的日志文件,以了解 CA 安装失败的具体详情。

唯一例外是您要安装 CA 服务,root CA 是外部 CA。如果来自外部 CA 的证书出现问题,则会在 /var/log/ipaserver-install.log 中记录错误。

9.3. 查看第一个 IdM CA 服务器中的 CA 安装错误

要解决 IdM CA 安装失败的问题,请查看 第一个 IdM CA 服务器上的 CA 安装错误日志文件末尾的错误,并使用这些信息来解决任何相应的问题。

先决条件

  • 您必须具有 root 特权才能显示 IdM 日志文件中的内容。

流程

  1. 要以交互方式查看日志文件,请使用 less 工具打开日志文件的末尾,并在搜索 ScriptError 条目时使用 kbd:[] 箭头键导航。以下示例将打开 /var/log/pki/pki-ca-spawn.$TIME_OF_INSTALLATION.log

    [user@server ~]$ sudo less -N +G /var/log/pki/pki-ca-spawn.20200527185902.log
    Copy to Clipboard
  2. 通过使用以上列出的所有日志文件重复此查看过程来收集额外的故障排除信息。

其他资源

9.4. 删除部分 IdM 服务器安装

如果 IdM 服务器安装失败,可以保留一些配置文件。其他尝试安装 IdM 服务器会失败,安装脚本会报告 IPA 已配置。

带有现有部分 IdM 配置的系统示例

[root@server ~]# ipa-server-install

The log file for this installation can be found in /var/log/ipaserver-install.log
IPA server is already configured on this system.
If you want to reinstall the IPA server, please uninstall it first using 'ipa-server-install --uninstall'.
The ipa-server-install command failed. See /var/log/ipaserver-install.log for more information
Copy to Clipboard

要解决这个问题,请卸载部分 IdM 服务器配置并重试安装过程。

先决条件

  • 您必须有 root 权限。

流程

  1. 从您要配置为 IdM 服务器的主机中卸载 IdM 服务器软件。

    [root@server ~]# ipa-server-install --uninstall
    Copy to Clipboard
  2. 如果您因为重复安装失败而无法安装 IdM 服务器,请重新安装操作系统。

    安装 IdM 服务器的要求之一是使用一个没有自定义的“干净”系统。失败的安装可能会因为意外修改系统文件而破坏主机的完整性。

其它资源

第 10 章 卸载 IdM 服务器

按照以下步骤卸载名为 server123.idm.example.com (server123)的 RHEL 身份管理(IdM)服务器。在此流程中,您要首先确保其他服务器正在运行关键服务,并且拓扑在执行卸载前将继续保持冗余。

注意

如果您的密钥和证书存储在硬件安全模块(HSM)中,则不作为卸载的一部分删除。您应该参考 HSM 附带的文档,了解如何清除或重置 HSM,以确保从 HSM 中删除公钥和私钥。

先决条件

  • 您有访问 server123 的 root 权限。
  • 您有 IdM 管理员的凭证。

流程

  1. 如果您的 IdM 环境使用集成 DNS,请确保 server123 不是唯一 启用的 DNS 服务器:

    [root@server123 ~]# ipa server-role-find --role 'DNS server'
    ----------------------
    2 server roles matched
    ----------------------
      Server name: server456.idm.example.com
      Role name: DNS server
      Role status: enabled
    [...]
    ----------------------------
    Number of entries returned 2
    ----------------------------
    Copy to Clipboard

    如果 server123 是拓扑中唯一剩余的 DNS 服务器,请将 DNS 服务器角色添加到另一台 IdM 服务器。如需更多信息,请参阅您系统上的 ipa-dns-install (1) 手册页。

  2. 如果您的 IdM 环境使用集成证书颁发机构(CA):

    1. 确保 server123 不是唯一 启用的 CA 服务器:

      [root@server123 ~]# ipa server-role-find --role 'CA server'
      ----------------------
      2 server roles matched
      ----------------------
        Server name: server123.idm.example.com
        Role name: CA server
        Role status: enabled
      
        Server name: server.idm.example.com
        Role name: CA server
        Role status: enabled
      ----------------------------
      Number of entries returned 2
      ----------------------------
      Copy to Clipboard

      如果 server123 是拓扑中唯一剩余的 CA 服务器,请将 CA 服务器角色添加到另一台 IdM 服务器。如需更多信息,请参阅您系统上的 ipa-ca-install (1) 手册页。

    2. 如果您在 IdM 环境中已经启用了 vault,请确保 server123.idm.example.com 不是唯一 启用的 密钥恢复机构(KRA)服务器:

      [root@server123 ~]# ipa server-role-find --role 'KRA server'
      ----------------------
      2 server roles matched
      ----------------------
        Server name: server123.idm.example.com
        Role name: KRA server
        Role status: enabled
      
        Server name: server.idm.example.com
        Role name: KRA server
        Role status: enabled
      ----------------------------
      Number of entries returned 2
      ----------------------------
      Copy to Clipboard

      如果 server123 是拓扑中唯一剩余的 KRA 服务器,请将 KRA 服务器角色添加到另一台 IdM 服务器。如需更多信息,请参阅 man ipa-kra-install(1)

    3. 确保 server123.idm.example.com 不是 CA 续订服务器:

      [root@server123 ~]# ipa config-show | grep 'CA renewal'
        IPA CA renewal master: server.idm.example.com
      Copy to Clipboard

      如果 server123 是 CA 续订服务器,请参阅 更改和重置 IdM CA 续订服务器,以了解有关如何将 CA 续订服务器角色转移到另一台服务器的更多信息。

    4. 确保 server123.idm.example.com 不是当前证书撤销列表(CRL)发布者:

      [root@server123 ~]# ipa-crlgen-manage status
      CRL generation: disabled
      Copy to Clipboard

      如果输出显示 server123 上启用了 CRL 生成,请参阅 在 IdM CA 服务器上生成 CRL ,以了解有关如何将 CRL 发布者角色转移到另一台服务器的更多信息。

  3. 连接到拓扑中的另一台 IdM 服务器:

    $ ssh idm_user@server456
    Copy to Clipboard
  4. 在服务器上,获取 IdM 管理员的凭证:

    [idm_user@server456 ~]$ kinit admin
    Copy to Clipboard
  5. 查看拓扑中分配给服务器的 DNA ID 范围:

    [idm_user@server456 ~]$ ipa-replica-manage dnarange-show
    server123.idm.example.com: 1001-1500
    server456.idm.example.com: 1501-2000
    [...]
    Copy to Clipboard

    输出显示分配给 server123 和 server456 的一个 DNA ID 范围。

  6. 如果 server123 是分配了 DNA ID 范围的拓扑中唯一的 IdM 服务器,请在 server456 上创建一个测试 IdM 用户,以确保服务器已分配了 DNA ID 范围:

    [idm_user@server456 ~]$ ipa user-add test_idm_user
    Copy to Clipboard
  7. 从拓扑中删除 server123.idm.example.com:

    [idm_user@server456 ~]$ ipa server-del server123.idm.example.com
    Copy to Clipboard
    重要

    如果删除 server123 会导致断开连接的拓扑,则脚本会发出警告。有关如何在剩余的副本之间创建复制协议,以便删除可以继续的信息,请参阅 使用 CLI 在两个服务器之间设置复制

    注意

    运行 ipa server-del 命令会删除与 domainca 后缀的 server123 相关的所有复制数据和协议。这与域级别 0 IdM 拓扑正相反,其中您最初需要使用 ipa-replica-manage del server123 命令删除这些数据。域级别 0 IdM 拓扑是运行在 RHEL 7.2 及更早的版本中的拓扑。使用 ipa domainlevel-get 命令查看当前域级别。

  8. 返回到 server123.idm.example.com ,并卸载现有的 IdM 安装:

    [root@server123 ~]# ipa-server-install --uninstall
    ...
    Are you sure you want to continue with the uninstall procedure? [no]: true
    Copy to Clipboard
  9. 确定指向 server123.idm.example.com 的所有名称服务器(NS)DNS 记录已从您的 DNS 区域中删除。无论您使用由 IdM 还是外部 DNS 管理的集成 DNS,这个均适用。有关如何从 IdM 删除 DNS 记录的更多信息。

第 11 章 重命名 IdM 服务器

您无法更改现有 RHEL 身份管理(IdM)服务器的主机名。但是,您可以将服务器替换为不同名称的副本。

流程

  1. 安装将替换现有服务器的新副本,确保副本具有所需的主机名和 IP 地址。详情请参阅 安装 IdM 副本

    重要

    如果您要卸载的服务器是证书撤销列表(CRL)发布者服务器,请在继续操作前,将另一台服务器作为 CRL 发布者服务器。

  2. 停止现有的 IdM 服务器实例。

    [root@old_server ~]# ipactl stop
    Copy to Clipboard
  3. 卸载现有服务器,如 卸载 IdM 服务器 中所述。

第 12 章 更新和降级 IdM

更新 IdM 软件包

您可以使用 dnf 工具更新系统上的 RHEL Identity Management (IdM)软件包。

先决条件

流程

  • 选择以下选项之一:

    • 更新所有与您的配置集相关且有可用更新的 IdM 软件包:

      # dnf upgrade ipa-*
      Copy to Clipboard
    • 要安装或更新软件包以匹配任何启用的存储库中可用的配置文件的最新版本:

      # dnf distro-sync ipa-*
      Copy to Clipboard

在至少一个服务器中更新 IdM 软件包后,拓扑中的所有其他服务器都会接收更新的模式,即使您没有更新它们的软件包。这将确保任何使用新模式的新条目都可以在其他服务器之间复制。

警告

当更新多个 IdM 服务器时,请在更新一个服务器后至少等待 10 分钟后再更新另一个服务器。但是,服务器成功更新所需的实际时间取决于部署的拓扑、连接的延迟以及更新所生成的修改数量。

当两个或更多个服务器同时更新,或在不同更新之间只能简短的间隔,则可能没有足够的时间来在整个拓扑间复制升级后的数据变化,从而会导致复制事件冲突。

12.1. 降级 IdM 软件包

红帽不支持降级 RHEL 身份管理。

第 13 章 为 IdM 客户端安装准备系统

在安装身份管理(IdM)客户端前,请确定您的系统满足以下条件。

13.1. 安装 IdM 客户端支持的 RHEL 版本

在 Red Hat Enterprise Linux 10 的最新次版本上运行 IdM 服务器的 RHEL 身份管理部署支持在最新的次版本上运行的客户端:

  • RHEL 7
  • RHEL 8
  • RHEL 9
注意

虽然其他客户端系统(如 Ubuntu)可以与 IdM 10 服务器一起使用,但红帽不为这些客户端提供支持。

13.2. IdM 客户端的 DNS 要求

默认情况下,客户端安装程序会尝试为其主机名的父域搜索 _ldap._tcp.DOMAIN DNS SRV 记录。例如,如果客户端机器具有主机名 client1.idm.example.com,安装程序将尝试分别从 _ldap._tcp.idm.example.com_ldap._tcp.example.com_ldap._tcp.com DNS SRV 记录中检索 IdM 服务器主机名。然后,使用发现的域来在机器上配置客户端组件(如 SSSD 和 Kerberos 5 配置)。

但是,IdM 客户端的主机名不必是主 DNS 域的一部分。如果客户端机器主机名不在 IdM 服务器的子域中,请将 IdM 域作为 ipa-client-install 命令的 --domain 选项传递。在这种情况下,安装客户端后,SSSD 和 Kerberos 组件的配置文件中都会有域设置,并使用它来自动发现 IdM 服务器。

13.3. IdM 客户端的端口要求

RHEL 身份管理(IdM)客户端连接到 IdM 服务器上的多个端口,以与其服务进行通信。

在 IdM 客户端中,这些端口必须在出站方向被打开。如果您使用的防火墙不过滤传出数据包,如 firewalld,这些端口已在传出方向中可用。

13.4. IdM 客户端的 IPv6 要求

RHEL 身份管理(IdM)不需要在您要注册到 IdM 的主机的内核中启用 IPv6 协议。例如,如果您的内部网络只使用 IPv4 协议,那么您可以将系统安全服务守护进程(SSSD)配置为只使用 IPv4 来与 IdM 服务器进行通信。要做到这一点,您可以将以下行插入到 /etc/sssd/sssd.conf 文件的 [domain/NAME] 部分 :

lookup_family_order = ipv4_only
Copy to Clipboard

13.5. 安装 IdM 客户端所需的软件包

安装 ipa-client 软件包会自动将其他所需的软件包安装为依赖项,如系统安全服务守护进程(SSSD)软件包。

流程

  • 安装 ipa-client 软件包:
# dnf install ipa-client
Copy to Clipboard

第 14 章 安装 IdM 客户端

以下小节介绍了如何使用 ipa-client-install 工具将系统配置为 RHEL 身份管理(IdM)客户端。将系统配置为 IdM 客户端将其注册到 IdM 域中,并让系统在域中的 IdM 服务器中使用 IdM 服务。

要成功安装 RHEL 身份管理(IdM)客户端,您必须提供可用于注册客户端的凭证。

14.1. 先决条件

14.2. 使用用户凭证安装客户端: 交互式安装

按照以下步骤,使用授权用户的凭证以交互方式安装 RHEL 身份管理(IdM)客户端,将系统注册到域中。

先决条件

  • 确定您有用户授权将客户端注册到 IdM 域的凭证。例如,这可以是具有注册管理员角色的 hostadmin 用户。

流程

  1. 在您要配置为 IdM 客户端的系统中运行 ipa-client-install 工具。

    # ipa-client-install --mkhomedir
    Copy to Clipboard

    添加 -enable-dns-updates 选项,以便在满足以下条件之一时使用客户端系统的 IP 地址更新 DNS 记录:

    • 已安装带有集成的 DNS 的 IdM 服务器
    • 网络中的 DNS 服务器接受使用 GSS-TSIG 协议的 DNS 条目更新
    # ipa-client-install --enable-dns-updates --mkhomedir
    Copy to Clipboard

    启用 DNS 更新对以下客户端很有用:

    • 具有使用动态主机配置协议发布的动态 IP 地址
    • 有一个已分配的静态 IP 地址,但 IdM 服务器不知道它
  2. 安装脚本尝试自动获取所有所需的设置,如 DNS 记录。

    • 如果在 IdM DNS 区中正确设置了 SRV 记录,该脚本会自动发现所有其他必要的值并显示它们。输入 yes 以确认。

      Client hostname: client.example.com
      Realm: EXAMPLE.COM
      DNS Domain: example.com
      IPA Server: server.example.com
      BaseDN: dc=example,dc=com
      
      Continue to configure the system with these values? [no]: yes
      Copy to Clipboard
    • 要使用不同的值安装系统,请输入 no。然后再次运行 ipa-client-install,并通过在 ipa-client-install 中添加命令行选项来指定所需的值,例如:

      • --hostname
      • --realm
      • --domain
      • --server
      • --mkhomedir
      重要

      完全限定域名必须是有效的 DNS 名称:

      • 仅允许数字、字母字符和连字符(-)。例如,不允许使用下划线,这可能导致 DNS 失败。
      • 主机名必须都是小写。不允许使用大写字母。
    • 如果脚本自动获取一些设置,它会提示您输入这些值。
  3. 该脚本提示其身份用于注册客户端的用户。例如,这可能是具有注册管理员角色的 hostadmin 用户:

    User authorized to enroll computers: hostadmin
    Password for hostadmin@EXAMPLE.COM:
    Copy to Clipboard
  4. 安装脚本现在配置客户端。等待操作完成。

    Client configuration complete.
    Copy to Clipboard

14.3. 使用一次性密码安装客户端:交互式安装

按照以下步骤,使用一次性密码以交互方式安装 RHEL 身份管理(IdM)客户端,将系统注册到域中。

先决条件

  • 在域中的服务器上,将未来的客户端系统添加为 IdM 主机。在 ipa host-add 命令中使用-- random 选项,为注册生成一次性随机密码。

    注意

    ipa host-add <client_fqdn> 命令要求客户端 FQDN 可通过 DNS 解析。如果无法解析,请使用 --ip address 选项或其它选项提供 IdM 客户端系统的 IP 地址,并使用 --force 选项。

    $ ipa host-add client.example.com --random
     --------------------------------------------------
     Added host "client.example.com"
     --------------------------------------------------
      Host name: client.example.com
      Random password: W5YpARl=7M.n
      Password: True
      Keytab: False
      Managed by: server.example.com
    Copy to Clipboard
    注意

    当使用生成的密码将机器注册到 IdM 域后,生成的密码将变为无效。注册完成后,它将被一个正确的主机 keytab 替换。

流程

  1. 在您要配置为 IdM 客户端的系统中运行 ipa-client-install 工具。

    使用--password 选项提供一次性随机密码。由于密码通常包含特殊字符,因此用单引号(')括起来。

    # ipa-client-install --mkhomedir --password=password
    Copy to Clipboard

    添加 -enable-dns-updates 选项,以便在满足以下条件之一时使用客户端系统的 IP 地址更新 DNS 记录:

    • 已安装带有集成的 DNS 的 IdM 服务器
    • 网络中的 DNS 服务器接受使用 GSS-TSIG 协议的 DNS 条目更新
    # ipa-client-install --password 'W5YpARl=7M.n' --enable-dns-updates --mkhomedir
    Copy to Clipboard

    启用 DNS 更新对以下客户端很有用:

    • 具有使用动态主机配置协议发布的动态 IP 地址
    • 有一个已分配的静态 IP 地址,但 IdM 服务器不知道它
  2. 安装脚本尝试自动获取所有所需的设置,如 DNS 记录。

    • 如果在 IdM DNS 区中正确设置了 SRV 记录,该脚本会自动发现所有其他必要的值并显示它们。输入 yes 以确认。

      Client hostname: client.example.com
      Realm: EXAMPLE.COM
      DNS Domain: example.com
      IPA Server: server.example.com
      BaseDN: dc=example,dc=com
      
      Continue to configure the system with these values? [no]: yes
      Copy to Clipboard
    • 要使用不同的值安装系统,请输入 no。然后再次运行 ipa-client-install,并通过在 ipa-client-install 中添加命令行选项来指定所需的值,例如:

      • --hostname
      • --realm
      • --domain
      • --server
      • --mkhomedir
      重要

      完全限定域名必须是有效的 DNS 名称:

      • 仅允许数字、字母字符和连字符(-)。例如,不允许使用下划线,这可能导致 DNS 失败。
      • 主机名必须都是小写。不允许使用大写字母。
    • 如果脚本自动获取一些设置,它会提示您输入这些值。
  3. 安装脚本现在配置客户端。等待操作完成。

    Client configuration complete.
    Copy to Clipboard

14.4. 安装客户端: 非互动安装

对于非交互式安装,您必须使用命令行选项为 ipa-client-install 工具提供所有必需的信息。以下小节描述了非互动安装的最低所需选项。

客户端注册的预期验证方法选项

可用的选项有:

  • --principal and- password 指定有权注册客户端的用户凭证
  • --random 指定为客户端生成的一次性随机密码
  • --keytab 指定之前注册的 keytab
无人看守安装的选项

--unattended 选项允许在不需要用户确认的情况下运行安装。

如果在 IdM DNS 区中正确设置了 SRV 记录,该脚本会自动发现所有其他必要的值。如果脚本无法自动发现这些值,请使用命令行选项提供它们,例如:

  • --hostname,为客户端机器指定静态完全限定域名(FQDN)。

    重要

    FQDN 必须是一个有效的 DNS 名称:

    • 只允许数字、字母字符和连字符(-)。例如,不允许使用下划线,这可能导致 DNS 失败。
    • 主机名必须都是小写。不允许使用大写字母。
  • --domain 指定现有 IdM 部署的主 DNS 域,如 example.com。该名称是 IdM Kerberos 域名的小写版本。
  • --server 指定要连接的 IdM 服务器的 FQDN。使用此选项时,会禁用 Kerberos 的 DNS 自动发现,并配置 KDC 和 Admin 服务器的固定列表。在正常情况下,不需要这个选项,因为服务器列表是从主 IdM DNS 域检索的。
  • --realm 指定现有 IdM 部署的 Kerberos 域。通常,它是 IdM 安装所使用的主 DNS 域的大写版本。。在正常情况下,不需要这个选项,因为域名是从 IdM 服务器检索的。

非交互式安装的基本的 ipa-client-install 命令示例:

# ipa-client-install --password 'W5YpARl=7M.n' --mkhomedir --unattended
Copy to Clipboard

 

带有更多选项的用于非互动安装的 ipa-client-install 命令示例:

# ipa-client-install --password 'W5YpARl=7M.n' --domain example.com --server server.example.com --realm EXAMPLE.COM --mkhomedir --unattended
Copy to Clipboard

14.5. 安装客户端后删除前 IdM 配置

ipa-client-install 脚本不会从 /etc/openldap/ldap.conf/etc/sssd/sssd.conf 文件中删除任何以前的 LDAP 和系统安全服务守护进程(SSSD)配置。如果在安装客户端前修改了这些文件中的配置,该脚本会添加新的客户端值,但会将它们注释掉。例如:

BASE   dc=example,dc=com
URI    ldap://ldap.example.com

#URI ldaps://server.example.com # modified by IPA
#BASE dc=ipa,dc=example,dc=com # modified by IPA
Copy to Clipboard

流程

应用新的 RHEL 身份管理(IdM)} 配置值:

  1. 打开 /etc/openldap/ldap.conf/etc/sssd/sssd.conf
  2. 删除前面的配置。
  3. 取消对新 IdM 配置的注释。
  4. 依赖于系统范围的 LDAP 配置的服务器进程可能需要重启来应用更改。使用 openldap 库的应用程序通常会在启动时导入配置。

14.6. 测试 IdM 客户端

命令行通知您 ipa-client-install 已成功,但您也可以进行自己的测试。

要测试 RHEL 身份管理(IdM)客户端是否可以获取服务器上定义的用户的信息,请检查您是否能够解析服务器上定义的用户。例如,检查默认的 admin 用户:

[user@client ~]$ id admin
uid=1254400000(admin) gid=1254400000(admins) groups=1254400000(admins)
Copy to Clipboard

要测试身份验证是否正常工作,请从非 root 用户 su 到 root 用户:

[user@client ~]$ su -
Last login: Thu Oct 18 18:39:11 CEST 2018 from 192.168.122.1 on pts/0
[root@client ~]#
Copy to Clipboard

14.7. 在 IdM 客户端安装过程中执行的连接

IdM 客户端安装过程中执行的请求 列出了 ipa-client-install (RHEL Identity Management (IdM)客户端安装工具)所执行的操作。

表 14.1. 在 IdM 客户端安装过程中执行的请求
操作使用的协议目的

针对客户端系统中配置的 DNS 解析器的 DNS 解析

DNS

发现 IdM 服务器的 IP 地址;(可选)添加 A/AAAA 和 SSHFP 记录

对 IdM 副本上的端口 88(TCP/TCP6 和 UDP/UDP6)的请求

Kerberos

要获得 Kerberos ticket

JSON-RPC 在已发现或配置的 IdM 服务器中调用基于 IdM Apache 的 web-service

HTTPS

IdM 客户端注册;如果 LDAP 方法失败,检索 CA 证书链;根据需要请求证书验证

使用 SASL GSSAPI 身份验证、普通 LDAP 或两者,通过 TCP/TCP6 向 IdM 服务器上的 389 端口发请求。

LDAP

IdM 客户端注册;通过 SSSD 进程进行身份检索;对主机主体的 Kerberos 密钥进行检索

网络时间协议(NTP)发现和解析(可选)

NTP

将客户端系统和 NTP 服务器之间的时间同步

14.8. IdM 客户端在安装后部署过程中与服务器的通信

RHEL 身份管理(IdM)框架的客户端通过两个不同的应用程序实现:

  • ipa 命令行界面(CLI)
  • 可选)基于浏览器的 Web UI

CLI 安装后操作 显示了在 IdM 客户端安装后部署期间 CLI 执行的操作。Web UI 安装后操作 显示了在 IdM 客户端安装后部署期间 Web UI 执行的操作。

表 14.2. CLI 安装后操作
操作使用的协议目的

针对客户端系统中配置的 DNS 解析器的 DNS 解析

DNS

发现 IdM 服务器的 IP 地址

对 IdM 副本上的端口 88(TCP/TCP6 和 UDP/UDP6)和 464(TCP/TCP6 和 UDP/UDP6)的请求

Kerberos

要获取 Kerberos 票据 ; 更改 Kerberos 密码 ; 与 IdM Web UI 进行身份验证

JSON-RPC 在已发现或配置的 IdM 服务器中调用基于 IdM Apache 的 web-service

HTTPS

任何 ipa 工具用法

表 14.3. Web UI 安装后操作
操作使用的协议目的

JSON-RPC 在已发现或配置的 IdM 服务器中调用基于 IdM Apache 的 web-service

HTTPS

检索 IdM Web UI 页面

其他资源

  • SSSD 通信模式 ,以了解有关 SSSD 守护进程是如何与 IdM 和活动目录服务器上提供的服务进行通信的更多信息。
  • certmonger 通信模式 ,以了解有关 certmonger 守护进程是如何与 IdM 和活动目录服务器上提供的服务进行通信的更多信息。

14.9. SSSD 通信模式

系统安全服务守护程序(SSSD)是一种用于访问远程目录和身份验证机制的系统服务。如果在 RHEL Identity Management IdM 客户端上配置了,它会连接到 IdM 服务器,它提供身份验证、授权和其他身份和策略信息。如果 IdM 服务器与 Active Directory(AD)是信任关系,SSSD 也会连接到 AD,使用 Kerberos 协议为 AD 用户执行身份验证。默认情况下,SSSD 使用 Kerberos 验证任何非本地用户。特殊情况下,SSSD 可能会被配置为使用 LDAP 协议。

SSSD 可以配置为与多个服务器通信。下表显示了 IdM 中 SSSD 的常见通信模式。

表 14.4. 与 IdM 服务器对话时在 IdM 客户端中的 SSSD 通信特征
操作使用的协议目的

针对客户端系统中配置的 DNS 解析器的 DNS 解析

DNS

发现 IdM 服务器的 IP 地址

对 RHEL 身份管理副本和 Active Directory 域控制器上的端口 88 (TCP/TCP6 和 UDP/UDP6)、464 (TCP/TCP6 和 UDP/UDP6)和 749 (TCP/TCP6)的请求

Kerberos

获取 Kerberos 票据 ; 修改 Kerberos 密码

使用 SASL GSSAPI 身份验证、普通 LDAP 或两者,通过 TCP/TCP6 向 IdM 服务器上的 389 端口发请求。

LDAP

要获取有关 IdM 用户和主机的信息,请下载 HBAC 和 sudo 规则、自动挂载映射、SELinux 用户上下文、公共 SSH 密钥以及存储在 IdM LDAP 中的其他信息

(可选)如果是智能卡身份验证,则请求在线证书状态协议(OCSP)响应器(如果已配置)。这通常通过端口 80 完成,但它取决于客户端证书中的 OCSP 响应程序 URL 的实际值。

HTTP

获取在智能卡中安装的证书状态的信息

表 14.5. 与 Active Directory Domain Controller 对话时作为信任代理的 SSSD 服务器的通信模式
操作使用的协议目的

针对客户端系统中配置的 DNS 解析器的 DNS 解析

DNS

发现 IdM 服务器的 IP 地址

对 RHEL 身份管理副本和 Active Directory 域控制器上的端口 88 (TCP/TCP6 和 UDP/UDP6)、464 (TCP/TCP6 和 UDP/UDP6)和 749 (TCP/TCP6)的请求

Kerberos

要获得 Kerberos 票据 ; 更改 Kerberos 密码 ; 远程管理 Kerberos

向端口 389(TCP/TCP6 和 UDP/UDP6)和 3268(TCP/TCP6)发请求.

LDAP

查询 Active Directory 用户和组群信息 ; 发现 Active Directory 域控制器

(可选)如果是智能卡身份验证,则请求在线证书状态协议(OCSP)响应器(如果已配置)。这通常通过端口 80 完成,但它取决于客户端证书中的 OCSP 响应程序 URL 的实际值。

HTTP

获取在智能卡中安装的证书状态的信息

14.10. certmonger 通讯特征

certmonger 是在 RHEL Identity Management (IdM)服务器和 IdM 客户端上运行的守护进程,允许及时续订与主机上的服务关联的 SSL 证书。表 14.6 “certmonger 通讯特征” 显示 IdM 服务器上 certmonger 工具执行的操作。

表 14.6. certmonger 通讯特征
操作使用的协议目的

针对客户端系统中配置的 DNS 解析器的 DNS 解析

DNS

发现 IdM 服务器的 IP 地址

对 IdM 副本上的端口 88(TCP/TCP6 和 UDP/UDP6)和 464(TCP/TCP6 和 UDP/UDP6)的请求

Kerberos

要获得 Kerberos ticket

JSON-RPC 在已发现或配置的 IdM 服务器中调用基于 IdM Apache 的 web-service

HTTPS

请求新证书

通过 IdM 服务器的端口 8080(TCP/TCP6)进行访问

HTTP

为了获得在线证书状态协议(OCSP)响应器和证书状态

(在第一个安装的服务器或传输了证书跟踪的服务器上)通过 IdM 服务器的端口 8443(TCP/TCP6)进行访问

HTTPS

要在 IdM 服务器上管理证书颁发机构(只在 IdM 服务器和副本安装过程中)。服务器上的 certmonger 只与其本地服务器上的端口 8080 和 8443 联系,以进行 CA 相关的证书续订。

第 15 章 使用 Kickstart 安装 IdM 客户端

在安装 Red Hat Enterprise Linux 时,Kickstart 注册会自动将新系统添加到 RHEL 身份管理(IdM)域中。

15.1. 使用 Kickstart 安装客户端

按照以下步骤,使用 Kickstart 文件安装 RHEL 身份管理(IdM)客户端。

先决条件

流程

  1. 在 IdM 服务器上预先创建主机条目,并为该条目设置临时密码:

    $ ipa host-add client.example.com --password=secret
    Copy to Clipboard

    Kickstart 使用密码在客户端安装过程中进行验证,并在第一次验证尝试后过期。成功安装客户端后,它会使用它的 keytab 进行验证。

  2. 使用 第 15.2 节 “用于客户端安装的 Kickstart 文件” 中描述的内容创建一个 Kickstart 文件。使用 network 命令,确保在 Kickstart 文件中正确配置了网络。
  3. 使用 Kickstart 文件安装 IdM 客户端。

15.2. 用于客户端安装的 Kickstart 文件

您可以使用 Kickstart 文件安装 RHEL 身份管理(IdM)客户端。此处概述的 Kickstart 文件的内容必须满足某些要求。

要安装的软件包列表中的 ipa-client 软件包

ipa-client 软件包添加到 Kickstart 文件的 %packages 部分。例如:

%packages
...
ipa-client
...
Copy to Clipboard
IdM 客户端的安装后说明

安装后的说明必须包括:

  • 确保 SSH 密钥在注册前生成的说明
  • 运行 ipa-client-install 工具的指令,同时指定:

例如:使用一次性密码的 Kickstart 安装后说明,以及从命令行而不是通过 DNS 检索所需的选项,如下所示:

%post --log=/root/ks-post.log

# Generate SSH keys; ipa-client-install uploads them to the IdM server by default
/usr/libexec/openssh/sshd-keygen rsa

# Run the client install script
/usr/sbin/ipa-client-install --hostname=client.example.com --domain=EXAMPLE.COM --enable-dns-updates --mkhomedir -w secret --realm=EXAMPLE.COM --server=server.example.com
Copy to Clipboard

另外,您还可以在 Kickstart 文件中包括其他选项,例如:

  • 对于非交互式安装,将-- unattended 选项添加到 ipa-client-install 中。
  • 要让客户端安装脚本为机器请求证书:

    • --request-cert 选项添加到 ipa-client-install
    • 将 Kickstart chroot 环境中的 getcertipa-client-install 工具的系统总线地址设为 /dev/null。要做到这一点,在 ipa-client-install 指令前将这些行添加到 Kickstart 文件中的安装后说明中:

      # env DBUS_SYSTEM_BUS_ADDRESS=unix:path=/dev/null getcert list
      # env DBUS_SYSTEM_BUS_ADDRESS=unix:path=/dev/null ipa-client-install
      Copy to Clipboard

15.3. 测试 IdM 客户端

命令行通知您 ipa-client-install 已成功,但您也可以进行自己的测试。

要测试 RHEL 身份管理(IdM)客户端是否可以获取服务器上定义的用户的信息,请检查您是否能够解析服务器上定义的用户。例如,检查默认的 admin 用户:

[user@client ~]$ id admin
uid=1254400000(admin) gid=1254400000(admins) groups=1254400000(admins)
Copy to Clipboard

要测试身份验证是否正常工作,请从非 root 用户 su 到 root 用户:

[user@client ~]$ su -
Last login: Thu Oct 18 18:39:11 CEST 2018 from 192.168.122.1 on pts/0
[root@client ~]#
Copy to Clipboard

第 16 章 IdM 客户端安装故障排除

以下小节论述了如何收集有关无法安装 IdM 客户端的信息,以及如何解决常见安装问题。

16.1. 检查 IdM 客户端安装错误

安装身份管理(IdM)客户端时,调试信息会附加到 /var/log/ipaclient-install.log 中。如果客户端安装失败,安装程序会记录失败并回滚更改以撤销对主机的任何修改。安装失败的原因可能不是在日志文件的末尾,因为安装程序也会记录回滚过程。

要解决 IdM 客户端安装失败的问题,请查看 /var/log/ipaclient-install.log 文件中标有 ScriptError 的行,并使用这些信息来解决任何相应的问题。

先决条件

  • 您必须具有 root 特权才能显示 IdM 日志文件中的内容。

流程

  1. 使用 grep 工具从 /var/log/ipaserver-install.log 文件中检索任何出现关键字 ScriptError

    [user@server ~]$ sudo grep ScriptError /var/log/ipaclient-install.log
    [sudo] password for user:
    2020-05-28T18:24:50Z DEBUG The ipa-client-install command failed, exception: ScriptError: One of password / principal / keytab is required.
    Copy to Clipboard
  2. 要以交互方式查看日志文件,请使用 less 工具打开日志文件的末尾,然后使用 箭头键来导航。

    [user@server ~]$ sudo less -N +G /var/log/ipaclient-install.log
    Copy to Clipboard

其他资源

16.2. 解决客户端安装无法更新 DNS 记录时的问题

IdM 客户端安装程序会使用 nsupdate 命令来创建 PTR、SSHFP 和其他 DNS 记录。但是,如果客户端在安装和配置了客户端软件后无法更新 DNS 记录,则安装过程会失败。

要解决这个问题,请验证配置并查看 /var/log/client-install.log 中的 DNS 错误。

先决条件

  • 您使用 IdM DNS 作为 IdM 环境的 DNS 解决方案

流程

  1. 确保客户端所在的 DNS 区的动态更新已被启用:

    [user@server ~]$ ipa dnszone-mod idm.example.com. --dynamic-update=TRUE
    Copy to Clipboard
  2. 确保运行 DNS 服务的 IdM 服务器对 TCP 和 UDP 协议开放了端口 53。

    [user@server ~]$ sudo firewall-cmd --permanent --add-port=53/tcp --add-port=53/udp
    [sudo] password for user:
    success
    [user@server ~]$ firewall-cmd --runtime-to-permanent
    success
    Copy to Clipboard
  3. 使用 grep 工具从 /var/log/client-install.log 中检索 nsupdate 命令的内容,以查看哪个 DNS 记录更新失败。

    [user@server ~]$ sudo grep nsupdate /var/log/ipaclient-install.log
    Copy to Clipboard

其他资源

16.3. 解决客户端安装无法加入 IdM Kerberos 域时的问题

如果客户端无法加入 IdM Kerberos 域,IdM 客户端安装过程会失败。

Joining realm failed: Failed to add key to the keytab
child exited with 11

Installation failed. Rolling back changes.
Copy to Clipboard

这个失败可能是由空 Kerberos keytab 造成的。

先决条件

  • 删除系统文件需要 root 特权。

流程

  1. 删除 /etc/krb5.keytab

    [user@client ~]$ sudo rm /etc/krb5.keytab
    [sudo] password for user:
    [user@client ~]$ ls /etc/krb5.keytab
    ls: cannot access '/etc/krb5.keytab': No such file or directory
    Copy to Clipboard
  2. 重试 IdM 客户端安装。

其他资源

16.4. 解决客户端安装无法配置自动挂载的问题

在 RHEL 7 中,您可以在客户端安装过程中为客户端配置一个自动挂载位置。在 RHEL 8 中,运行带有 --automount-location <raleigh>ipa-client-install 命令无法配置自动挂载位置。但是,由于剩下的安装成功,在安装后运行 /usr/sbin/ipa-client-automount <raleigh> 来为客户端正确配置一个自动挂载位置。

先决条件

  • 除了配置自动挂载位置外,IdM 客户端安装一切正常。CLI 输出为:

    The ipa-client-install command was successful.
    Copy to Clipboard

流程

  • 配置自动挂载位置:

    /usr/sbin/ipa-client-automount -U --location <raleigh>
    Copy to Clipboard

第 17 章 重新注册 IdM 客户端

如果客户端计算机因为客户端的硬件故障而被破坏并失去了与 IdM 服务器的连接,但您仍然拥有其 keytab,那么您可以重新注册客户端。在这种情况下,您希望使用相同的主机名将客户端恢复回 IdM 环境。

17.1. IdM 中的客户端重新注册

如果客户端计算机因为客户端的硬件故障而被破坏并失去了与 IdM 服务器的连接,但您仍然拥有其 keytab,那么您可以重新注册客户端。在这种情况下,您希望使用相同的主机名将客户端恢复回 IdM 环境。

在重新注册过程中,客户端会生成一个新的 Kerberos 密钥和 SSH 密钥,但 LDAP 数据库中客户端的身份保持不变。重新注册后,在机器与 IdM 服务器失去连接之前,主机像以前一样,其密钥和其他信息放在具有相同 FQDN 的同一 LDAP 对象中。

重要

您只能重新注册域条目仍然活跃的客户端。如果您卸载了客户端(使用 ipa-client-install --uninstall)或者禁用了其主机条目(使用 ipa host-disable),则无法重新注册它。

您不能在重命名客户端后重新注册客户端。这是因为在 IdM 中,LDAP 中客户端条目的关键属性是客户端的主机名,即其 FQDN。与重新注册客户端(在此期间客户端的 LDAP 对象保持不变)不同,重命名客户端的结果是,客户端的密钥和其他信息位于具有新 FQDN 的不同的 LDAP 对象中。因此,重命名客户端的唯一方法是从 IdM 卸载主机,更改主机的主机名,并使用新名称将其安装为 IdM 客户端。有关如何重命名客户端的详情,请参考 重命名 IdM 客户端系统

客户端重新注册过程中会发生什么

在重新启用过程中,IdM:

  • 撤销原始主机证书
  • 创建新 SSH 密钥
  • 生成一个新的 keytab

17.2. 使用用户凭证重新注册客户端: 交互式重新注册

使用授权用户的凭证以交互方式重新注册 RHEL 身份管理(IdM)客户端。

流程

  1. 重新创建具有相同主机名的客户端机器。
  2. 在客户端机器上运行 ipa-client-install --force-join 命令:

    # ipa-client-install --force-join
    Copy to Clipboard
  3. 该脚本提示其身份用于重新注册客户端的用户。例如,这可能是具有注册管理员角色的 hostadmin 用户:

    User authorized to enroll computers: hostadmin
    Password for hostadmin@EXAMPLE.COM:
    Copy to Clipboard

17.3. 使用 client keytab: Non-interactive reenrollment 重新注册客户端

您可以使用之前部署中客户端系统的 krb5.keytab keytab 文件,以非交互方式重新注册 RHEL 身份管理(IdM)客户端。例如,使用客户端 keytab 重新注册适用于自动安装。

先决条件

  • 您已在另一个系统上从以前的部署中备份了客户端的 keytab。

步骤

  1. 重新创建具有相同主机名的客户端机器。
  2. 将 keytab 文件从备份位置复制到重新创建的客户端机器,例如 /tmp/ 目录。

    重要

    不要将 keytab 放在 /etc/krb5.keytab 文件中,因为在执行 ipa-client-install 安装脚本过程中,已从这个位置删除了旧密钥。

  3. 使用 ipa-client-install 工具重新注册客户端。使用 --keytab 选项指定 keytab 位置:

    # ipa-client-install --keytab /tmp/krb5.keytab
    Copy to Clipboard
    注意

    --keytab 选项中指定的 keytab 仅在进行身份验证启动重新注册时使用。在重新注册过程中,IdM 为客户端生成一个新的 keytab。

17.4. 测试 IdM 客户端

命令行通知您 ipa-client-install 已成功,但您也可以进行自己的测试。

要测试 RHEL 身份管理(IdM)客户端是否可以获取服务器上定义的用户的信息,请检查您是否能够解析服务器上定义的用户。例如,检查默认的 admin 用户:

[user@client ~]$ id admin
uid=1254400000(admin) gid=1254400000(admins) groups=1254400000(admins)
Copy to Clipboard

要测试身份验证是否正常工作,请从非 root 用户 su 到 root 用户:

[user@client ~]$ su -
Last login: Thu Oct 18 18:39:11 CEST 2018 from 192.168.122.1 on pts/0
[root@client ~]#
Copy to Clipboard

第 18 章 卸载 IdM 客户端

作为管理员,您可以从环境中删除 RHEL Identity Management (IdM)客户端。

18.1. 卸载 IdM 客户端

卸载客户端会从 RHEL 身份管理(IdM)域中删除客户端,以及系统服务的所有特定 IdM 配置,如系统安全服务守护进程(SSSD)。这会恢复客户端系统的以前的配置。

流程

  1. 输入 ipa-client-install --uninstall 命令:

    [root@client ~]# ipa-client-install --uninstall
    Copy to Clipboard
  2. 可选:检查您是否能为 IdM 用户获得 Kerberos 单据授予单(TGT):

    [root@client ~]# kinit admin
    kinit: Client 'admin@EXAMPLE.COM' not found in Kerberos database while getting initial credentials
    [root@client ~]#
    Copy to Clipboard

    如果成功返回 Kerberos TGT 票据,请遵循 卸载 IdM 客户端:多次安装后的其他步骤 中的其他卸载步骤

  3. 在客户端上,从每个已识别的 keytab ,而不是 /etc/krb5.keytab 中删除旧的 Kerberos 主体:

    [root@client ~]# ipa-rmkeytab -k /path/to/keytab -r EXAMPLE.COM
    Copy to Clipboard
  4. 在 IdM 服务器中,从 IdM 中删除客户端主机的所有 DNS 条目:

    [root@server ~]# ipa dnsrecord-del
    Record name: old-client-name
    Zone name: idm.example.com
    No option to delete specific record provided.
    Delete all? Yes/No (default No): true
    ------------------------
    Deleted record "old-client-name"
    Copy to Clipboard
  5. 在 IdM 服务器中,从 IdM LDAP 服务器中删除客户端主机条目。这会删除所有服务并撤销为该主机发布的所有证书:

    [root@server ~]# ipa host-del client.idm.example.com
    Copy to Clipboard
    重要

    如果您认为将来可能会使用不同的 IP 地址或不同的主机名来重新注册客户端,那么从 IdM LDAP 服务器中删除客户端主机条目至关重要。

18.2. 卸载 IdM 客户端:在以前的安装后执行额外的步骤

如果您多次将主机作为 RHEL 身份管理(IdM)客户端安装和卸载,则卸载过程可能无法恢复 IdM Kerberos 配置。

在这种情况下,您必须手动删除 IdM Kerberos 配置。在某些情况下,您必须重新安装操作系统。

先决条件

  • 您已使用 ipa-client-install --uninstall 命令来从主机中卸载 IdM 客户端配置。但是,您仍然可以从 IdM 服务器获得 IdM 用户的 Kerberos 单据授予单(TGT)。
  • 您已检查了 /var/lib/ipa-client/sysrestore 目录是否为空,因此您不能使用目录中的文件来恢复系统的 IdM 客户端之前的配置。

流程

  1. 检查 /etc/krb5.conf.ipa 文件:

    • 如果 /etc/krb5.conf.conf.ipa 文件的内容与安装 IdM 客户端之前的 krb5.conf 文件的内容相同,您可以:

      1. 删除 /etc/krb5.conf 文件:

        # rm /etc/krb5.conf
        Copy to Clipboard
      2. /etc/krb5.conf.ipa 文件重命名为 /etc/krb5.conf

        # mv /etc/krb5.conf.ipa /etc/krb5.conf
        Copy to Clipboard
    • 如果 /etc/krb5.conf.ipa 文件的内容与安装 IdM 客户端之前的 krb5.conf 文件的内容不同,那么您可以至少将 Kerberos 配置直接恢复到安装操作系统之后的状态:
    1. 重新安装 krb5-libs 软件包:

      # dnf reinstall krb5-libs
      Copy to Clipboard

      作为依赖项,此命令还将重新安装 krb5-workstation 软件包和 /etc/krb5.conf 文件的原始版本。

  2. 删除 var/log/ipaclient-install.log 文件(如果存在的话)。

验证

  • 在 IdM 客户端上,尝试获取 IdM 用户凭证。这应该失败:

    # kinit admin
    kinit: Client 'admin@EXAMPLE.COM' not found in Kerberos database while getting initial credentials
    #
    Copy to Clipboard

/etc/krb5.conf 文件现在恢复到其出厂状态。因此,您无法为主机上的 IdM 用户获取 Kerberos TGT。

第 19 章 重命名 IdM 客户端系统

您可以更改 RHEL Identity Management (IdM)客户端系统的主机名。

警告

重新命名客户端是一个手动过程。除非绝对需要修改主机名,否则请勿执行此操作。

重命名 RHEL 身份管理客户端涉及:

  1. 准备主机。详情请参阅 准备 IdM 客户端以进行重命名
  2. 从主机卸载 IdM 客户端。详情请参阅 卸载身份管理客户端
  3. 重命名主机。详情请参阅 重命名主机系统
  4. 使用新名称在主机上安装 IdM 客户端。详情请参阅 安装 RHEL 身份管理 中的 安装身份管理客户端
  5. 在 IdM 客户端安装后配置主机。详情请查看 重新添加服务、重新生成证书和重新添加主机组

19.1. 准备 IdM 客户端以进行重命名

在卸载当前客户端之前,请记下客户端的某些设置。在使用新的主机名重新注册计算机后,您将应用此配置。

  • 确定在机器上运行哪些服务:

    • 使用 ipa service-find 命令,并在输出中识别带有证书的服务:

      $ ipa service-find old-client-name.example.com
      Copy to Clipboard
    • 此外,每个主机都有一个默认 主机服务 ,该服务不会出现在 ipa service-find 输出中。主机服务的服务主体(也称为 主机主体)是 host/old-client-name.example.com
  • 对于 ipa service-find old-client-name.example.com 显示的所有服务主体,请确定 old-client-name.example.com 系统上相应的 keytab 的位置:

    # find / -name "*.keytab"
    Copy to Clipboard

    客户端系统上的每个服务都有一个格式为 service_name/host_name@REALM 的 Kerberos 主体,例如 ldap/old-client-name.example.com@EXAMPLE.COM.

  • 识别机器所属的所有主机组。

    # ipa hostgroup-find old-client-name.example.com
    Copy to Clipboard

19.2. 卸载 IdM 客户端

卸载客户端会从 RHEL 身份管理(IdM)域中删除客户端,以及系统服务的所有特定 IdM 配置,如系统安全服务守护进程(SSSD)。这会恢复客户端系统的以前的配置。

流程

  1. 输入 ipa-client-install --uninstall 命令:

    [root@client ~]# ipa-client-install --uninstall
    Copy to Clipboard
  2. 可选:检查您是否能为 IdM 用户获得 Kerberos 单据授予单(TGT):

    [root@client ~]# kinit admin
    kinit: Client 'admin@EXAMPLE.COM' not found in Kerberos database while getting initial credentials
    [root@client ~]#
    Copy to Clipboard

    如果成功返回 Kerberos TGT 票据,请遵循 卸载 IdM 客户端:多次安装后的其他步骤 中的其他卸载步骤

  3. 在客户端上,从每个已识别的 keytab ,而不是 /etc/krb5.keytab 中删除旧的 Kerberos 主体:

    [root@client ~]# ipa-rmkeytab -k /path/to/keytab -r EXAMPLE.COM
    Copy to Clipboard
  4. 在 IdM 服务器中,从 IdM 中删除客户端主机的所有 DNS 条目:

    [root@server ~]# ipa dnsrecord-del
    Record name: old-client-name
    Zone name: idm.example.com
    No option to delete specific record provided.
    Delete all? Yes/No (default No): true
    ------------------------
    Deleted record "old-client-name"
    Copy to Clipboard
  5. 在 IdM 服务器中,从 IdM LDAP 服务器中删除客户端主机条目。这会删除所有服务并撤销为该主机发布的所有证书:

    [root@server ~]# ipa host-del client.idm.example.com
    Copy to Clipboard
    重要

    如果您认为将来可能会使用不同的 IP 地址或不同的主机名来重新注册客户端,那么从 IdM LDAP 服务器中删除客户端主机条目至关重要。

19.3. 卸载 IdM 客户端:在以前的安装后执行额外的步骤

如果您多次将主机作为 RHEL 身份管理(IdM)客户端安装和卸载,则卸载过程可能无法恢复 IdM Kerberos 配置。

在这种情况下,您必须手动删除 IdM Kerberos 配置。在某些情况下,您必须重新安装操作系统。

先决条件

  • 您已使用 ipa-client-install --uninstall 命令来从主机中卸载 IdM 客户端配置。但是,您仍然可以从 IdM 服务器获得 IdM 用户的 Kerberos 单据授予单(TGT)。
  • 您已检查了 /var/lib/ipa-client/sysrestore 目录是否为空,因此您不能使用目录中的文件来恢复系统的 IdM 客户端之前的配置。

流程

  1. 检查 /etc/krb5.conf.ipa 文件:

    • 如果 /etc/krb5.conf.conf.ipa 文件的内容与安装 IdM 客户端之前的 krb5.conf 文件的内容相同,您可以:

      1. 删除 /etc/krb5.conf 文件:

        # rm /etc/krb5.conf
        Copy to Clipboard
      2. /etc/krb5.conf.ipa 文件重命名为 /etc/krb5.conf

        # mv /etc/krb5.conf.ipa /etc/krb5.conf
        Copy to Clipboard
    • 如果 /etc/krb5.conf.ipa 文件的内容与安装 IdM 客户端之前的 krb5.conf 文件的内容不同,那么您可以至少将 Kerberos 配置直接恢复到安装操作系统之后的状态:
    1. 重新安装 krb5-libs 软件包:

      # dnf reinstall krb5-libs
      Copy to Clipboard

      作为依赖项,此命令还将重新安装 krb5-workstation 软件包和 /etc/krb5.conf 文件的原始版本。

  2. 删除 var/log/ipaclient-install.log 文件(如果存在的话)。

验证

  • 在 IdM 客户端上,尝试获取 IdM 用户凭证。这应该失败:

    # kinit admin
    kinit: Client 'admin@EXAMPLE.COM' not found in Kerberos database while getting initial credentials
    #
    Copy to Clipboard

/etc/krb5.conf 文件现在恢复到其出厂状态。因此,您无法为主机上的 IdM 用户获取 Kerberos TGT。

19.4. 重命名主机系统

根据需要重命名机器。例如:

# hostnamectl set-hostname new-client-name.example.com
Copy to Clipboard

现在,您可以使用新的主机名将 RHEL 身份管理(IdM)客户端重新安装到 IdM 域。

19.5. 重新安装 IdM 客户端

按照 安装客户端 中描述的流程在重命名的主机上安装客户端。

19.6. 重新添加服务、重新生成证书和重新添加主机组

流程

您可以在 RHEL Identity Management (IdM)服务器上重新添加服务、重新生成证书和重新添加主机组。

  1. 在 RHEL 身份管理服务器上,为 准备 IdM 客户端以进行重命名 中标识的每个服务添加新的 keytab。

    [root@server ~]# ipa service-add service_name/new-client-name
    Copy to Clipboard
  2. 准备 IdM 客户端以进行重命名 中分配了证书的服务生成证书。您可以做到这一点:

  3. 将客户端重新添加到 准备 IdM 客户端以进行重命名 中标识的主机组。

第 20 章 为 IdM 副本安装准备系统

以下链接列出了安装 RHEL Identity Management (IdM)副本的要求。在安装前,请确定您的系统满足这些要求。

  1. 授权目标系统注册到 IdM 域。如需更多信息,请参阅以下章节中最适合您需要的内容:

其他资源

20.1. 副本版本要求

IdM 副本必须运行 RHEL 的主要版本以及与其他 IdM 服务器相同的或更新版本的 IdM。这样可确保把配置从服务器正确复制到副本。

20.2. 显示 IdM 软件版本的方法

您可以使用以下命令显示 IdM 版本号:

  • The IdM WebUI
  • ipa 命令
  • rpm 命令

 

通过 WebUI 显示版本

在 IdM Web UI 中,可以通过从右上角的用户名菜单中选择 About 来显示软件版本。

检查 IdM 软件版本
使用 ipa 命令显示版本

在命令行中使用 ipa --version 命令。

[root@server ~]# ipa --version
VERSION: 4.8.0, API_VERSION: 2.233
Copy to Clipboard
使用 rpm 命令显示版本

如果 IdM 服务工作不正常,您可以使用 rpm 工具来确定当前安装的 ipa-server 软件包的版本号。

[root@server ~]# rpm -q ipa-server
ipa-server-4.8.0-11.module+el8.1.0+4247+9f3fd721.x86_64
Copy to Clipboard

20.3. 授权在 IdM 客户端上安装副本

通过运行 ipa- replica-install 工具在现有 RHEL 身份管理(IdM)客户端上安装 副本时,请选择下面的 方法 1方法 2 来授权副本安装。如果以下任何一个适用,请选择 方法 1 :

  • 您希望高级系统管理员执行流程的初始部分,初级管理员执行其余部分。
  • 您希望自动执行副本安装。
方法 1: ipaservers 主机组
  1. 以 IdM admin 用户身份登录到任何一台 IdM 主机:

    $ kinit admin
    Copy to Clipboard
  2. 将客户端机器添加到 ipaservers 主机组中:

    $ ipa hostgroup-add-member ipaservers --hosts client.example.com
      Host-group: ipaservers
      Description: IPA server hosts
      Member hosts: server.example.com, client.example.com
    -------------------------
    Number of members added 1
    -------------------------
    Copy to Clipboard
注意

ipaservers 组中的成员授予机器类似于管理员凭证的提升特权。因此,在下一步中,初级系统管理员可以在主机上成功运行 ipa-replica-install 工具。

方法 2:特权用户的凭证

通过提供特权用户的凭证,选择以下任何一种方法来授权副本安装:

  • 启动 ipa-replica-install 工具后,让 RHEL 身份管理(IdM)以交互方式提示您输入凭据。这是默认的行为。
  • 在运行 ipa-replica-install 工具之前,立即以特权用户身份登录客户端。默认特权用户为 admin

    $ kinit admin
    Copy to Clipboard

20.4. 授权在未注册到 IdM 的系统上安装副本

当在没有 在 RHEL 身份管理(IdM)域中注册的系统中安装副本时,ipa-replica-install 工具首先将系统注册为客户端,然后安装副本组件。在这种情况下,请选择下面的 方法 1方法 2 来授权副本安装。如果以下任何一个适用,请选择 方法 1 :

  • 您希望高级系统管理员执行流程的初始部分,初级管理员执行其余部分。
  • 您希望自动执行副本安装。
方法 1:在 IdM 服务器上生成的随机密码

在域中的任何服务器上输入以下命令:

  1. 以管理员身份登录。

    $ kinit admin
    Copy to Clipboard
  2. 将外部系统添加为 IdM 主机。在 ipa host-add 命令中使用-random 选项来生成用于后续副本安装的随机一次性密码。

    $ ipa host-add replica.example.com --random
    --------------------------------------------------
    Added host "replica.example.com"
    --------------------------------------------------
      Host name: replica.example.com
      Random password: W5YpARl=7M.n
      Password: True
      Keytab: False
      Managed by: server.example.com
    Copy to Clipboard

    当使用生成的密码将机器注册到 IdM 域后,生成的密码将变为无效。注册完成后,它将被一个正确的主机 keytab 替换。

  3. 将系统添加到 ipaservers 主机组。

    $ ipa hostgroup-add-member ipaservers --hosts replica.example.com
      Host-group: ipaservers
      Description: IPA server hosts
      Member hosts: server.example.com, replica.example.com
    -------------------------
    Number of members added 1
    -------------------------
    Copy to Clipboard
注意

ipaservers 组中的成员授予机器类似于管理员凭证的提升特权。因此,在下一步中,ipa-replica-install 工具可以由提供生成的随机密码的初级系统管理员在主机上成功运行。

方法 2:特权用户的凭证

使用此方法,您可以通过提供特权用户的凭证来授权副本安装。默认特权用户为 admin

在运行 IdM 副本安装工具之前不需要任何操作。在安装过程中,将主体名称和密码选项(--principal admin --admin-password password)直接添加到 ipa-replica-install 命令中。

第 21 章 安装 IdM 副本

以下小节介绍了如何使用命令行(CLI)以交互方式安装 RHEL 身份管理(IdM)副本。副本安装过程复制现有服务器的配置,并根据该配置安装副本。

注意

请参阅 使用 Ansible playbook 安装身份管理服务器。使用 Ansible 角色一致地安装并自定义多个副本。

不使用 Ansible 的交互式和非交互式方法在拓扑中很有用,例如,副本准备被委派给用户或第三方。您还可以在地理上分布的拓扑中使用这些方法,其中您没有从 Ansible 控制器节点访问的权限。

先决条件

  • 您一次安装一个 IdM 副本。不支持同时安装多个副本。
  • 确定您的系统已 为 IdM 副本安装做好了准备

    重要

    如果没有执行此准备,安装 IdM 副本将失败。

21.1. 安装带有集成的 DNS 和 CA 的 IdM 副本

按照以下流程安装身份管理(IdM)副本:

  • 带有集成的 DNS
  • 带有证书颁发机构(CA)

例如,您可以在安装完带有集成 CA 的 IdM 服务器后复制 CA 服务以实现弹性。

重要

在使用 CA 配置副本时,副本的 CA 配置必须与其他服务器的 CA 配置一致。

例如,如果服务器包含集成的 IdM CA 作为根 CA,那么新副本也必须安装为将集成 CA 作为根 CA。本例中不提供其他 CA 配置。

ipa-replica-install 命令中包含--setup-ca 选项,可复制初始服务器的 CA 配置。

先决条件

流程

  1. ipa-replica-install 中输入以下选项:

    • --setup-dns 用来将副本配置为 DNS 服务器
    • 如果您不想使用任何每服务器转发器,请使用 --forwarder 来指定每服务器转发器或 --no-forwarder。要为故障转移的原因指定多个每服务器转发器,请多次使用 --forwarder

      注意

      ipa-replica-install 工具接受与 DNS 设置相关的许多其他选项,如 --no-reverse--no-host-dns。有关它们的更多信息,请参阅 ipa-replica-install(1)手册页。

    • --setup-ca 用来在副本中包含一个 CA

    例如,要设置带有集成 DNS 服务器和 CA 的副本,其将不是由 IdM 服务器管理的所有 DNS 请求转发到运行在 IP 192.0.2.1 上的 DNS 服务器:

    # ipa-replica-install --setup-dns --forwarder 192.0.2.1 --setup-ca
    Copy to Clipboard
  2. 安装完成后,将父域的 DNS 委派添加到 IdM DNS 域。例如,如果 IdM DNS 域是 idm.example.com,请在 example.com 父域中添加一个名字服务器(NS)记录。

    重要

    在每次安装完 IdM DNS 服务器后重复此步骤。

后续步骤

  • 在大型部署中,您可能想要调整 IdM 副本的特定参数,以提高性能。请参阅 身份管理 标题中的调优性能,以查找最适合您的情境的调优说明。

21.2. 安装带有集成 DNS 且没有 CA 的 IdM 副本

按照以下流程安装身份管理(IdM)副本:

  • 带有集成的 DNS
  • 在已安装 CA 的 IdM 环境中没有证书颁发机构(CA)。副本会将所有证书操作转发到安装了 CA 的 IdM 服务器。

先决条件

流程

  1. ipa-replica-install 中输入以下选项:

    • --setup-dns 用来将副本配置为 DNS 服务器
    • 如果您不想使用任何每服务器转发器,请使用 --forwarder 来指定每服务器转发器或 --no-forwarder。要为故障转移的原因指定多个每服务器转发器,请多次使用 --forwarder

    例如,要设置一个带有集成 DNS 服务器的副本,其将不是由 IdM 服务器管理的所有 DNS 请求转发到运行在 IP 192.0.2.1 上的 DNS 服务器:

    # ipa-replica-install --setup-dns --forwarder 192.0.2.1
    Copy to Clipboard
    注意

    ipa-replica-install 工具接受与 DNS 设置相关的许多其他选项,如 --no-reverse--no-host-dns。有关它们的更多信息,请参阅 ipa-replica-install(1)手册页。

  2. 安装完成后,将父域的 DNS 委派添加到 IdM DNS 域。例如,如果 IdM DNS 域是 idm.example.com,请在 example.com 父域中添加一个名字服务器(NS)记录。

    重要

    在每次安装完 IdM DNS 服务器后重复此步骤。

后续步骤

  • 在大型部署中,您可能想要调整 IdM 副本的特定参数,以提高性能。请参阅 身份管理 标题中的调优性能,以查找最适合您的情境的调优说明。

21.3. 安装没有集成 DNS 但有 CA 的 IdM 副本

按照以下流程安装身份管理(IdM)副本:

  • 没有集成的 DNS
  • 带有证书颁发机构(CA)
重要

在使用 CA 配置副本时,副本的 CA 配置必须与其他服务器的 CA 配置一致。

例如,如果服务器包含集成的 IdM CA 作为根 CA,那么新副本也必须安装为将集成 CA 作为根 CA。本例中不提供其他 CA 配置。

ipa-replica-install 命令中包含--setup-ca 选项,可复制初始服务器的 CA 配置。

先决条件

流程

  1. 输入 ipa-replica-install with the -setup-ca 选项。

    # ipa-replica-install --setup-ca
    Copy to Clipboard
  2. 在您的 DNS 服务器中添加新创建的 IdM DNS 服务记录:

    1. nsupdate 格式将 IdM DNS 服务记录导出到文件中:

      $ ipa dns-update-system-records --dry-run --out dns_records_file.nsupdate
      Copy to Clipboard
    2. 使用 nsupdate 工具和 dns_records_file.nsupdate 文件向 DNS 服务器提交 DNS 更新请求。如需更多信息,请参阅 RHEL 7 文档中的使用 nsupdate 更新外部 DNS 记录。或者,请参阅 DNS 服务器文档来添加 DNS 记录。

后续步骤

  • 在大型部署中,您可能想要调整 IdM 副本的特定参数,以提高性能。请参阅 身份管理 标题中的调优性能,以查找最适合您的情境的调优说明。

21.4. 安装没有集成 DNS 且没有 CA 的 IdM 副本

按照以下流程安装身份管理(IdM)副本:

  • 没有集成的 DNS
  • 在没有证书颁发机构(CA)的情况下,请手动提供所需的证书。这里的假设是安装第一个服务器时没有 CA。
重要

您不能使用自签名的第三方服务器证书来安装服务器或副本,因为导入的证书文件必须包含签发 LDAP 和 Apache 服务器证书的 CA 的完整 CA 证书链。

先决条件

流程

  • 输入 ipa-replica-install,并通过添加这些选项来提供所需的证书文件:

    • --dirsrv-cert-file
    • --dirsrv-pin
    • --http-cert-file
    • --http-pin

    有关使用这些选项提供的文件的详情,请参考 第 4.1 节 “安装没有 CA 的 IdM 服务器所需的证书”

    例如:

    # ipa-replica-install \
        --dirsrv-cert-file /tmp/server.crt \
        --dirsrv-cert-file /tmp/server.key \
        --dirsrv-pin secret \
        --http-cert-file /tmp/server.crt \
        --http-cert-file /tmp/server.key \
        --http-pin secret
    Copy to Clipboard
    注意

    不要添加 --ca-cert-file 选项。ipa-replica-install 工具从您安装的第一台服务器上自动获取这部分证书信息。

后续步骤

  • 在大型部署中,您可能想要调整 IdM 副本的特定参数,以提高性能。请参阅 身份管理 标题中的调优性能,以查找最适合您的情境的调优说明。

21.5. 安装 IdM 隐藏的副本

隐藏的(未公开的)副本是一台身份管理(IdM)服务器,其拥有所有正在运行且可用的服务。但是,它在 DNS 中没有 SRV 记录,并且不启用 LDAP 服务器角色。因此,客户端无法使用服务发现来检测这些隐藏的副本。

有关隐藏副本的详情,请参阅 隐藏的副本模式

先决条件

流程

  • 要安装隐藏的副本,请使用以下命令:

    ipa-replica-install --hidden-replica
    Copy to Clipboard

请注意,命令安装一个不带 DNS SRV 记录,并且禁用了 LDAP 服务器角色的副本。

您还可以将现有副本的模式更改为隐藏。详情请参阅 演示或提升隐藏副本

21.6. 测试 IdM 副本

创建副本后,检查副本是否按预期复制了数据。您可以使用以下步骤。

流程

  1. 在新副本中创建用户:

    [admin@new_replica ~]$ ipa user-add test_user
    Copy to Clipboard
  2. 确保用户在另一个副本中可见:

    [admin@another_replica ~]$ ipa user-show test_user
    Copy to Clipboard

21.7. 在 IdM 副本安装过程中执行的连接

IdM 副本安装过程中执行的请求 列出了 ipa-replica-install (RHEL Identity Management (IdM)副本安装工具)所执行的操作。

表 21.1. 在 IdM 副本安装过程中执行的请求
操作使用的协议目的

针对客户端系统中配置的 DNS 解析器的 DNS 解析

DNS

发现 IdM 服务器的 IP 地址

对发现的 IdM 服务器上的端口 88(TCP/TCP6 和 UDP/UDP6)的请求

Kerberos

要获得 Kerberos ticket

JSON-RPC 在已发现或配置的 IdM 服务器中调用基于 IdM Apache 的 web-service

HTTPS

IdM 客户端注册 ; 副本密钥检索和证书颁发(如果需要)

使用 SASL GSSAPI 验证、纯 LDAP 或两者都请求使用 TCP/TCP6 到 IdM 服务器上的端口 389

LDAP

IdM 客户端注册; CA 证书链检索; LDAP 数据复制

通过 TCP/TCP6 的请求到 IdM 服务器上的 22 端口

SSH

检查连接是否正常工作

(可选)访问 IdM 服务器上的端口 8443(TCP/TCP6)

HTTPS

在 IdM 服务器中管理证书颁发机构(只在 IdM 服务器和副本安装过程中)

第 22 章 IdM 副本安装故障排除

以下小节描述了收集有关失败的 IdM 副本安装信息的过程,以及如何解决一些常见安装问题。

22.1. IdM 副本安装错误日志文件

安装身份管理(IdM)副本时,调试信息会附加到 副本 上的以下日志文件中:

  • /var/log/ipareplica-install.log
  • /var/log/ipareplica-conncheck.log
  • /var/log/ipaclient-install.log
  • /var/log/httpd/error_log
  • /var/log/dirsrv/slapd-INSTANCE-NAME/access
  • /var/log/dirsrv/slapd-INSTANCE-NAME/errors
  • /var/log/ipaserver-install.log

副本安装进程还会将调试信息附加到副本所联系的 IdM 服务器 上的以下日志文件中:

  • /var/log/httpd/error_log
  • /var/log/dirsrv/slapd-INSTANCE-NAME/access
  • /var/log/dirsrv/slapd-INSTANCE-NAME/errors

每个日志文件的最后一行报告成功或失败,而 ERRORDEBUG 条目则提供额外的上下文。

22.2. 查看 IdM 副本安装错误

要解决 IdM 副本安装失败的问题,请查看新副本和服务器上安装错误日志文件末尾处的错误,并使用这些信息来解决任何相应的问题。

先决条件

  • 您必须具有 root 特权才能显示 IdM 日志文件中的内容。

流程

  1. 使用 tail 命令显示主日志文件 /var/log/ipareplica-install.log 中的最新错误。以下示例显示了最后 10 行。

    [user@replica ~]$ sudo tail -n 10 /var/log/ipareplica-install.log
    [sudo] password for user:
      func(installer)
    File "/usr/lib/python3.6/site-packages/ipaserver/install/server/replicainstall.py", line 424, in decorated
      func(installer)
    File "/usr/lib/python3.6/site-packages/ipaserver/install/server/replicainstall.py", line 785, in promote_check
      ensure_enrolled(installer)
    File "/usr/lib/python3.6/site-packages/ipaserver/install/server/replicainstall.py", line 740, in ensure_enrolled
      raise ScriptError("Configuration of client side components failed!")
    
    2020-05-28T18:24:51Z DEBUG The ipa-replica-install command failed, exception: ScriptError: Configuration of client side components failed!
    2020-05-28T18:24:51Z ERROR Configuration of client side components failed!
    2020-05-28T18:24:51Z ERROR The ipa-replica-install command failed. See /var/log/ipareplica-install.log for more information
    Copy to Clipboard
  2. 要以交互方式查看日志文件,请使用 less 工具打开日志文件的末尾,然后使用 箭头键来导航。

    [user@replica ~]$ sudo less -N +G /var/log/ipareplica-install.log
    Copy to Clipboard
  3. 可选:虽然 /var/log/ipareplica-install.log 是副本安装的主日志文件,您可以通过在副本和服务器上使用其他文件重复此查看过程来收集额外的故障排除信息。

    在副本上:

    [user@replica ~]$ sudo less -N +G /var/log/ipareplica-conncheck.log
    [user@replica ~]$ sudo less -N +G /var/log/ipaclient-install.log
    [user@replica ~]$ sudo less -N +G /var/log/httpd/error_log
    [user@replica ~]$ sudo less -N +G /var/log/dirsrv/slapd-INSTANCE-NAME/access
    [user@replica ~]$ sudo less -N +G /var/log/dirsrv/slapd-INSTANCE-NAME/errors
    [user@replica ~]$ sudo less -N +G /var/log/ipaserver-install.log
    Copy to Clipboard

    在服务器上:

    [user@server ~]$ sudo less -N +G /var/log/httpd/error_log
    [user@server ~]$ sudo less -N +G /var/log/dirsrv/slapd-INSTANCE-NAME/access
    [user@server ~]$ sudo less -N +G /var/log/dirsrv/slapd-INSTANCE-NAME/errors
    Copy to Clipboard

22.3. IdM 副本上的 CA 安装错误日志文件

在身份管理(IdM)副本上安装证书颁发机构(CA)服务会将调试信息附加到副本和与之通信的 IdM 服务器上的多个位置。

表 22.1. 在副本(按推荐的优先级顺序排列):
位置描述

/var/log/pki/pki-ca-spawn.$TIME_OF_INSTALLATION.log

pkispawn 安装进程的高级别问题和 Python 跟踪

journalctl -u pki-tomcatd@pki-tomcat output

pki-tomcatd@pki-tomcat 服务中的错误

/var/log/pki/pki-tomcat/ca/debug.$DATE.log

公钥基础设施(PKI)产品核心中的大型 JAVA 堆栈跟踪活动

/var/log/pki/pki-tomcat/ca/signedAudit/ca_audit

PKI 产品的审计日志

  • /var/log/pki/pki-tomcat/ca/system
  • /var/log/pki/pki-tomcat/ca/transactions
  • /var/log/pki/pki-tomcat/catalina.$DATE.log

用于服务主体、主机和其它使用证书实体的证书操作的低级调试数据

在由副本关联的服务器中:

  • /var/log/httpd/error_log 日志文件

在现有 IdM 副本上安装 CA 服务也会将调试信息写入以下日志文件中:

  • /var/log/ipareplica-ca-install.log 日志文件
注意

如果在安装可选 CA 组件时完整的 IdM 副本安装失败,则不会记录有关 CA 的详情;会在 /var/log/ipareplica-install.log 文件中记录一条消息,表示整个安装过程失败。查看上面列出的日志文件,以了解 CA 安装失败的具体详情。

唯一例外是您要安装 CA 服务,root CA 是外部 CA。如果来自外部 CA 的证书出现问题,则会在 /var/log/ipareplica-install.log 中记录错误。

22.4. 查看 IdM 副本中的 CA 安装错误

要解决 IdM CA 安装失败的问题,请查看 IdM 副本上 CA 安装错误日志文件末尾的错误,并使用这些信息来解决任何相应的问题。

先决条件

  • 您必须具有 root 特权才能显示 IdM 日志文件中的内容。

流程

  1. 要以交互方式查看日志文件,请使用 less 工具打开日志文件的末尾,并在搜索 ScriptError 条目时使用 kbd:[] 箭头键导航。以下示例将打开 /var/log/pki/pki-ca-spawn.$TIME_OF_INSTALLATION.log

    [user@server ~]$ sudo less -N +G /var/log/pki/pki-ca-spawn.20200527185902.log
    Copy to Clipboard
  2. 通过对所有 CA 安装错误日志文件重复此查看过程来收集额外的故障排除信息。

其他资源

22.5. 删除部分 IdM 副本安装

如果 IdM 副本安装失败,一些配置文件可能会遗留下来。额外尝试安装 IdM 副本可能会失败,安装脚本会报告 IPA 已配置:

带有现有部分 IdM 配置的系统示例

[root@server ~]# ipa-replica-install
Your system may be partly configured.
Run /usr/sbin/ipa-server-install --uninstall to clean up.

IPA server is already configured on this system.
If you want to reinstall the IPA server, please uninstall it first using 'ipa-server-install --uninstall'.
The ipa-replica-install command failed. See /var/log/ipareplica-install.log for more information
Copy to Clipboard

要解决这个问题,请从副本中卸载 IdM 软件,从 IdM 拓扑中删除副本,并重试安装过程。

先决条件

  • 您必须有 root 权限。

流程

  1. 在您要配置为 IdM 副本的主机上卸载 IdM 服务器软件。

    [root@replica ~]# ipa-server-install --uninstall
    Copy to Clipboard
  2. 在拓扑中的所有其他服务器上,使用 ipa server-del 命令删除对未正确安装的副本的任何引用。

    [root@other-replica ~]# ipa server-del replica.idm.example.com
    Copy to Clipboard
  3. 尝试安装副本。
  4. 如果您因为重复安装失败而无法安装 IdM 副本,请重新安装操作系统。

    安装 IdM 副本的要求之一是使用一个没有自定义的“干净”系统。失败的安装可能会因为意外修改系统文件而破坏主机的完整性。

其它资源

22.6. 解决无效凭证错误

如果 IdM 副本安装失败并显示 Invalid credentials 错误,则主机上的系统时钟可能彼此不同步:

[27/40]: setting up initial replication
Starting replication, please wait until this has completed.
Update in progress, 15 seconds elapsed
[ldap://server.example.com:389] reports: Update failed! Status: [49 - LDAP error: Invalid credentials]

[error] RuntimeError: Failed to start replication
Your system may be partly configured.
Run /usr/sbin/ipa-server-install --uninstall to clean up.

ipa.ipapython.install.cli.install_tool(CompatServerReplicaInstall): ERROR    Failed to start replication
ipa.ipapython.install.cli.install_tool(CompatServerReplicaInstall): ERROR    The ipa-replica-install command failed. See /var/log/ipareplica-install.log for more information
Copy to Clipboard

如果您使用 --no-ntp-N 选项在时钟不同步时尝试进行副本安装,则安装会失败,因为服务无法使用 Kerberos 进行身份验证。

要解决这个问题,同步两个主机上的时钟并重试安装过程。

先决条件

  • 您必须具有 root 权限才能修改系统时间。

流程

  1. 手动或使用 chronyd 同步系统时钟。

    手动同步

    在服务器上显示系统时间,并设置副本的时间与之相匹配。

    [user@server ~]$ date
    Thu May 28 21:03:57 EDT 2020
    
    [user@replica ~]$ sudo timedatectl set-time '2020-05-28 21:04:00'
    Copy to Clipboard
    • chronyd 同步

      请参阅 使用 Chrony 来配置和设置 chrony 工具的系统时间。

  2. 再次尝试 IdM 副本安装。

其他资源

第 23 章 卸载 IdM 副本

作为 IdM 管理员,您可以从拓扑中删除 RHEL 身份管理(IdM)副本。如需更多信息,请参阅 卸载 IdM 服务器

第 24 章 管理复制拓扑

您可以管理身份管理(IdM)域中服务器之间的复制。当您创建副本时,身份管理(IdM)会在初始服务器和副本之间创建一个复制协议。然后,复制的数据会存储在拓扑后缀中,当两个副本在它们的后缀之间有复制协议时,后缀会形成一个拓扑段。

24.1. IdM 副本之间的复制协议

当管理员基于现有服务器创建副本时,RHEL Identity Management (IdM)会在初始服务器和副本之间创建 复制协议。复制协议确保两个服务器之间不断复制数据和配置。

IdM 使用多读/写副本复制。在这种配置中,所有副本都加入到复制协议中接收并提供更新,因此被视为供应商和消费者。复制协议始终是强制的。

图 24.1. 服务器和副本协议

包含两组复制协议的两台服务器:一个数据复制协议,与目录服务器数据库相关联,以及一个与其证书系统数据相关的证书复制协议

IdM 使用两种复制协议:

  • 域复制协议 复制身份信息。
  • 证书复制协议 复制证书信息。

两个复制频道都是独立的。两个服务器可以有一类或两种类型的复制协议。例如,当服务器 A 和服务器 B 仅配置了域复制协议时,它们之间仅复制身份信息,而不复制证书信息。

24.2. 拓扑后缀

拓扑后缀 存储复制的数据。IdM 支持两种类型的拓扑后缀:domainca。每个后缀代表一个单独的服务器,即一个单独的复制拓扑。

配置复制协议时,它会在两个不同的服务器上加入同一类型的两个拓扑后缀。

后缀:dc=示例,dc=com

后缀包含与域相关的所有数据。

当两个副本在其 后缀之间具有复制协议时,它们共享目录数据,如用户、组和策略。

ca 后缀:o=ipaca

ca 后缀包含证书系统组件的数据。它仅存在于安装有证书颁发机构 (CA) 的服务器上。

当两个副本在其 ca 后缀之间具有复制协议时,它们会共享证书数据。

图 24.2. 拓扑后缀

拓扑后缀

在安装新副本时,ipa- replica-install 脚本会在两个服务器之间设置初始拓扑复制协议。

24.3. 拓扑片段

当两个副本在其后缀之间具有复制协议时,后缀组成一个 拓扑片段。每个拓扑段由一个 左节点和一个 右节点 组成。节点代表复制协议中加入的服务器。

IdM 中的拓扑片段始终是双向的。每个部分代表两种复制协议:从服务器 A 到服务器 B,从服务器 B 复制到服务器 A。因此数据会同时复制到服务器 A。

图 24.3. 拓扑片段

拓扑片段

24.4. 使用 Web UI 查看并修改复制拓扑的可视化表示

使用 Web UI,您可以查看、操作和转换复制拓扑的表示。Web UI 中的拓扑图显示域中服务器之间的关系。您可以通过按住并拖动鼠标来移动单个拓扑节点。

解读拓扑图

加入域复制协议的服务器通过圆形箭头连接。加入 CA 复制协议中的服务器通过蓝色箭头连接。

拓扑图示例:推荐的拓扑

以下推荐的拓扑示例显示了四个服务器的可能的推荐拓扑之一:每个服务器至少连接到两个其他服务器,并且多个服务器是 CA 服务器。

图 24.4. 推荐的拓扑示例

MNG 顶部 rec
拓扑图示例:不建议拓扑

在下面不鼓励的拓扑示例中,server1 是单点故障。所有其他服务器与此服务器具有复制协议,但任何其他服务器都不具有复制协议。因此,如果 server1 出现故障,所有其他服务器将被隔离。

避免创建如下拓扑:

图 24.5. 不推荐的拓扑示例: 单点故障

MNG 顶部

先决条件

  • 您以 IdM 管理员身份登录。

流程

  1. 选择 IPA ServerTopologyTopology Graph
  2. 更改拓扑:

    • 您可以使用鼠标左键移动拓扑图形节点:

      自定义图表 1
    • 您可以使用鼠标 wheel 缩放拓扑图:

      自定义图表 2
    • 您可以通过按鼠标左键移动拓扑图的画面:

      自定义图 3
  3. 如果您对拓扑进行任何没有立即反映在图形中的更改,点 Refresh

24.5. 使用 CLI 查看拓扑后缀

在复制协议中,拓扑后缀存储复制的数据。您可以使用 CLI 查看拓扑后缀。

步骤

  • 输入 ipa topologysuffix-find 命令显示拓扑后缀的列表:

    $ ipa topologysuffix-find
    ---------------------------
    2 topology suffixes matched
    ---------------------------
      Suffix name: ca
      Managed LDAP suffix DN: o=ipaca
    
      Suffix name: domain
      Managed LDAP suffix DN: dc=example,dc=com
    ----------------------------
    Number of entries returned 2
    ----------------------------
    Copy to Clipboard

24.6. 使用 CLI 查看拓扑段

在复制协议中,当两个副本在其后缀之间有复制协议时,后缀组成一个拓扑段。您可以使用 CLI 查看拓扑段。

步骤

  1. 输入 ipa topologysegment-find 命令显示为域或 CA 后缀配置的当前拓扑段。例如,对于域后缀:

    $ ipa topologysegment-find
    Suffix name: domain
    -----------------
    1 segment matched
    -----------------
      Segment name: server1.example.com-to-server2.example.com
      Left node: server1.example.com
      Right node: server2.example.com
      Connectivity: both
    ----------------------------
    Number of entries returned 1
    ----------------------------
    Copy to Clipboard

    在本例中,域相关数据仅在两个服务器之间复制:server1.example.comserver2.example.com

  2. 可选: 要只显示特定片段的详情,请输入 ipa topologysegment-show 命令:

    $ ipa topologysegment-show
    Suffix name: domain
    Segment name: server1.example.com-to-server2.example.com
      Segment name: server1.example.com-to-server2.example.com
      Left node: server1.example.com
      Right node: server2.example.com
      Connectivity: both
    Copy to Clipboard

24.7. 使用 Web UI 在两个服务器之间设置复制

使用 RHEL 身份管理(IdM) Web UI,您可以选择两个服务器并在它们之间创建新的复制协议。

先决条件

  • 您以 IdM 管理员身份登录。

步骤

  1. 在拓扑图中,将鼠标悬停在其中一个服务器节点上。

    图 24.6. 域或 CA 选项

    MNG 顶级域 ca
  2. 点击 或圆圈的 ca 部分,具体取决于您要创建的拓扑网类型。
  3. 在鼠标指针下会显示代表新复制协议的新箭头。将鼠标移到其他服务器节点,然后单击它。

    图 24.7. 创建新片段

    MNG 顶部拖动
  4. Add topology segment 窗口中,单击 Add 以确认新网段的属性。

两台服务器之间的新拓扑网段将它们加入到复制协议中。拓扑图现在显示更新的复制拓扑:

图 24.8. 创建新片段

MNG 前三个

24.8. 使用 Web UI 停止两个服务器之间的复制

使用 RHEL 身份管理(IdM) Web UI,您可以从服务器中删除复制协议。

先决条件

  • 您以 IdM 管理员身份登录。

步骤

  1. 单击代表您要删除的复制协议的箭头。这会突出显示箭头。

    图 24.9. 拓扑片段突出显示

    MNG 顶部亮点
  2. 删除
  3. Confirmation 窗口中,单击 OK

    IdM 删除了两台服务器之间的拓扑网段,这将删除它们的复制协议。拓扑图现在显示更新的复制拓扑:

    图 24.10. 已删除拓扑片段

    MNG 顶部删除片段

24.9. 使用 CLI 在两个服务器之间设置复制

您可以使用 ipa topologysegment-add 命令配置两个服务器之间的复制协议。

先决条件

  • 有 IdM 管理员凭证。

流程

  • 为两台服务器创建一个拓扑段。在提示时,提供:

    • 所需的拓扑后缀:domainca
    • 左节点和右节点,代表两台服务器
    • 可选:片段的自定义名称

      例如:

      $ ipa topologysegment-add
      Suffix name: domain
      Left node: server1.example.com
      Right node: server2.example.com
      Segment name [server1.example.com-to-server2.example.com]: new_segment
      ---------------------------
      Added segment "new_segment"
      ---------------------------
        Segment name: new_segment
        Left node: server1.example.com
        Right node: server2.example.com
        Connectivity: both
      Copy to Clipboard

      添加新片段在复制协议中加入服务器。

验证

  • 验证新段是否已配置:

    $ ipa topologysegment-show
    Suffix name: domain
    Segment name: new_segment
      Segment name: new_segment
      Left node: server1.example.com
      Right node: server2.example.com
      Connectivity: both
    Copy to Clipboard

24.10. 使用 CLI 停止两个服务器之间的复制

您可以使用 ipa topology segment-del 命令从命令行终止复制协议。

先决条件

  • 有 IdM 管理员凭证。

流程

  1. 可选:如果您不知道要删除的特定复制段的名称,请显示所有可用的片段。使用 ipa topologysegment-find 命令。出现提示时,请提供所需的拓扑后缀: domainca。例如:

    $ ipa topologysegment-find
    Suffix name: domain
    ------------------
    8 segments matched
    ------------------
      Segment name: new_segment
      Left node: server1.example.com
      Right node: server2.example.com
      Connectivity: both
    
    ...
    
    ----------------------------
    Number of entries returned 8
    ----------------------------
    Copy to Clipboard

    在输出中找到所需的段。

  2. 删除连接两个服务器的拓扑段:

    $ ipa topologysegment-del
    Suffix name: domain
    Segment name: new_segment
    -----------------------------
    Deleted segment "new_segment"
    -----------------------------
    Copy to Clipboard

    删除片段会移除复制协议。

验证

  • 验证段是否不再列出:

    $ ipa topologysegment-find
    Suffix name: domain
    ------------------
    7 segments matched
    ------------------
      Segment name: server2.example.com-to-server3.example.com
      Left node: server2.example.com
      Right node: server3.example.com
      Connectivity: both
    
    ...
    
    ----------------------------
    Number of entries returned 7
    ----------------------------
    Copy to Clipboard

24.11. 使用 Web UI 从拓扑中删除服务器

您可以使用 RHEL Identity Management (IdM) web 界面从拓扑中删除服务器。此操作不会从主机卸载服务器组件。

先决条件

  • 您以 IdM 管理员身份登录。
  • 您希望删除的服务器 并不是 唯一将其他服务器与拓扑中其余部分连接的服务器;这会导致其他服务器变为隔离状态,这是不允许的。
  • 要删除的服务器 不是 您的最后一个 CA 或 DNS 服务器。
警告

删除服务器是一项不当操作。如果您删除了服务器,在拓扑中重新引入它的唯一方法是在机器上安装新副本。

流程

  1. 选择 IPA 服务器拓扑IPA 服务器
  2. 单击您要删除的服务器的名称。

    图 24.11. 选择服务器

    MNG 顶部删除
  3. 单击 Delete Server

其他资源

24.12. 使用 CLI 从拓扑中删除服务器

您可以使用命令行从拓扑中删除 RHEL 身份管理(IdM)服务器。

先决条件

  • 有 IdM 管理员凭证。
  • 您希望删除的服务器 并不是 唯一将其他服务器与拓扑中其余部分连接的服务器;这会导致其他服务器变为隔离状态,这是不允许的。
  • 要删除的服务器 不是 您的最后一个 CA 或 DNS 服务器。
重要

删除服务器是一项不当操作。如果您删除了服务器,在拓扑中重新引入它的唯一方法是在机器上安装新副本。

流程

删除 server1.example.com

  1. 在另一台服务器上,运行 ipa server-del 命令来删除 server1.example.com。该命令删除指向服务器的所有拓扑片段:

    [user@server2 ~]$ ipa server-del
    Server name: server1.example.com
    Removing server1.example.com from replication topology, please wait...
    ----------------------------------------------------------
    Deleted IPA server "server1.example.com"
    ----------------------------------------------------------
    Copy to Clipboard
  2. 可选:在 server1.example.com 上,运行 ipa server-install --uninstall 命令来从机器中卸载服务器组件。

    [root@server1 ~]# ipa server-install --uninstall
    Copy to Clipboard

24.13. 删除过时的 RUV 记录

如果您从 IdM 拓扑中删除了一台服务器,而没有正确地删除其复制协议,则过时的副本更新向量(RUV)记录将保留在拓扑中的一个或多个剩余的服务器上。例如,可能会由于自动化而发生这种情况。这些服务器预期会从现在已删除的服务器接收更新。在这种情况下,您需要从剩余的服务器中清理过时的 RUV 记录。

先决条件

  • 有 IdM 管理员凭证。
  • 您知道哪些副本已损坏或已被错误地删除。

流程

  1. 使用 ipa-replica-manage list-ruv 命令列出 RUV 的详细信息。命令显示副本 ID:

    $ ipa-replica-manage list-ruv
    
    server1.example.com:389: 6
    server2.example.com:389: 5
    server3.example.com:389: 4
    server4.example.com:389: 12
    Copy to Clipboard
    重要

    ipa-replica-manage list-ruv 命令列出拓扑中的所有副本,而不仅仅是有故障或错误删除的副本。

  2. 使用 ipa-replica-manage clean-ruv 命令删除与指定副本关联的过时的 RUV。对具有过时 RUV 的每个副本 ID 重复此命令。例如,如果您知道 server1.example.comserver2.example.com 有故障或者错误地删除了副本:

    ipa-replica-manage clean-ruv 6
    ipa-replica-manage clean-ruv 5
    Copy to Clipboard
警告

使用 ipa-replica-manage clean-ruv 时要非常小心。对有效副本 ID 运行命令将破坏复制数据库中与该副本关联的所有数据。

如果发生这种情况,请使用 $ ipa-replica-manage re-initialize --from server1.example.com 从另一个副本重新初始化副本。

验证

  1. 再次运行 ipa-replica-manage list-ruv。如果命令不再显示任何损坏的 RUV,则记录已被成功清理。
  2. 如果命令仍然显示损坏的 RUV,则使用此任务手动清除它们:

    dn: cn=clean replica_ID, cn=cleanallruv, cn=tasks, cn=config
    objectclass: extensibleObject
    replica-base-dn: dc=example,dc=com
    replica-id: replica_ID
    replica-force-cleaning: no
    cn: clean replica_ID
    Copy to Clipboard

24.14. 使用 IdM Web UI 查看 IdM 拓扑中可用的服务器角色

根据 IdM 服务器中安装的服务,它可以执行各种 服务器角色。例如:

  • CA 服务器
  • DNS 服务器
  • 关键恢复机构(KRA)服务器.

流程

  • 有关支持的服务器角色的完整列表,请参阅 IPA 服务器TopologyServer Roles

    注意
    • 缺少 角色状态意味着拓扑中没有服务器执行该角色。
    • 启用 角色状态意味着拓扑中的一个或多个服务器正在执行该角色。

    图 24.12. Web UI 中的服务器角色

    服务器角色不存在

24.15. 使用 IdM CLI 查看 IdM 拓扑中可用的服务器角色

根据 IdM 服务器中安装的服务,它可以执行各种 服务器角色。例如:

  • CA 服务器
  • DNS 服务器
  • 关键恢复机构(KRA)服务器.

流程

  • 要显示拓扑中所有 CA 服务器和当前 CA 续订服务器:

    $ ipa config-show
      ...
      IPA masters: server1.example.com, server2.example.com, server3.example.com
      IPA CA servers: server1.example.com, server2.example.com
      IPA CA renewal master: server1.example.com
    Copy to Clipboard
  • 或者,要显示特定服务器(如 server.example.com)上启用的角色的列表 :

    $ ipa server-show
    Server name: server.example.com
      ...
      Enabled server roles: CA server, DNS server, KRA server
    Copy to Clipboard
  • 或者,使用 ipa server-find --servrole 命令搜索启用了特定服务器角色的所有服务器。例如,搜索所有 CA 服务器:

    $ ipa server-find --servrole "CA server"
    ---------------------
    2 IPA servers matched
    ---------------------
      Server name: server1.example.com
      ...
    
      Server name: server2.example.com
      ...
    ----------------------------
    Number of entries returned 2
    ----------------------------
    Copy to Clipboard

24.16. 将副本提升到 CA 续订服务器和 CRL 发布程序服务器

如果您的 IdM 部署使用嵌入式证书颁发机构(CA),其中一个 IdM CA 服务器充当 CA 续订服务器,负责管理 CA 子系统证书的续订服务器。其中一台 IdM CA 服务器也充当 IdM CRL 发布程序服务器,这是生成证书撤销列表的服务器。

默认情况下,CA 续订服务器和 CRL 发布者服务器角色安装在系统管理员使用 ipa-server-installipa-ca-install 命令在其上安装 CA 角色的第一个服务器上。但是,您可以将两个角色之一传输到启用了 CA 角色的任何其他 IdM 服务器。

先决条件

  • 有 IdM 管理员凭证。

24.17. 演示或提升隐藏副本

安装副本后,您可以配置副本是隐藏还是可见。

有关隐藏副本的详情,请参阅 隐藏副本模式

先决条件

流程

  • 要隐藏副本:

    # ipa server-state replica.idm.example.com --state=hidden
    Copy to Clipboard
  • 要使副本再次可见:

    # ipa server-state replica.idm.example.com --state=enabled
    Copy to Clipboard
  • 要查看拓扑中所有隐藏的副本的列表:

    # ipa config-show
    Copy to Clipboard

    如果所有副本都启用了,则命令输出不会提到隐藏的副本。

第 25 章 安装并运行 IdM Healthcheck 工具

了解有关 IdM Healthcheck 工具以及如何安装和运行它的更多信息。

25.1. IdM 中的 Healthcheck

Identity Management (IdM)中的 Healthcheck 命令行工具可帮助查找可能会影响 IdM 环境性能的问题。使用 Healthcheck,您可以预先识别问题,以便在它成为关键状态前更正它。

注意

您可以在不获取 Kerberos ticket 的情况下使用 Healthcheck。

模块是独立的

Healthcheck 由独立的模块组成,用于检查:

  • 复制问题
  • 证书有效期
  • 证书颁发机构基础架构问题
  • IdM 和 Active Directory 信任问题
  • 正确的文件权限和所有权设置

输出格式和目的地

您可以使用 output-type 选项为 Healthcheck 设置以下类型的输出类型:

  • JSON :JSON 格式的机器可读输出(默认)
  • human:人类可读的输出

您可以使用-- output-file 选项指定存储输出的文件。

结果

每个 Healthcheck 模块返回以下结果之一:

SUCCESS
该系统按预期配置。
WARNING
建议您监控或评估配置。
ERROR
该系统没有按预期配置。
CRITICAL
配置不如预期,可能会影响 IdM 部署的功能。

25.2. 安装 IdM Healthcheck

了解如何安装 IdM Healthcheck 工具。

先决条件

  • root 身份登录。

流程

  • 安装 ipa-healthcheck 软件包:

    [root@server ~]# dnf install ipa-healthcheck
    Copy to Clipboard

验证

  • 执行基本 Healthcheck 测试:

    [root@server ~]# ipa-healthcheck
    []
    Copy to Clipboard

    空方括号 [] 表示 IdM 安装的功能。

25.3. 手动运行 IdM Healthcheck

您可以使用以下方法之一执行 Healthcheck 测试:

本节论述了如何手动执行 Healthcheck 测试。

先决条件

流程

  1. 可选: 要显示所有可用 Healthcheck 测试列表,请输入:

    [root@server ~]# ipa-healthcheck --list-sources
    Copy to Clipboard
  2. 要运行 Healthcheck 工具,请输入:

    [root@server ~]# ipa-healthcheck
    Copy to Clipboard

第 26 章 使用 Ansible playbook 来安装身份管理服务器

了解如何使用 Ansible 将系统配置为 IdM 服务器。将系统配置为 IdM 服务器建立 IdM 域并让系统向 IdM 客户端提供 IdM 服务。您可以使用 freeipa.ansible_freeipa.ipaserver Ansible 角色来管理部署。

先决条件

  • 您了解了一般的 Ansible 和 IdM 概念。

26.1. Ansible 及其安装 IdM 的优点

Ansible 是一个自动化工具,用于配置系统、部署软件和执行滚动更新。Ansible 包含对 RHEL 身份管理(IdM)的支持,您可以使用 Ansible 角色自动执行安装任务,如 IdM 服务器、副本、客户端或整个 IdM 拓扑的设置。

使用 Ansible 安装 IdM 的优点

以下列表提供了使用 Ansible 安装身份管理与手动安装的优点。

  • 您不需要登录受管节点。
  • 您不需要配置每个主机上的设置来单独部署。反之,您可以有一个清单文件来部署完整的集群。
  • 您可以稍后重复将清单文件用于管理任务,例如添加用户和主机。即使与 IdM 相关的任务,也可以重复使用清单文件。

26.2. 安装 ansible-freeipa 软件包

按照以下步骤安装 ansible-freeipa 软件包,它为安装和管理 RHEL Identity Management (IdM)提供 Ansible 角色和模块。

先决条件

  • 确定控制器是一个带有有效订阅的 Red Hat Enterprise Linux 系统。否则,请参阅官方 Ansible 文档 安装指南 来获取替代安装说明。
  • 确保您可以通过 SSH 协议,从控制器访问受管节点。检查该受管节点是否已列在控制器的 /root/.ssh/known_hosts 文件中。

流程

在 Ansible 控制器上使用以下流程。

  • 安装 ansible-freeipa 软件包:

    # dnf install ansible-freeipa
    Copy to Clipboard

    角色和模块安装到 /usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/roles//usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/plugins/modules 目录中。

重要

ansible-freeipa rpm 现在只安装 freeipa.ansible_freeipa 集合。

要使用新集合,请将 freeipa.ansible_freeipa 前缀添加到角色和模块的名称中。使用完全限定名称来遵循 Ansible 建议。例如,要引用 ipahbacrule 模块,请使用 freeipa.ansible_freeipa.ipahbacrule

26.3. 在文件系统中的 Ansible 角色位置

默认情况下,ansible-freeipa 角色被安装到 /usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/roles/ 目录中。ansible-freeipa 软件包的结构如下:

  • /usr/share/ansible/collections/ansible_collections/ansible_freeipa/roles/ 目录在 Ansible 控制器上存储 ipaserver,ipareplica,ipaclient,ipasmartcardipabackup 角色。每个角色目录都会在 README.md Markdown 文件中存储有关角色的示例、基本概述、许可证和文档。

    [root@server]# ls -1 /usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/roles
    ipaclient
    ipareplica
    ipaserver
    Copy to Clipboard
  • /usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/ 目录将有关各个角色和拓扑的文档存储在 README.md Markdown 文件中。它还存储 playbook/ 子目录。

    [root@server]# ls -1 /usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/
    playbooks
    README-client.md
    README.md
    README-replica.md
    README-server.md
    README-topology.md
    Copy to Clipboard
  • /usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/ 目录存储示例 playbook:

    [root@server]# ls -1 /usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/
    install-client.yml
    install-cluster.yml
    install-replica.yml
    install-server.yml
    uninstall-client.yml
    uninstall-cluster.yml
    uninstall-replica.yml
    uninstall-server.yml
    Copy to Clipboard

26.4. 为带有集成 DNS 和集成 CA 作为根 CA 的部署设置参数

完成这个流程,来在使用 IdM 集成 DNS 解决方案的环境中为安装带有集成 CA 作为根 CA 的 IdM 服务器配置清单文件。

注意

此流程中的清单使用 INI 格式。或者,也可以使用 YAMLJSON 格式。

流程

  1. 创建一个 ~/MyPlaybooks/ 目录:

    $ mkdir MyPlaybooks
    Copy to Clipboard
  2. 创建一个 ~/MyPlaybooks/inventory 文件。
  3. 打开清单文件进行编辑。指定您要用作 IdM 服务器的主机的完全限定域名(FQDN)。确保 FQDN 满足以下条件:

    • 只允许字母数字字符和连字符(-)。例如,不允许使用下划线,这可能导致 DNS 失败。
    • 主机名必须都是小写。
  4. 指定 IdM 域和域信息。
  5. 通过添加以下选项来指定您要使用集成的 DNS:

    ipaserver_setup_dns=true
    Copy to Clipboard
  6. 指定 DNS 转发设置。选择以下选项之一:

    • 如果您希望安装程序使用 /etc/resolv.conf 文件中的转发器,请使用 ipaserver_auto_forwarders=true 选项。如果在 /etc/resolv.conf 文件中指定的名称服务器是 localhost 127.0.0.1 地址,或者位于虚拟专用网络中,且您使用的 DNS 服务器通常无法从公共互联网访问,则不要使用这个选项。
    • 使用 ipaserver_forwarders 选项手动指定您的转发器。安装过程将转发器 IP 地址添加到安装的 IdM 服务器上的 /etc/named.conf 文件中。
    • 使用 ipaserver_no_forwarders=true 选项配置要使用的根 DNS 服务器。

      注意

      如果没有 DNS 转发器,您的环境是隔离的,且您基础架构中来自其他 DNS 域的名称不能被解决。

  7. 指定 DNS 反向记录和区设置。从以下选项中选择:

    • 使用 ipaserver_allow_zone_overlap=true 选项允许创建(反向)区域,即使区域已可以解析。
    • 使用 ipaserver_reverse_zones 选项来手动指定反向区。
    • 如果您不希望安装程序创建反向 DNS 区域,请使用 ipaserver_no_reverse=true 选项。

      注意

      使用 IdM 管理反向区是可选的。您可以改为使用外部 DNS 服务来实现这一目的。

  8. 指定 adminDirectory Manager 的密码。使用 Ansible Vault 存储密码,并从 playbook 文件中引用 Vault 文件。或者,在清单文件中直接指定密码,这不太安全。
  9. 可选:指定一个要被 IdM 服务器使用的自定义 firewalld 区域。如果您没有设置自定义区,IdM 会将其服务添加到默认的 firewalld 区中。预定义的默认区是 public

    重要

    指定的 firewalld 区必须存在,并且是永久的。

    一个具有所需服务器信息的清单文件示例(不包括密码)

    [ipaserver]
    server.idm.example.com
    
    [ipaserver:vars]
    ipaserver_domain=idm.example.com
    ipaserver_realm=IDM.EXAMPLE.COM
    ipaserver_setup_dns=true
    ipaserver_auto_forwarders=true
    [...]
    Copy to Clipboard

    一个具有所需服务器信息的清单文件示例(包括密码)

    [ipaserver]
    server.idm.example.com
    
    [ipaserver:vars]
    ipaserver_domain=idm.example.com
    ipaserver_realm=IDM.EXAMPLE.COM
    ipaserver_setup_dns=true
    ipaserver_auto_forwarders=true
    ipaadmin_password=MySecretPassword123
    ipadm_password=MySecretPassword234
    
    [...]
    Copy to Clipboard

    一个具有自定义 firewalld 区域的清单文件示例

    [ipaserver]
    server.idm.example.com
    
    [ipaserver:vars]
    ipaserver_domain=idm.example.com
    ipaserver_realm=IDM.EXAMPLE.COM
    ipaserver_setup_dns=true
    ipaserver_auto_forwarders=true
    ipaadmin_password=MySecretPassword123
    ipadm_password=MySecretPassword234
    ipaserver_firewalld_zone=custom zone
    Copy to Clipboard

    使用存储在 Ansible Vault 文件中的 admin 和 Directory Manager 密码设置 IdM 服务器的 playbook 示例

    ---
    - name: Playbook to configure IPA server
      hosts: ipaserver
      become: true
      vars_files:
      - playbook_sensitive_data.yml
    
      roles:
      - role: freeipa.ansible_freeipa.ipaserver
        state: present
    Copy to Clipboard

    使用清单文件中的 admin 和 Directory Manager 密码来设置 IdM 服务器的 playbook 示例

    ---
    - name: Playbook to configure IPA server
      hosts: ipaserver
      become: true
    
      roles:
      - role: freeipa.ansible_freeipa.ipaserver
        state: present
    Copy to Clipboard

26.5. 为带有外部 DNS 和集成 CA 作为根 CA 的部署设置参数

完成这个流程,来为在使用外部 DNS 解决方案的环境中安装带有集成 CA 作为根 CA 的 IdM 服务器配置 inventory 文件。

注意

此流程中的清单文件使用 INI 格式。或者,也可以使用 YAMLJSON 格式。

流程

  1. 创建一个 ~/MyPlaybooks/ 目录:

    $ mkdir MyPlaybooks
    Copy to Clipboard
  2. 创建一个 ~/MyPlaybooks/inventory 文件。
  3. 打开清单文件进行编辑。指定您要用作 IdM 服务器的主机的完全限定域名(FQDN)。确保 FQDN 满足以下条件:

    • 只允许字母数字字符和连字符(-)。例如,不允许使用下划线,这可能导致 DNS 失败。
    • 主机名必须都是小写。
  4. 指定 IdM 域和域信息。
  5. 确保 ipaserver_setup_dns 选项被设为 no 或空缺。
  6. 指定 adminDirectory Manager 的密码。使用 Ansible Vault 存储密码,并从 playbook 文件中引用 Vault 文件。或者,在清单文件中直接指定密码,这不太安全。
  7. 可选:指定一个要被 IdM 服务器使用的自定义 firewalld 区域。如果您没有设置自定义区,IdM 会将其服务添加到默认的 firewalld 区中。预定义的默认区是 public

    重要

    指定的 firewalld 区必须存在,并且是永久的。

    一个具有所需服务器信息的清单文件示例(不包括密码)

    [ipaserver]
    server.idm.example.com
    
    [ipaserver:vars]
    ipaserver_domain=idm.example.com
    ipaserver_realm=IDM.EXAMPLE.COM
    ipaserver_setup_dns=no
    [...]
    Copy to Clipboard

    一个具有所需服务器信息的清单文件示例(包括密码)

    [ipaserver]
    server.idm.example.com
    
    [ipaserver:vars]
    ipaserver_domain=idm.example.com
    ipaserver_realm=IDM.EXAMPLE.COM
    ipaserver_setup_dns=no
    ipaadmin_password=MySecretPassword123
    ipadm_password=MySecretPassword234
    
    [...]
    Copy to Clipboard

    一个具有自定义 firewalld 区域的清单文件示例

    [ipaserver]
    server.idm.example.com
    
    [ipaserver:vars]
    ipaserver_domain=idm.example.com
    ipaserver_realm=IDM.EXAMPLE.COM
    ipaserver_setup_dns=no
    ipaadmin_password=MySecretPassword123
    ipadm_password=MySecretPassword234
    ipaserver_firewalld_zone=custom zone
    Copy to Clipboard

    使用存储在 Ansible Vault 文件中的 admin 和 Directory Manager 密码设置 IdM 服务器的 playbook 示例

    ---
    - name: Playbook to configure IPA server
      hosts: ipaserver
      become: true
      vars_files:
      - playbook_sensitive_data.yml
    
      roles:
      - role: freeipa.ansible_freeipa.ipaserver
        state: present
    Copy to Clipboard

    使用清单文件中的 admin 和 Directory Manager 密码来设置 IdM 服务器的 playbook 示例

    ---
    - name: Playbook to configure IPA server
      hosts: ipaserver
      become: true
    
      roles:
      - role: freeipa.ansible_freeipa.ipaserver
        state: present
    Copy to Clipboard

26.6. 使用 Ansible playbook 将集成 CA 的 IdM 服务器部署为 root CA

完成此流程,来使用 Ansible playbook 部署带有集成证书颁发机构(CA)作为根 CA 的 IdM 服务器。

先决条件

  • 受管节点是一个具有静态 IP 地址和可正常工作的软件包管理器的 Red Hat Enterprise Linux 10 系统。
  • 您可以通过选择以下流程之一来设置与您的场景相对应的参数:

流程

  1. 运行 Ansible playbook:

    $ ansible-playbook -i ~/MyPlaybooks/inventory ~/MyPlaybooks/install-server.yml
    Copy to Clipboard
  2. 选择以下选项之一:

    • 如果您的 IdM 部署使用外部 DNS:将包含在 /tmp/ipa.system.records.UFRPto.db 文件中的 DNS 资源记录添加到现有的外部 DNS 服务器中。更新 DNS 记录的过程因特定的 DNS 解决方案而异。

      ...
      Restarting the KDC
      Please add records in this file to your DNS system: /tmp/ipa.system.records.UFRBto.db
      Restarting the web server
      ...
      Copy to Clipboard
    重要

    在将 DNS 记录添加到现有 DNS 服务器之前,服务器安装不会完成。

    • 如果您的 IdM 部署使用集成的 DNS:

      • 将父域中的 DNS 委托程序添加到 IdM DNS 域。例如,如果 IdM DNS 域是 idm.example.com,请在 example.com 父域中添加一个名字服务器(NS)记录。

        重要

        每次安装 IdM DNS 服务器后都会重复这个步骤。

      • 将时间服务器的 _ntp._udp 服务(SRV)记录添加到您的 IdM DNS。IdM DNS 中新安装的 IdM 服务器的时间服务器的 SRV 记录可确保将来的副本和客户端安装会自动配置为与此主 IdM 服务器使用的时间服务器同步。

26.7. 为带有集成 DNS 和外部 CA 作为根 CA 的部署设置参数

完成此流程,来为在使用 IdM 集成的 DNS 解决方案的环境中安装带有外部 CA 作为根 CA 的 IdM 服务器配置清单文件。

注意

此流程中的清单文件使用 INI 格式。或者,也可以使用 YAMLJSON 格式。

流程

  1. 创建一个 ~/MyPlaybooks/ 目录:

    $ mkdir MyPlaybooks
    Copy to Clipboard
  2. 创建一个 ~/MyPlaybooks/inventory 文件。
  3. 打开清单文件进行编辑。指定您要用作 IdM 服务器的主机的完全限定域名(FQDN)。确保 FQDN 满足以下条件:

    • 只允许字母数字字符和连字符(-)。例如,不允许使用下划线,这可能导致 DNS 失败。
    • 主机名必须都是小写。
  4. 指定 IdM 域和域信息。
  5. 通过添加以下选项来指定您要使用集成的 DNS:

    ipaserver_setup_dns=true
    Copy to Clipboard
  6. 指定 DNS 转发设置。选择以下选项之一:

    • 如果您希望安装进程使用 /etc/resolv.conf 文件中的转发器,请使用 ipaserver_auto_forwarders=true 选项。如果 /etc/resolv.conf 文件中指定的名字服务器是 localhost 127.0.0.1 地址,或者如果您在虚拟私有网络中,并且您使用的 DNS 服务器通常无法从公共互联网访问,则不建议使用此选项。
    • 使用 ipaserver_forwarders 选项手动指定您的转发器。安装过程将转发器 IP 地址添加到安装的 IdM 服务器上的 /etc/named.conf 文件中。
    • 使用 ipaserver_no_forwarders=true 选项配置要使用的根 DNS 服务器。

      注意

      如果没有 DNS 转发器,您的环境是隔离的,且您基础架构中来自其他 DNS 域的名称不能被解决。

  7. 指定 DNS 反向记录和区设置。从以下选项中选择:

    • 使用 ipaserver_allow_zone_overlap=true 选项允许创建(反向)区域,即使区域已可以解析。
    • 使用 ipaserver_reverse_zones 选项来手动指定反向区。
    • 如果您不希望安装过程创建反向 DNS 区域,请使用 ipaserver_no_reverse=true 选项。

      注意

      使用 IdM 管理反向区是可选的。您可以改为使用外部 DNS 服务来实现这一目的。

  8. 指定 adminDirectory Manager 的密码。使用 Ansible Vault 存储密码,并从 playbook 文件中引用 Vault 文件。或者,在清单文件中直接指定密码,这不太安全。
  9. 可选:指定一个要被 IdM 服务器使用的自定义 firewalld 区域。如果您没有设置自定义区,IdM 会将其服务添加到默认的 firewalld 区。预定义的默认区是 public

    重要

    指定的 firewalld 区必须存在,并且是永久的。

    一个具有所需服务器信息的清单文件示例(不包括密码)

    [ipaserver]
    server.idm.example.com
    
    [ipaserver:vars]
    ipaserver_domain=idm.example.com
    ipaserver_realm=IDM.EXAMPLE.COM
    ipaserver_setup_dns=true
    ipaserver_auto_forwarders=true
    [...]
    Copy to Clipboard

    一个具有所需服务器信息的清单文件示例(包括密码)

    [ipaserver]
    server.idm.example.com
    
    [ipaserver:vars]
    ipaserver_domain=idm.example.com
    ipaserver_realm=IDM.EXAMPLE.COM
    ipaserver_setup_dns=true
    ipaserver_auto_forwarders=true
    ipaadmin_password=MySecretPassword123
    ipadm_password=MySecretPassword234
    
    [...]
    Copy to Clipboard

    一个具有自定义 firewalld 区域的清单文件示例

    [ipaserver]
    server.idm.example.com
    
    [ipaserver:vars]
    ipaserver_domain=idm.example.com
    ipaserver_realm=IDM.EXAMPLE.COM
    ipaserver_setup_dns=true
    ipaserver_auto_forwarders=true
    ipaadmin_password=MySecretPassword123
    ipadm_password=MySecretPassword234
    ipaserver_firewalld_zone=custom zone
    
    [...]
    Copy to Clipboard

  10. 为安装的第一个步骤创建一个 playbook。输入有关生成证书签名请求(CSR),并将其从控制器复制到受管节点的说明。

    ---
    - name: Playbook to configure IPA server Step 1
      hosts: ipaserver
      become: true
      vars_files:
      - playbook_sensitive_data.yml
      vars:
        ipaserver_external_ca: true
    
      roles:
      - role: freeipa.ansible_freeipa.ipaserver
        state: present
    
      post_tasks:
      - name: Copy CSR /root/ipa.csr from node to "{{ groups.ipaserver[0] + '-ipa.csr' }}"
        fetch:
          src: /root/ipa.csr
          dest: "{{ groups.ipaserver[0] + '-ipa.csr' }}"
          flat: true
    Copy to Clipboard
  11. 为安装的最后步骤创建另一个 playbook。

    ---
    - name: Playbook to configure IPA server Step 2
      hosts: ipaserver
      become: true
      vars_files:
      - playbook_sensitive_data.yml
      vars:
        ipaserver_external_cert_files:
          - "/root/servercert20240601.pem"
          - "/root/cacert.pem"
    
      pre_tasks:
      - name: Copy "{{ groups.ipaserver[0] }}-{{ item }}" to "/root/{{ item }}" on node
        ansible.builtin.copy:
          src: "{{ groups.ipaserver[0] }}-{{ item }}"
          dest: "/root/{{ item }}"
          force: true
        with_items:
        - servercert20240601.pem
        - cacert.pem
    
      roles:
      - role: freeipa.ansible_freeipa.ipaserver
        state: present
    Copy to Clipboard

26.8. 为带有外部 DNS 和外部 CA 作为根 CA 的部署设置参数

完成此流程,来为在使用外部 DNS 解决方案的环境中安装带有外部 CA 作为根 CA 的 IdM 服务器配置清单文件。

注意

此流程中的清单文件使用 INI 格式。或者,也可以使用 YAMLJSON 格式。

流程

  1. 创建一个 ~/MyPlaybooks/ 目录:

    $ mkdir MyPlaybooks
    Copy to Clipboard
  2. 创建一个 ~/MyPlaybooks/inventory 文件。
  3. 打开清单文件进行编辑。指定您要用作 IdM 服务器的主机的完全限定域名(FQDN)。确保 FQDN 满足以下条件:

    • 只允许字母数字字符和连字符(-)。例如,不允许使用下划线,这可能导致 DNS 失败。
    • 主机名必须都是小写。
  4. 指定 IdM 域和域信息。
  5. 确保 ipaserver_setup_dns 选项被设为 no 或空缺。
  6. 指定 adminDirectory Manager 的密码。使用 Ansible Vault 存储密码,并从 playbook 文件中引用 Vault 文件。或者,在清单文件中直接指定密码,这不太安全。
  7. 可选:指定一个要被 IdM 服务器使用的自定义 firewalld 区域。如果您没有设置自定义区,IdM 会将其服务添加到默认的 firewalld 区中。预定义的默认区是 public

    重要

    指定的 firewalld 区必须存在,并且是永久的。

    一个具有所需服务器信息的清单文件示例(不包括密码)

    [ipaserver]
    server.idm.example.com
    
    [ipaserver:vars]
    ipaserver_domain=idm.example.com
    ipaserver_realm=IDM.EXAMPLE.COM
    ipaserver_setup_dns=no
    [...]
    Copy to Clipboard

    一个具有所需服务器信息的清单文件示例(包括密码)

    [ipaserver]
    server.idm.example.com
    
    [ipaserver:vars]
    ipaserver_domain=idm.example.com
    ipaserver_realm=IDM.EXAMPLE.COM
    ipaserver_setup_dns=no
    ipaadmin_password=MySecretPassword123
    ipadm_password=MySecretPassword234
    
    [...]
    Copy to Clipboard

    一个具有自定义 firewalld 区域的清单文件示例

    [ipaserver]
    server.idm.example.com
    
    [ipaserver:vars]
    ipaserver_domain=idm.example.com
    ipaserver_realm=IDM.EXAMPLE.COM
    ipaserver_setup_dns=no
    ipaadmin_password=MySecretPassword123
    ipadm_password=MySecretPassword234
    ipaserver_firewalld_zone=custom zone
    
    [...]
    Copy to Clipboard

  8. 为安装的第一个步骤创建一个 playbook。输入有关生成证书签名请求(CSR),并将其从控制器复制到受管节点的说明。

    ---
    - name: Playbook to configure IPA server Step 1
      hosts: ipaserver
      become: true
      vars_files:
      - playbook_sensitive_data.yml
      vars:
        ipaserver_external_ca: true
    
      roles:
      - role: freeipa.ansible_freeipa.ipaserver
        state: present
    
      post_tasks:
      - name: Copy CSR /root/ipa.csr from node to "{{ groups.ipaserver[0] + '-ipa.csr' }}"
        fetch:
          src: /root/ipa.csr
          dest: "{{ groups.ipaserver[0] + '-ipa.csr' }}"
          flat: true
    Copy to Clipboard
  9. 为安装的最后步骤创建另一个 playbook。

    ---
    - name: Playbook to configure IPA server Step 2
      hosts: ipaserver
      become: true
      vars_files:
      - playbook_sensitive_data.yml
      vars:
        ipaserver_external_cert_files:
          - "/root/servercert20240601.pem"
          - "/root/cacert.pem"
    
      pre_tasks:
      - name: Copy "{{ groups.ipaserver[0] }}-{{ item }}" to "/root/{{ item }}" on node
        ansible.builtin.copy:
          src: "{{ groups.ipaserver[0] }}-{{ item }}"
          dest: "/root/{{ item }}"
          force: true
        with_items:
        - servercert20240601.pem
        - cacert.pem
    
      roles:
      - role: freeipa.ansible_freeipa.ipaserver
        state: present
    Copy to Clipboard

26.9. 使用 Ansible playbook 将外部 CA 部署 IdM 服务器作为 root CA

完成此流程,来使用 Ansible playbook 部署具有外部证书颁发机构(CA)作为根 CA 的 IdM 服务器。

先决条件

  • 受管节点是一个具有静态 IP 地址和可正常工作的软件包管理器的 Red Hat Enterprise Linux 10 系统。
  • 您可以通过选择以下流程之一来设置与您的场景相对应的参数:

流程

  1. 使用安装第一步的说明运行 Ansible playbook,如 install-server-step1.yml

    $ ansible-playbook --vault-password-file=password_file -v -i ~/MyPlaybooks/inventory ~/MyPlaybooks/install-server-step1.yml
    Copy to Clipboard
  2. 在控制器上找到 ipa.csr 证书签名请求文件,并提交给外部的 CA。
  3. 将外部 CA 签名的 IdM CA 证书放在控制器文件系统中,以便下一步中的 playbook 可以找到它。
  4. 使用安装最后一步的说明运行 Ansible playbook,如 install-server-step2.yml

    $ ansible-playbook -v -i ~/MyPlaybooks/inventory ~/MyPlaybooks/install-server-step2.yml
    Copy to Clipboard
  5. 选择以下选项之一:

    • 如果您的 IdM 部署使用外部 DNS:将包含在 /tmp/ipa.system.records.UFRPto.db 文件中的 DNS 资源记录添加到现有的外部 DNS 服务器中。更新 DNS 记录的过程因特定的 DNS 解决方案而异。

      ...
      Restarting the KDC
      Please add records in this file to your DNS system: /tmp/ipa.system.records.UFRBto.db
      Restarting the web server
      ...
      Copy to Clipboard
    重要

    在将 DNS 记录添加到现有 DNS 服务器之前,服务器安装不会完成。

    • 如果您的 IdM 部署使用集成的 DNS:

      • 将父域中的 DNS 委托程序添加到 IdM DNS 域。例如,如果 IdM DNS 域是 idm.example.com,请在 example.com 父域中添加一个名字服务器(NS)记录。

        重要

        每次安装 IdM DNS 服务器后都会重复这个步骤。

      • 将时间服务器的 _ntp._udp 服务(SRV)记录添加到您的 IdM DNS。IdM DNS 中新安装的 IdM 服务器的时间服务器的 SRV 记录可确保将来的副本和客户端安装会自动配置为与此主 IdM 服务器使用的时间服务器同步。

26.10. 使用 Ansible playbook 卸载 IdM 服务器

注意

在现有的 RHEL Identity Management (IdM)部署中, 副本和 服务器是交换的术语。

完成此流程,使用 Ansible playbook 来卸载 IdM 副本。在本例中:

  • server123.idm.example.com 卸载 IdM 配置。
  • server123.idm.example.com 和关联的主机条目从 IdM 拓扑中删除。

先决条件

  • 在控制节点上:

    • 您在使用 Ansible 版本 2.15 或更高版本。
    • 已安装 freeipa.ansible_freeipa 集合。
    • 示例假定在 ~/MyPlaybooks/ 目录中,您已创建了一个具有 IdM 服务器的完全限定域名(FQDN)的 Ansible 清单文件
    • 示例假定 secret.yml Ansible vault 存储了您的 ipaadmin_password,并且您可以访问存储了保护 secret.yml 文件的密码的文件。
  • 目标节点(这是执行 freeipa.ansible_freeipa 模块的节点)是作为 IdM 客户端、服务器或副本的 IdM 域的一部分。
  • 在受管节点上:

    • 系统在 RHEL 10 上运行。

流程

  1. 使用以下内容创建 Ansible playbook 文件 uninstall-server.yml

    ---
    - name: Playbook to uninstall an IdM replica
      hosts: ipaserver
      become: true
    
      roles:
      - role: freeipa.ansible_freeipa.ipaserver
        ipaserver_remove_from_domain: true
        state: absent
    Copy to Clipboard

    ipaserver_remove_from_domain 选项从 IdM 拓扑中取消主机注册。

    注意

    如果 server123.idm.example.com 的删除导致断开连接的拓扑,则删除操作将被中止。如需更多信息,请参阅 如果这会导致断开连接的拓扑,请使用 Ansible playbook 卸载 IdM 服务器

  2. 卸载副本:

    $ ansible-playbook --vault-password-file=password_file -v -i <path_to_inventory_directory>/inventory <path_to_playbooks_directory>/uninstall-server.yml
    Copy to Clipboard
  3. 确保指向 server123.idm.example.com 的所有名称服务器(NS) DNS 记录都从 DNS 区域中删除。无论您使用由 IdM 还是外部 DNS 管理的集成 DNS,这个均适用。

26.11. 如果这会导致断开连接的拓扑,请使用 Ansible playbook 卸载 IdM 服务器

注意

在现有的 RHEL Identity Management (IdM)部署中, 副本和 服务器是交换的术语。

完成此流程,使用 Ansible playbook 卸载 IdM 副本,即使这会导致断开连接的 IdM 拓扑。在示例中,server456.idm.example.com 用于从拓扑中删除副本和 FQDN 为 server123.idm.example.com server123.idm.example.com 的相关的主机条目,使某些副本与 server456.idm.example.com 以及拓扑的其余部分断开连接。

注意

如果只使用 remove_server_from_domain 从拓扑中删除副本不会导致断开连接的拓扑,则不需要其他选项。如果结果是断开连接的拓扑,您必须指定您要保留域的哪一部分。在这种情况下,您必须执行以下操作:

  • 指定 ipaserver_remove_on_server 值。
  • ipaserver_ignore_topology_disconnect 设置为 True。

先决条件

  • 在控制节点上:

    • 您在使用 Ansible 版本 2.15 或更高版本。
    • 已安装 freeipa.ansible_freeipa 集合。
    • 示例假定在 ~/MyPlaybooks/ 目录中,您已创建了一个具有 IdM 服务器的完全限定域名(FQDN)的 Ansible 清单文件
    • 示例假定 secret.yml Ansible vault 存储了您的 ipaadmin_password,并且您可以访问存储了保护 secret.yml 文件的密码的文件。
  • 目标节点(这是执行 freeipa.ansible_freeipa 模块的节点)是作为 IdM 客户端、服务器或副本的 IdM 域的一部分。
  • 在受管节点上:

    • 系统在 RHEL 10 上运行。

流程

  1. 使用以下内容创建 Ansible playbook 文件 uninstall-server.yml

    ---
    - name: Playbook to uninstall an IdM replica
      hosts: ipaserver
      become: true
    
      roles:
      - role: freeipa.ansible_freeipa.ipaserver
        ipaserver_remove_from_domain: true
        ipaserver_remove_on_server: server456.idm.example.com
        ipaserver_ignore_topology_disconnect: true
        state: absent
    Copy to Clipboard
    注意

    正常情况下,如果删除 server123 不会造成断开连接的拓扑:如果 ipaserver_remove_on_server 的值没有设置,则 server123 上的副本会使用 server123 的复制协议自动删除。

  2. 卸载副本:

    $ ansible-playbook --vault-password-file=password_file -v -i <path_to_inventory_directory>/hosts <path_to_playbooks_directory>/uninstall-server.yml
    Copy to Clipboard
  3. 确保指向 server123.idm.example.com 的所有名称服务器(NS) DNS 记录都从 DNS 区域中删除。无论您使用由 IdM 还是外部 DNS 管理的集成 DNS,这个均适用。

第 27 章 使用 Ansible playbook 安装身份管理副本

使用 Ansible 将系统配置为 IdM 副本,来将其注册到 IdM 域,并让系统使用域中 IdM 服务器上的 IdM 服务。

部署是由 ipareplica Ansible 角色来管理的。该角色可以使用自动发现模式来识别 IdM 服务器、域和其他设置。但是,如果您在类似层的模式中部署多个副本,且不同的副本组在不同时间被部署,则您必须为每个组定义特定的服务器或副本。

先决条件

27.1. 指定用于安装 IdM 副本的基础、服务器和客户端变量

完成此流程来配置用于安装 IdM 副本的清单文件。

先决条件

  • 您已配置了 Ansible 控制节点以满足以下要求:

    • 您使用 Ansible 版本 2.14 或更高版本。
    • 您已在 Ansible 控制器上安装了 freeipa.ansible_freeipa 集合。

流程

  1. 打开清单文件进行编辑。指定要成为 IdM 副本的主机的完全限定域名(FQDN)。FQDN 必须是有效的 DNS 名称:

    • 仅允许数字、字母字符和连字符(-)。例如,不允许使用下划线,这可能导致 DNS 失败。
    • 主机名必须都是小写。

      仅定义副本 FQDN 的简单清单主机文件示例

      [ipareplicas]
      replica1.idm.example.com
      replica2.idm.example.com
      replica3.idm.example.com
      [...]
      Copy to Clipboard

      如果 IdM 服务器已经部署,且在 IdM DNS 区中正确设置了 SRV 记录,那么脚本会自动发现所有其他必需的值。

  2. 可选:根据您设计拓扑的方式在清单文件中提供额外的信息:

    场景 1

    如果要避免自动发现,并且使 [ipareplicas] 部分中列出的所有副本都使用特定的 IdM 服务器,请在清单文件的 [ipaservers] 部分中设置服务器。

    带有 IdM 服务器 FQDN 和定义的副本的清单主机文件示例

    [ipaservers]
    server.idm.example.com
    
    [ipareplicas]
    replica1.idm.example.com
    replica2.idm.example.com
    replica3.idm.example.com
    [...]
    Copy to Clipboard

    场景 2

    或者,如果要避免自动发现,但希望使用特定服务器部署特定副本,请在清单文件的 ipareplicas 部分中单独为特定副本设置服务器。

    为特定副本定义了特定 IdM 服务器的清单文件示例

    [ipaservers]
    server.idm.example.com
    replica1.idm.example.com
    
    [ipareplicas]
    replica2.idm.example.com
    replica3.idm.example.com ipareplica_servers=replica1.idm.example.com
    Copy to Clipboard

    在上例中,replica3.idm.example.com 使用已部署的 replica1.idm.example.com 作为其复制源。

    场景 3

    如果您在一个批处理中部署多个副本,并且时间是您关心的问题,那么多层副本部署可能对您很有用。在清单文件中定义特定的副本组,如 [ipareplicas_tier1][ipareplicas_tier2],并在 install-replica.yml playbook 中为每个组设计单独的 play。

    定义了副本层的清单文件示例

    [ipaservers]
    server.idm.example.com
    
    [ipareplicas_tier1]
    replica1.idm.example.com
    
    [ipareplicas_tier2]
    replica2.idm.example.com \ ipareplica_servers=replica1.idm.example.com,server.idm.example.com
    Copy to Clipboard

    将使用 ipareplica_servers 中的第一个条目。第二个条目将用作回退选项。在使用多个层来部署 IdM 副本时,您必须在 playbook 中有单独的任务来首先从 tier1 部署副本,然后从 tier2 部署副本。

    为不同副本组使用不同 play 的 playbook 文件示例

    ---
    - name: Playbook to configure IPA replicas (tier1)
      hosts: ipareplicas_tier1
      become: true
    
      roles:
      - role: freeipa.ansible_freeipa.ipareplica
        state: present
    
    - name: Playbook to configure IPA replicas (tier2)
      hosts: ipareplicas_tier2
      become: true
    
      roles:
      - role: freeipa.ansible_freeipa.ipareplica
        state: present
    Copy to Clipboard

  3. 可选:提供有关 firewalld 和 DNS 的额外信息:

    场景 1

    如果您希望副本使用指定的 firewalld 区域,如一个内部区域,您可以在清单文件中指定它。如果您没有设置自定义区,IdM 会将其服务添加到默认的 firewalld 区中。预定义的默认区是 public

    重要

    指定的 firewalld 区必须存在,并且是永久的。

    带有自定义 firewalld 区域的简单清单主机文件示例

    [ipaservers]
    server.idm.example.com
    
    [ipareplicas]
    replica1.idm.example.com
    replica2.idm.example.com
    replica3.idm.example.com
    [...]
    
    [ipareplicas:vars]
    ipareplica_firewalld_zone=custom zone
    Copy to Clipboard

    场景 2

    如果您希望副本托管 IdM DNS 服务,请将 ipareplica_setup_dns=true 行添加到 [ipareplicas:vars] 部分中。另外,请指定您是否要使用每服务器 DNS 转发器:

    • 要配置每服务器转发器,请将 ipareplica_forwarders 变量和字符串列表添加到 [ipareplicas:vars] 部分,例如:ipareplica_forwarders=192.0.2.1,192.0.2.2
    • 若要配置无每服务器转发器,请将以下行添加到 [ipareplicas:vars] 部分中:ipareplica_no_forwarders=true
    • 要根据副本的 /etc/resolv.conf 文件中列出的转发器配置每服务器转发器,请将 ipareplica_auto_forwarders 变量添加到 [ipareplicas:vars] 部分。

    带有在副本上设置 DNS 和每个服务器转发器的指令的清单文件示例

    [ipaservers]
    server.idm.example.com
    
    [ipareplicas]
    replica1.idm.example.com
    replica2.idm.example.com
    replica3.idm.example.com
    [...]
    
    [ipareplicas:vars]
    ipareplica_setup_dns=true
    ipareplica_forwarders=192.0.2.1,192.0.2.2
    Copy to Clipboard

    场景 3

    使用 ipaclient_configure_dns_resolveipaclient_dns_servers 选项指定 DNS 解析器,以简化集群部署。这在您的 IdM 部署使用集成的 DNS 时特别有用:

    指定 DNS 解析器的清单文件片段:

    [...]
    [ipaclient:vars]
    ipaclient_configure_dns_resolver=true
    ipaclient_dns_servers=192.168.100.1
    Copy to Clipboard

    注意

    ipaclient_dns_servers 列表必须仅包含 IP 地址。主机名不允许。

27.2. 使用 Ansible playbook 指定用于安装 IdM 副本的凭证

完成这个步骤来配置安装 IdM 副本的授权。

先决条件

  • 您已配置了 Ansible 控制节点以满足以下要求:

    • 您在使用 Ansible 版本 2.15 或更高版本。
    • 已安装 freeipa.ansible_freeipa 集合。
    • 示例假定在 ~/MyPlaybooks/ 目录中,您已创建了一个具有 IdM 服务器的完全限定域名(FQDN)的 Ansible 清单文件
    • 示例假定 secret.yml Ansible vault 存储了您的 ipaadmin_password,并且您可以访问存储了保护 secret.yml 文件的密码的文件。
  • 目标节点(这是执行 freeipa.ansible_freeipa 模块的节点)是作为 IdM 客户端、服务器或副本的 IdM 域的一部分。

流程

  1. 指定 授权部署副本的用户的密码,如 IdM admin

    • 使用 Ansible Vault 来存储密码,并从 playbook 文件(如 install-replica.yml)中引用 Vault 文件:

      使用来自清单文件和 Ansible Vault 文件中的密码的主体的 playbook 文件示例

      - name: Playbook to configure IPA replicas
        hosts: ipareplicas
        become: true
        vars_files:
        - playbook_sensitive_data.yml
      
        roles:
        - role: freeipa.ansible_freeipa.ipareplica
          state: present
      Copy to Clipboard

      有关如何使用 Ansible Vault 的详细信息,请参阅官方 Ansible Vault 文档。

    • 直接在清单文件中提供 admin 的凭证不太安全。请在清单文件的 [ipareplicas:vars] 部分中使用 ipaadmin_password 选项。然后,清单文件和 install-replica.yml playbook 文件类似如下:

      清单 hosts.replica 文件示例

      [...]
      [ipareplicas:vars]
      ipaadmin_password=Secret123
      Copy to Clipboard

      使用清单文件中的主体和密码的 playbook 示例

      - name: Playbook to configure IPA replicas
        hosts: ipareplicas
        become: true
      
        roles:
        - role: freeipa.ansible_freeipa.ipareplica
          state: present
      Copy to Clipboard

    • 或者,在清单文件中提供授权直接部署副本的另一个用户的凭证也不太安全。要指定不同的授权用户,请使用 ipaadmin_principal 选项作为用户名,使用 ipaadmin_password 选项作为密码。然后,清单文件和 install-replica.yml playbook 文件类似如下:

      清单 hosts.replica 文件示例

      [...]
      [ipareplicas:vars]
      ipaadmin_principal=my_admin
      ipaadmin_password=my_admin_secret123
      Copy to Clipboard

      使用清单文件中的主体和密码的 playbook 示例

      - name: Playbook to configure IPA replicas
        hosts: ipareplicas
        become: true
      
        roles:
        - role: freeipa.ansible_freeipa.ipareplica
          state: present
      Copy to Clipboard

注意

在安装 IdM 副本时,检查提供的 Kerberos 主体是否有所需的权限,也可以扩展来检查用户 ID 覆盖。因此,您可以使用配置为充当 IdM 管理员的 AD 管理员的凭证来部署副本。

27.3. 使用 Ansible playbook 部署 IdM 副本

完成此流程,使用 Ansible playbook 来部署 IdM 副本。

先决条件

流程

  • 运行 Ansible playbook:

    $ ansible-playbook -i ~/MyPlaybooks/inventory ~/MyPlaybooks/install-replica.yml
    Copy to Clipboard

后续步骤

27.4. 使用 Ansible playbook 卸载一个 IdM 副本

注意

在现有的 RHEL Identity Management (IdM)部署中, 副本和 服务器是交换的术语。有关如何卸载 IdM 服务器的详情,请参考 使用 Ansible playbook 卸载 IdM 服务器使用 Ansible playbook 卸载 IdM 服务器,即使这会导致断开连接的拓扑

第 28 章 使用 Ansible playbook 安装身份管理客户端

了解如何使用 Ansible 将系统配置为身份管理(IdM)客户端。将系统配置为 IdM 客户端将其注册到 IdM 域中,并让系统在域中的 IdM 服务器中使用 IdM 服务。

部署是由 ipaclient Ansible 角色来管理的。默认情况下,该角色使用 autodiscovery 模式来识别 IdM 服务器、域和其他设置。角色可以被修改为使用 Ansible playbook 使用指定的设置,例如在清单文件中。

先决条件

  • 您已在 Ansible 控制节点上安装了 ansible-freeipa 软件包。
  • 您在使用 Ansible 版本 2.15 或更高版本。
  • 您了解了一般的 Ansible 和 IdM 概念。

28.1. 为自动发现客户端安装模式设置清单文件的参数

要使用 Ansible playbook 安装 RHEL 身份管理(IdM)客户端,请在清单文件中配置目标主机参数,如清单 :

  • 有关主机的信息
  • 任务的授权

根据您拥有的清单插件,清单文件可以采用多种格式。INI 格式是 Ansible 的默认值之一,如下例中使用。

注意

要在 RHEL 中将智能卡与图形用户界面搭配使用,请确保在 Ansible playbook 中包含 ipaclient_mkhomedir 变量。

流程

  1. 打开 inventory 文件进行编辑。
  2. 指定要成为 IdM 客户端的主机的完全限定主机名(FQDN)。完全限定域名必须是有效的 DNS 名称:

    • 仅允许数字、字母字符和连字符(-)。例如,不允许使用下划线,这可能导致 DNS 失败。
    • 主机名必须都是小写。不允许使用大写字母。

    如果在 IdM DNS 区中正确设置了 SRV 记录,该脚本会自动发现所有其他必要的值。

    只带有客户端 FQDN 定义的简单的清单主机文件示例

    [ipaclients]
    client.idm.example.com
    [...]
    Copy to Clipboard

  3. 指定注册客户端的凭证。可用的验证方法如下:

    • 注册 客户端的用户权限的密码。这是默认选项。

      • 使用 Ansible Vault 来存储密码,并从 playbook 文件(如 install-client.yml)中引用 Vault 文件:

        使用来自清单文件和 Ansible Vault 文件中的密码的主体的 playbook 文件示例

        - name: Playbook to configure IPA clients with username/password
          hosts: ipaclients
          become: true
          vars_files:
          - playbook_sensitive_data.yml
        
          roles:
          - role: freeipa.ansible_freeipa.ipaclient
            state: present
        Copy to Clipboard

      • inventory/hosts 文件的 [ipaclients:vars] 部分中使用 ipaadmin_password 选项来提供 admin 的凭证不太安全。或者,指定不同的授权用户,请使用 ipaadmin_principal 选项作为用户名,使用 ipaadmin_password 选项作为密码。然后,inventory/hosts 清单文件和 install-client.yml playbook 文件类似如下:

        清单主机文件示例

        [...]
        [ipaclients:vars]
        ipaadmin_principal=my_admin
        ipaadmin_password=Secret123
        Copy to Clipboard

        使用清单文件中的主体和密码的 Playbook 示例

        - name: Playbook to unconfigure IPA clients
          hosts: ipaclients
          become: true
        
          roles:
          - role: freeipa.ansible_freeipa.ipaclient
            state: true
        Copy to Clipboard

    • 之前的注册的 客户端 keytab ,如果其仍然可用。

      如果系统之前作为身份管理客户端注册,则可以使用这个选项。要使用此身份验证方法,请取消 #ipaclient_keytab 选项的注释,指定存储 keytab 的文件的路径,例如在 inventory/hosts[ipaclient:vars] 部分。

    • 在注册过程中生成的随机一次性密码 (OTP)。要使用此身份验证方法,请在清单文件中使用 ipaclient_use_otp=true 选项。例如,您可以取消 inventory/hosts 文件的 [ipaclients:vars] 部分中的 ipaclient_use_otp=true 选项的注释。请注意,对于 OTP,还必须指定以下选项之一:

      • 授权注册客户端的用户的密码 ,例如,为 inventory/hosts 文件的 [ipaclients:vars] 部分的 ipaadmin_password 提供值。
      • admin keytab,例如,为 inventory/hosts[ipaclients:vars] 部分中的 ipaadmin_keytab 提供值。
  4. 可选:使用 ipaclient_configure_dns_resolveipaclient_dns_servers 选项(如果可用)指定 DNS 解析器来简化集群部署。这在您的 IdM 部署使用集成的 DNS 时特别有用:

    指定 DNS 解析器的清单文件片段:

    [...]
    [ipaclients:vars]
    ipaadmin_password: "{{ ipaadmin_password }}"
    ipaclient_domain=idm.example.com
    ipaclient_configure_dns_resolver=true
    ipaclient_dns_servers=192.168.100.1
    Copy to Clipboard

    注意

    ipaclient_dns_servers 列表必须仅包含 IP 地址。主机名不允许。

  5. 您还可以指定 ipaclient_subid: true 选项,使为 IdM 级别上的 IdM 用户配置了子范围。

28.2. 当在客户端安装过程中无法自动发现时设置清单文件的参数

要使用 Ansible playbook 安装身份管理客户端,请在清单文件中配置目标主机参数,如 inventory/hosts

  • 有关主机、IdM 服务器和 IdM 域或 IdM 领域的信息
  • 任务的授权

根据您拥有的清单插件,清单文件可以采用多种格式。INI 格式是 Ansible 的默认值之一,如下例中使用。

注意

要在 RHEL 中将智能卡与图形用户界面搭配使用,请确保在 Ansible playbook 中包含 ipaclient_mkhomedir 变量。

流程

  1. 指定要成为 IdM 客户端的主机的完全限定主机名(FQDN)。完全限定域名必须是有效的 DNS 名称:

    • 仅允许数字、字母字符和连字符(-)。例如,不允许使用下划线,这可能导致 DNS 失败。
    • 主机名必须都是小写。不允许使用大写字母。
  2. inventory/hosts 文件的相关部分中指定其他选项:

    • [ipaservers] 部分中服务器的 FQDN,用于指示客户端将注册到哪个 IdM 服务器
    • 以下两个选项之一:

      • [ipaclients:vars] 部分中的 ipaclient_domain 选项,用来指示客户端将注册到的 IdM 服务器的 DNS 域名
      • [ipaclients:vars] 部分中的 ipaclient_realm 选项,用于指示 IdM 服务器控制的 Kerberos 域的名称

        带有客户端 FQDN、服务器 FQDN 和定义的域的清单主机文件示例

        [ipaclients]
        client.idm.example.com
        
        [ipaservers]
        server.idm.example.com
        
        [ipaclients:vars]
        ipaclient_domain=idm.example.com
        [...]
        Copy to Clipboard

  3. 指定注册客户端的凭证。可用的验证方法如下:

    • 注册 客户端的用户权限的密码。这是默认选项。

      • 使用 Ansible Vault 来存储密码,并从 playbook 文件(如 install-client.yml)中引用 Vault 文件:

        使用来自清单文件和 Ansible Vault 文件中的密码的主体的 playbook 文件示例

        - name: Playbook to configure IPA clients with username/password
          hosts: ipaclients
          become: true
          vars_files:
          - playbook_sensitive_data.yml
        
          roles:
          - role: freeipa.ansible_freeipa.ipaclient
            state: present
        Copy to Clipboard

    • 不太安全的是,使用 inventory/hosts 文件的 [ipaclients:vars] 部分中的 ipaadmin_password 选项提供 admin 的凭证。或者,指定不同的授权用户,请使用 ipaadmin_principal 选项作为用户名,使用 ipaadmin_password 选项作为密码。install-client.yml playbook 文件类似如下:

      清单主机文件示例

      [...]
      [ipaclients:vars]
      ipaadmin_principal=my_admin
      ipaadmin_password=Secret123
      Copy to Clipboard

      使用清单文件中的主体和密码的 Playbook 示例

      - name: Playbook to unconfigure IPA clients
        hosts: ipaclients
        become: true
      
        roles:
        - role: freeipa.ansible_freeipa.ipaclient
          state: true
      Copy to Clipboard

    • 之前注册的客户端 keytab,如果仍然可用:

      如果系统之前作为身份管理客户端注册,则可以使用这个选项。要使用此身份验证方法,请取消 ipaclient_keytab 选项的注释,指定存储 keytab 的文件的路径,例如在 inventory/hosts[ipaclient:vars] 部分。

    • 在注册过程中生成的随机一次性密码 (OTP)。要使用此身份验证方法,请在清单文件中使用 ipaclient_use_otp=true 选项。例如,您可以取消 inventory/hosts 文件的 [ipaclients:vars] 部分中的 #ipaclient_use_otp=true 选项的注释。请注意,对于 OTP,还必须指定以下选项之一:

      • 授权注册客户端的用户的密码 ,例如,为 inventory/hosts 文件的 [ipaclients:vars] 部分的 ipaadmin_password 提供值。
      • admin keytab,例如,为 inventory/hosts[ipaclients:vars] 部分中的 ipaadmin_keytab 提供值。
  4. 您还可以指定 ipaclient_subid: true 选项,使为 IdM 级别上的 IdM 用户配置了子范围。

28.3. 使用 Ansible playbook 进行 IdM 客户端注册的授权选项

您可以使用以下任一方法授权 IdM 客户端注册:

  • 一个随机的一次性密码(OTP)+ 管理员密码
  • 一个随机的一次性密码(OTP)+ admin keytab
  • 之前注册中的客户端 keytab
  • 授权注册客户端的用户 (admin) 的密码存储在清单文件中
  • 授权注册客户端的用户(admin) 的密码存储在 Ansible vault 中

在 IdM 客户端安装之前,可以由 IdM 管理员生成 OTP。在这种情况下,除 OTP 本身以外,您不需要用于安装的任何凭证。

以下是用于这些方法的清单文件示例:

表 28.1. 清单文件示例
授权选项清单文件

一个随机的一次性密码(OTP)+ 管理员密码

[ipaclients:vars]
ipaadmin_password=Secret123
ipaclient_use_otp=true
Copy to Clipboard

一个随机的一次性密码(OTP)

[ipaclients:vars]
ipaclient_otp=<W5YpARl=7M.>
Copy to Clipboard

这个场景假定 OTP 已在安装前由 IdM admin 生成。

一个随机的一次性密码(OTP)+ admin keytab

[ipaclients:vars]
ipaadmin_keytab=/root/admin.keytab
ipaclient_use_otp=true
Copy to Clipboard

之前注册的客户端 keytab

[ipaclients:vars]
ipaclient_keytab=/root/krb5.keytab
Copy to Clipboard

admin 用户的密码存储在清单文件中

[ipaclients:vars]
ipaadmin_password=Secret123
Copy to Clipboard

admin 用户的密码存储在 Ansible vault 文件中

[ipaclients:vars]
[...]
Copy to Clipboard

如果您使用存储在 Ansible vault 文件中的 admin 用户的密码,则相应的 playbook 文件必须有一个额外的 vars_files 指令:

表 28.2. 用户密码存储在 Ansible vault 中
Inventory 文件Playbook 文件
[ipaclients:vars]
[...]
Copy to Clipboard
- name: Playbook to configure IPA clients
  hosts: ipaclients
  become: true
  vars_files:
  - ansible_vault_file.yml

  roles:
  - role: freeipa.ansible_freeipa.ipaclient
    state: present
Copy to Clipboard

在上述所有其他授权场景中,基本的 playbook 文件类似如下:

- name: Playbook to configure IPA clients
  hosts: ipaclients
  become: true

  roles:
  - role: freeipa.ansible_freeipa.ipaclient
    state: true
Copy to Clipboard
注意

在上述两个 OTP 授权场景中,使用 kinit 命令在第一个指定或发现的 IdM 服务器上发生管理员 TGT 的请求。因此,不需要对 Ansible 控制节点进行额外的修改。

28.4. 使用 Ansible playbook 部署 IdM 客户端

完成此流程,使用 Ansible playbook 在 IdM 环境中部署 IdM 客户端。

先决条件

流程

  • 运行 Ansible playbook:

    $ ansible-playbook -v -i ~/MyPlaybooks/inventory ~/MyPlaybooks/install-client.yml
    Copy to Clipboard

28.5. 在 Ansible 中使用一次性密码方法来安装 IdM 客户端

您可以为 RHEL Identity Management (IdM)中的新主机生成一次性密码(OTP),并使用它来将系统注册到 IdM 域中。此流程描述了在一台 IdM 主机上为其生成一个 OTP 后,如何使用 Ansible 来安装 IdM 客户端。

如果机构中存在具有不同特权的两个系统管理员,则这个安装 IdM 客户端的方法非常方便:

  • 一个有 IdM 管理员凭证。
  • 另一个有所需的 Ansible 凭证,包括对要成为 IdM 客户端的主机的 root 访问权限。

IdM 管理员执行流程的第一部分,其中 OTP 密码已生成。Ansible 管理员执行流程的剩余部分,其中 OTP 用于安装 IdM 客户端。

先决条件

  • 您有 IdM admin 凭证或至少 Host Enrollment 特权以及在 IdM 中添加 DNS 记录的权限。
  • 您已在 Ansible 受管节点上配置了一个用户升级方法,以允许您安装 IdM 客户端。
  • 如果您的 Ansible 控制节点在 RHEL 8.7 或更早版本上运行,则您必须能够在 Ansible 控制节点上安装软件包。
  • 您已配置了 Ansible 控制节点以满足以下要求:

    • 您在使用 Ansible 版本 2.15 或更高版本。
    • 已安装 freeipa.ansible_freeipa 集合。
    • 示例假定在 ~/MyPlaybooks/ 目录中,您已创建了一个具有 IdM 服务器的完全限定域名(FQDN)的 Ansible 清单文件
    • 示例假定 secret.yml Ansible vault 存储了您的 ipaadmin_password,并且您可以访问存储了保护 secret.yml 文件的密码的文件。
  • 目标节点(这是执行 freeipa.ansible_freeipa 模块的节点)是作为 IdM 客户端、服务器或副本的 IdM 域的一部分。
  • 受管节点是一个具有静态 IP 地址和可正常工作的软件包管理器的 Red Hat Enterprise Linux 10 系统。

流程

  1. 以具有 Host Enrollment 特权和添加 DNS 记录权限的 IdM 用户的身份 SSH 到 IdM 主机:

    $ ssh admin@server.idm.example.com
    Copy to Clipboard
  2. 为新客户端生成一个 OTP:

    [admin@server ~]$ ipa host-add client.idm.example.com --ip-address=172.25.250.11 --random
     --------------------------------------------------
     Added host "client.idm.example.com"
     --------------------------------------------------
      Host name: client.idm.example.com
      Random password: W5YpARl=7M.n
      Password: True
      Keytab: False
      Managed by: server.idm.example.com
    Copy to Clipboard

    --ip-address=<your_host_ip_address> 选项将主机添加到具有指定 IP 地址的 IdM DNS 中。

  3. 退出 IdM 主机:

    $ exit
    logout
    Connection to server.idm.example.com closed.
    Copy to Clipboard
  4. 在 ansible 控制器上,更新清单文件以包含随机密码:

    [...]
    [ipaclients]
    client.idm.example.com
    
    [ipaclients:vars]
    ipaclient_domain=idm.example.com
    ipaclient_otp=W5YpARl=7M.n
    [...]
    Copy to Clipboard
  5. 运行 playbook 来安装客户端:

    $ ansible-playbook -i inventory install-client.yml
    Copy to Clipboard

28.6. Ansible 安装后测试 RHEL 身份管理客户端

命令行(CLI)告知您 ansible-playbook 命令成功,但您也可以进行自己的测试。

要测试 RHEL 身份管理客户端是否可以获取服务器上定义的用户的信息,请检查您是否能够解析服务器上定义的用户。例如,检查默认的 admin 用户:

[user@client1 ~]$ id admin
uid=1254400000(admin) gid=1254400000(admins) groups=1254400000(admins)
Copy to Clipboard

要测试身份验证是否正常工作,请 su - 为另一个已存在的 IdM 用户:

[user@client1 ~]$ su - idm_user
Last login: Thu Oct 18 18:39:11 CEST 2018 from 192.168.122.1 on pts/0
[idm_user@client1 ~]$
Copy to Clipboard

28.7. 使用 Ansible playbook 卸载 IdM 客户端

完成此流程,使用 Ansible playbook 将主机卸载为 IdM 客户端。

先决条件

  • IdM 管理员凭证。
  • 受管节点是一个具有静态 IP 地址的 Red Hat Enterprise Linux 10 系统。

流程

  • 运行带有卸载客户端指令的 Ansible playbook ,如 uninstall-client.yml

    $ ansible-playbook -v -i ~/MyPlaybooks/inventory ~/MyPlaybooks/uninstall-client.yml
    Copy to Clipboard
重要

卸载客户端只从主机中删除基本的 IdM 配置,但会在主机上保留配置文件,以防您决定重新安装客户端。另外,卸载有以下限制:

  • 它不会从 IdM LDAP 服务器中删除客户端主机条目。卸载仅是将主机取消注册。
  • 它不会从 IdM 中删除任何位于客户端的服务。
  • 它不会从 IdM 服务器中删除客户端的 DNS 条目。
  • 它不会删除 /etc/krb5.keytab 之外的 keytab 的旧主体。

请注意,卸载会删除 IdM CA 为主机发布的所有证书。

第 29 章 在 IdM 中使用 DoT 保护 DNS

您可以通过启用使用 DNS-over-TLS (DoT)的加密的 DNS (eDNS)来保护身份管理(IdM)部署中的 DNS 流量。您可以加密 DNS 客户端和 IdM DNS 服务器之间的所有 DNS 查询和响应。

重要

IdM 中的加密 DNS 只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。

有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围

29.1. IdM 中加密的 DNS

使用 TLS (DoT)的 DNS 加密 DNS (eDNS)加密 IdM DNS 客户端和服务器之间的所有 DNS 查询和响应。IdM 将 unbound 服务配置为客户端上的本地缓存解析器,并使用 BIND 服务来接收服务器上的 DoT 请求。

默认情况下,IdM 使用 relaxed DNS 策略,如果 DoT 不可用,它允许回退到未加密的 DNS。使用 放松 策略时,IdM 客户端和副本会在安装过程中自动检测支持 DoT 的 DNS 服务器。

对于仅限加密的通信,您可以配置 --dns-policy 强制 选项。此设置严格要求 DoT 进行所有 DNS 解析,并拒绝任何未加密的请求。在安装前,您必须手动配置客户端和服务器系统来信任 IdM 服务器的 DoT 证书,并使用它进行 eDNS 解析。

IdM 提供可选集成的 DNS 服务器。当您使用集成的 DNS 服务器时,IdM 会在修改拓扑时自动管理 SRV 和其他服务记录。如果您需要 DNS 视图等高级功能,您可以在外部 DNS 服务器上手动管理 DNS 记录。集成的 IdM DNS 不是一个通用的 DNS 解决方案。

当您为 IdM 服务器、副本和客户端设置 eDNS 时,您可以使用 IdM 证书颁发机构(CA)服务进行证书管理,或者提供自己的证书。如果没有提供证书,IdM CA 会自动为 DNS 服务生成并分配 TLS 证书。

29.2. 安装配置为使用 eDNS 的 IdM 服务器

您可以使用 ipa-server-install 工具执行非交互式安装来安装启用了 DoT 的 IdM 服务器。这个步骤描述了如何使用集成的 DNS 服务使用 强制 策略配置 DoT。如果您需要 放松 的策略,您可以跳过为 DoT 单独配置客户端和副本的步骤,因为 IdM 服务器自动发现它们。

您可以使用集成 IdM 证书颁发机构(CA)发布的证书,或者提供外部 CA 发布的自定义证书。如果没有提供证书,IdM CA 会在安装过程中自动发布 DoT 证书。

先决条件

流程

  1. 系统防火墙 中添加 dns-over-tls 服务,为 DoT 流量打开端口 853/TCP :

    # firewall-cmd --add-service=dns-over-tls
    Copy to Clipboard
  2. 可选: 要为外部证书颁发机构发布的 DoT 使用自定义 PEM 格式的证书和密钥,请创建这些文件:

    $ openssl req \
      -newkey rsa:2048 \
      -nodes \
      -keyout /etc/pki/tls/certs/privkey.pem \
      -x509 \
      -days 36500 \
      -out /etc/pki/tls/certs/certificate.pem \
      -subj "/C=<country_code>/ST=<state>/L=<location>/O=<organization>/OU=<organizational_unit>/CN=<idm_server_fqdn>/emailAddress=<email>" && \
      chown named:named /etc/pki/tls/certs/privkey.pem /etc/pki/tls/certs/certificate.pem
    Copy to Clipboard
  3. 安装带有集成 DNS 的 IdM 服务器:
注意

如果您不严格要求 DoT,可以省略 --dns-policy 选项。然后,安装程序使用默认的 relaxed 策略。

  • 要使用外部发布的密钥和证书安装 IdM 服务器,请指定证书和密钥路径:

    # ipa-server-install --setup-dns --dns-over-tls --dot-forwarder "<server_ip>#<dns_server_hostname>" --dns-policy enforced --dns-over-tls-cert /etc/pki/tls/certs/certificate.pem --dns-over-tls-key /etc/pki/tls/certs/privkey.pem --no-dnssec-validation --auto-reverse --domain <domain_name> --realm <realm_name> --hostname <idm_server_fqdn> -p <admin_password> -a <admin_password> -U
    Copy to Clipboard
  • 要安装带有集成 IdM CA 的 IdM 服务器,请运行以下命令:

    # ipa-server-install --setup-dns --dns-over-tls --dot-forwarder "<server_ip>#<dns_server_hostname>" --dns-policy enforced --no-dnssec-validation --auto-reverse --domain <domain_name> --realm <realm_name> --hostname <idm_server_fqdn> -p <admin_password> -a <admin_password> -U
    Copy to Clipboard

故障排除

  1. unbound 服务启用详细的日志记录:

    # unbound-control verbosity 3
    Copy to Clipboard
  2. 重启 unbound 服务以应用更新的配置:

    # systemctl restart unbound
    Copy to Clipboard
  3. 监控 unbound 服务的实时日志:

    $ journalctl -u unbound -f
    Copy to Clipboard

29.3. 将客户端和副本系统配置为只使用 DoT

要强制实施 DoT 通信,您必须将客户端和副本系统配置为使用支持 DoT 的解析器。您必须更新 NetworkManager 中的 DNS 设置以启用 eDNS 通信。只有在将- -dns-policy 设置为 强制 时才需要此配置。

先决条件

流程

  1. 将 IdM 服务器的 DoT 证书复制到客户端和服务器系统中。

    $ scp /etc/pki/tls/certs/bind_dot.crt <username>@<ip>:/etc/pki/ca-trust/source/anchors/
    Copy to Clipboard
  2. 更新系统范围的信任存储配置:

    # update-ca-trust extract
    Copy to Clipboard
  3. 在客户端和服务器系统中安装 dnsconfd 软件包:

    # dnf install dnsconfd
    Copy to Clipboard
  4. 在您的系统中为 DoT 生成默认配置文件:

    dnsconfd config install
    Copy to Clipboard
  5. 启用 dnsconfd 服务:

    # systemctl enable --now dnsconfd
    Copy to Clipboard
  6. 重新载入 NetworkManager 以应用配置:

    # nmcli g reload
    Copy to Clipboard
  7. 在 NetworkManager 中配置系统的 DNS 设置。

    # nmcli device modify <device_name> ipv4.dns dns+tls://<idm_server_ip>
    
    Connection successfully reapplied to device '<device_name>'.
    Copy to Clipboard

29.4. 安装配置为使用 eDNS 的 IdM 客户端

您可以通过执行非互动安装来安装启用了 DNS-over-TLS (DoT)的 IdM 客户端。此设置应用 强制的 DoT 策略,并要求客户端只使用 eDNS 查询。

先决条件

流程

  • 安装启用了 DoT 的 IdM 客户端:

    # ipa-client-install --domain <domain_name> --dns-over-tls -p admin --password <admin_password> -U
    Copy to Clipboard

验证

  1. 在 IdM 客户端上,查看 cat /etc/unbound/unbound.conf

    $ cat /etc/unbound/unbound.conf
    Copy to Clipboard
  2. 验证配置是否包含 IdM 服务器的 IP 地址和主机名。

故障排除

  1. 在 IdM 客户端上,运行 DNS 查询来触发流量:

    $ dig <domain_name>
    Copy to Clipboard
  2. 查看 IdM 服务器上的日志,以验证查询是否已通过 DoT 路由。

29.5. 安装配置为使用 eDNS 的 IdM 副本

您可以在 IdM 服务器启用了 DoT 的环境中安装带有 eDNS 的 IdM 副本。

当您使用集成 DNS 服务安装副本时,副本使用与 IdM 服务器相同的配置。它运行 BIND 来处理传入的 DNS 查询,包括加密查询,并使用 unbound 进行传出加密 DNS 流量。

当您在没有集成 DNS 服务的情况下安装副本时,副本会继承客户端配置。它使用带有 DoT forwarder 的 unbound 将加密的 DNS 查询发送到 IdM DNS 服务器。

先决条件

流程

  1. 系统防火墙 中添加 dns-over-tls 服务,为 DoT 流量打开端口 853/TCP :

    # firewall-cmd --add-service=dns-over-tls
    Copy to Clipboard
  2. 根据您要副本管理 DNS 记录,选择以下之一:

    • 安装带有集成 DNS 的 IdM 副本:

      # ipa-replica-install --setup-dns --dns-over-tls --dot-forwarder <server_ip>#<dns_server_hostname>
      Copy to Clipboard
    • 安装没有集成 DNS 的 IdM 副本:

      # ipa-replica-install --dns-over-tls
      Copy to Clipboard

验证

  • 在 IdM 服务器上,列出拓扑中的所有副本:

    # ipa-replica-manage list-ruv
    Copy to Clipboard

29.6. 配置现有的 IdM DNS 服务器以使用 eDNS

您可以通过重新配置集成的 DNS 服务,在现有身份管理(IdM)服务器上启用 DNS-over-TLS (DoT)。使用带有 DoT 特定选项的 ipa-dns-install 工具来更新 DNS 配置,而无需重新安装服务器。

先决条件

  • 有到 IdM 服务器的 root 访问权限。
  • DNS 已安装在 IdM 服务器上。

流程

  1. 可选:验证您的 IdM 服务器是否使用集成的 DNS:

    $ ipa server-role-find --role 'DNS server'
    ---------------------
    1 server role matched
    ---------------------
      Server name: server.idm.example.com
      Role name: DNS server
      Role status: enabled
    ----------------------------
    Number of entries returned 1
    ----------------------------
    Copy to Clipboard
  2. 更新集成的 DNS 服务以启用 DoT 并配置 DoT 策略和转发器:

    # ipa-dns-install --dns-over-tls --dot-forwarder "<server_ip>#<dns_server_hostname>" --dns-policy enforced -U
    Copy to Clipboard
  3. 系统防火墙 中添加 dns-over-tls 服务,为 DoT 流量打开端口 853/TCP :

    # firewall-cmd --add-service=dns-over-tls
    Copy to Clipboard

验证

  • 验证防火墙是否允许 DoT 流量:

    # firewall-cmd --list-services
    Copy to Clipboard

29.7. ipa-server-installipa-dns-install的 dot 配置选项

了解在 IdM 部署中启用 eDNS 的可用配置选项。您可以使用相同的选项,使用 ipa-server-install 在新的 IdM 服务器安装过程中启用 eDNS,或使用 ipa-dns-install 命令修改现有安装。

  • --dns-over-tls 启用 DoT
  • --dot-forwarder 使用 the- dot-forwarder < server_ip_1> <dns_ server_hostname_1>--dot-forwarder &lt; server_ip_2> <dns_server_hostname_2> 格式指定 上游 DoT 服务器
  • --dns-over-tls-key--dns-over-tls-cert 来配置自定义密钥和证书
  • --dns-policy 设置 DNS 安全策略

    • --dns-policy=relaxed 允许加密(DoT)和未加密的 DNS 查询。系统尝试使用 DoT,但如果 DoT 不可用,则回退到未加密的 DNS。这是默认策略。
    • --dns-policy=enforced 只需要加密的 DNS 通信。系统严格强制执行 DoT,并拒绝任何不支持加密的 DNS 解析,包括从 IdM 客户端和副本发现。

第 30 章 在现有 IdM 服务器上安装 DNS

在最初没有安装的 RHEL 身份管理(IdM)服务器上安装 DNS 服务。

先决条件

流程

  1. 可选:在 IdM 服务器上,验证 DNS 尚未安装:

    # ipa server-role-show server.idm.example.com
    Role name: DNS server
      Server name: server.idm.example.com
      Role name: DNS server
      Role status: absent
    Copy to Clipboard

    输出确认服务器上没有 IdM DNS 。

  2. 下载 ipa-dns-server 软件包及其依赖项:

    # dnf install ipa-server-dns
    Copy to Clipboard
  3. 在 IdM 服务器上,启动脚本来在服务器上安装 DNS:

    # ipa-dns-install
    Copy to Clipboard
    1. 脚本提示每台服务器的 DNS 转发器。

      Do you want to configure DNS forwarders? [yes]:
      Copy to Clipboard
      • 要配置每台服务器的 DNS 转发器,请输入 yes,然后按照命令行中的说明操作。安装过程会将转发器 IP 地址添加到 IdM LDAP。

        • 有关转发策略默认设置,请参阅 ipa-dns -install (1)手册页中的--forward-policy描述。
      • 如果您不想使用 DNS 正向解析,请输入 no

        如果没有 DNS 转发器,您 IdM 域中的主机将不能解析来自基础架构中其他的、内部的、DNS 域的名称。主机将只剩下公共 DNS 服务器来解析其 DNS 查询。

    2. 脚本会提示检查是否需要配置与服务器关联的 IP 地址的任何 DNS 反向(PTR)记录。

      Do you want to search for missing reverse zones? [yes]:
      Copy to Clipboard

      如果您运行搜索并发现丢失了反向区,脚本会询问您是否创建反向区以及 PTR 记录。

      Do you want to create reverse zone for IP 192.0.2.1 [yes]:
      Please specify the reverse zone name [2.0.192.in-addr.arpa.]:
      Using reverse zone(s) 2.0.192.in-addr.arpa.
      Copy to Clipboard
      注意

      使用 IdM 管理反向区是可选的。您可以改为使用外部 DNS 服务来实现这一目的。

第 31 章 从 IdM 服务器卸载集成的 IdM DNS 服务

如果您在身份管理(IdM)部署中有多个带有集成的 DNS 的服务器,您可能决定从其中一个服务器中删除集成的 DNS 服务。为此,您必须首先在其上重新安装 IdM 之前完全停用 IdM 服务器,这次没有集成的 DNS。

注意

虽然您可以将 DNS 角色添加到 IdM 服务器,但 IdM 不提供一种从 IdM 服务器中只删除 DNS 角色的方法:ipa-dns-install 命令没有 --uninstall 选项。

先决条件

  • 您已在 IdM 服务器上安装了 DNS。
  • 这不是您的 IdM 拓扑中最后一个集成的 DNS 服务。

流程

  1. 识别冗余 DNS 服务,并按照在托管此服务的 IdM 副本上 卸载 IdM 服务器 中的流程操作。
  2. 在同一个主机上,按照 没有集成的 DNS 中,有一个集成的 CA 作为 root CA没有集成 DNS,有一个外部 CA 作为 root CA 中的流程操作,具体取决于您的用例。

第 32 章 在没有 CA 的部署中将 IdM CA 服务添加到 IdM 服务器

如果您之前安装了没有证书颁发机构(CA)组件的 RHEL Identity Management (IdM)域,您可以使用 ipa-ca-install 命令将 IdM CA 服务添加到域中。根据您的要求,您可以选择以下选项之一:

注意

有关支持的 CA 配置的详情,请参阅 规划您的 CA 服务

32.1. 将第一个 IdM CA 作为 root CA 安装到现有 IdM 域中

如果您之前在没有证书颁发机构(CA)组件的情况下安装了 RHEL 身份管理(IdM),则随后您可以在 IdM 服务器上安装 CA。按照以下流程,在 idmserver 服务器上安装一个不隶属于任何外部 root CA 的 IdM CA。

先决条件

  • 您在 idmserver 上具有 root 权限。
  • IdM 服务器安装在 idmserver 上。
  • 您的 IdM 部署没有安装 CA。
  • 您知道 IdM 目录管理器 的密码。

流程

  1. idmserver 上,安装 IdM 证书服务器 CA:

    [root@idmserver ~] ipa-ca-install
    Copy to Clipboard
  2. 在拓扑中的每个 IdM 主机上,运行 ipa-certupdate 工具来使用 IdM LDAP 中的新证书的信息更新主机。

    重要

    如果在生成 IdM CA 证书后不运行 ipa-certupdate,则证书不会分发到其他 IdM 机器。

32.2. 将第一个将外部 CA 作为 root CA 的 IdM CA 安装到现有 IdM 域中

如果您之前在没有证书颁发机构(CA)组件的情况下安装了 RHEL 身份管理(IdM),则随后您可以在 IdM 服务器上安装 CA。按照以下流程,在 idmserver 服务器上安装一个 IdM CA,该 CA 隶属于外部 root CA,在 CA 之间有 0 个或多个中间 CA。

先决条件

  • 您在 idmserver 上具有 root 权限。
  • IdM 服务器安装在 idmserver 上。
  • 您的 IdM 部署没有安装 CA。
  • 您知道 IdM 目录管理器 的密码。

流程

  1. 开始安装:

    [root@idmserver ~] ipa-ca-install --external-ca
    Copy to Clipboard
  2. 等待命令行通知您证书签名请求(CSR)已保存。
  3. 将 CSR 提交给外部 CA。
  4. 将发布的证书复制到 IdM 服务器。
  5. 通过将证书和外部 CA 文件的路径添加到 ipa-ca-install 来继续安装:

    [root@idmserver ~]# ipa-ca-install --external-cert-file=/root/master.crt --external-cert-file=/root/ca.crt
    Copy to Clipboard
  6. 在拓扑中的每个 IdM 主机上,运行 ipa-certupdate 工具来使用 IdM LDAP 中的新证书的信息更新主机。

    重要

    在生成 IdM CA 证书后无法运行 ipa-certupdate 意味着证书不会被分发到其他 IdM 机器。

第 33 章 在带有 CA 的部署中将 IdM CA 服务添加到 IdM 服务器

如果您的 RHEL 身份管理(IdM)环境已安装 IdM 证书颁发机构(CA)服务,但特定的 IdM 服务器 idmserver 安装为没有 CA 的 IdM 副本,您可以使用 ipa-ca-install 命令将 CA 服务添加到 idmserver 中。

注意

对于以下场景,这个流程是相同的:

  • IdM CA 是一个 root CA。
  • IdM CA 隶属于一个外部 root CA。

先决条件

  • 您在 idmserver 上具有 root 权限。
  • IdM 服务器安装在 idmserver 上。
  • 您的 IdM 部署已在另一个 IdM 服务器上安装了 CA。
  • 您知道 IdM 目录管理器 的密码。

流程

  • idmserver 上,安装 IdM 证书服务器 CA:

    [root@idmserver ~] ipa-ca-install
    Copy to Clipboard

第 34 章 从 IdM 服务器卸载 IdM CA 服务

如果您在拓扑中有超过四个带有 CA 角色的 RHEL 身份管理(IdM)副本,并且因为冗余证书复制而导致性能问题,请从 IdM 副本中删除冗余 CA 服务实例。要做到这一点,您必须首先完全弃用受影响的 IdM 副本,然后在它们上重新安装 IdM,而无需 CA 服务。

注意

虽然您可以将 CA 角色 添加 到 IdM 副本中,但 IdM 没有提供一种从 IdM 副本中只 删除 CA 角色的方法:ipa-ca-install 命令没有 --uninstall 选项。

先决条件

  • 您已在拓扑中超过四个 IdM 服务器上安装了 IdM CA 服务。

流程

  1. 识别冗余 CA 服务,并按照在托管此服务的 IdM 副本上 卸载 IdM 服务器 中的流程操作。
  2. 在同一主机上,请按照 安装 IdM 服务器 中的流程操作:带有集成 DNS,没有 CA

法律通告

Copyright © 2025 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat