安装身份管理

Red Hat Enterprise Linux 9

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

Red Hat Customer Content Services

摘要

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

让开源更具包容性

红帽承诺替换我们的代码、文档和网页属性中存在问题的语言。我们从这四个术语开始:master、slave、黑名单和白名单。由于此项工作十分艰巨,这些更改将在即将推出的几个发行版本中逐步实施。有关更多详情,请参阅我们的首席技术官 Chris Wright 提供的消息

在身份管理中,计划中的术语变化包括:

  • 使用 block list 替换 blacklist
  • 使用 allow list 替换 whitelist
  • 使用 secondary 替换 slave
  • master 会根据上下文被替换为其他更适当的术语:

    • 使用 IdM server 替换 IdM master
    • 使用 CA renewal server 替换 CA renewal master
    • 使用 CRL publisher server 替换 CRL master
    • 使用 multi-supplier 替换 multi-master

对红帽文档提供反馈

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

通过 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 会因为有更多的缓存使系统具有更好的性能。

注意

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

1.3. IdM 的自定义配置要求

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

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 密钥和指纹
  • DNSSEC KSK 和 ZSK
  • 所有 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 软件包提供的配置。

注意

因为 ntpd 在RHEL 8 中已被弃用,取而代之的是 chronyd ,所以 IdM 服务器不再被配置为网络时间协议(NTP)服务器,只被配置为 NTP 客户端。RHEL 7 NTP 服务器 IdM 服务器角色在 RHEL 8 中也已被弃用。

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.
  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.

1.4.4. 其他资源

1.5. IdM 的主机名和 DNS 要求

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

这些要求适用于所有身份管理(IdM)服务器,那些带有集成 DNS 的服务器和没有集成 DNS 的服务器。

警告

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

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

这个要求适用于带有不带有集成 DNS 的 IdM 服务器。

验证服务器主机名

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

重要

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

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

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

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

# hostname
server.idm.example.com

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
      ...
  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
    2. 运行 dig +short server.idm.example.com AAAA 命令。如果返回一个地址,它必须与 ip addr show 返回的 IPv6 地址匹配:

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

      如果 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
    2. 如果上一步中的 dig +short -x server.idm.example.com AAAA 命令返回 IPv6 地址,请使用 dig 查询 IPv6 地址。输出必须显示服务器主机名。例如:

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

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

      警告

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

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

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

$ dig +dnssec @IP_address_of_the_DNS_forwarder . SOA

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

  • 状态:NOERROR
  • 标记:ra
  • EDNS 标志: do
  • RRSIG 记录必须在 ANSWER 部分中存在

如果输出中缺少任何这些项,请检查您的 DNS 正向解析器文档,验证是否支持并启用了 EDNS0 和 DNSSEC。在最新版本的 BIND 服务器中,dnssec-enable yes; 选项必须在 /etc/named.conf 文件中设置。

dig 生成的预期输出示例:

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 48655
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags: do; udp: 4096

;; ANSWER SECTION:
. 31679 IN SOA a.root-servers.net. nstld.verisign-grs.com. 2015100701 1800 900 604800 86400
. 31679 IN RRSIG SOA 8 0 86400 20151017170000 20151007160000 62530 . GNVz7SQs [...]
验证 /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

1.6. IdM 的端口要求

身份管理(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 和 749 必须是空闲的,因为它们在内部使用。不要打开这些端口,保持让防火墙阻止它们。

表 1.3. firewalld 服务

服务名称详情请查看:

freeipa-ldap

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

freeipa-ldaps

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

dns

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

1.7. 打开 IdM 所需的端口

步骤

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

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

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

      # systemctl start firewalld.service
      # systemctl enable firewalld.service
  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}
    2. 使用 firewall-cmd --add-service 命令在防火墙中添加 firewalld 服务。例如,要在默认区中打开端口:

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

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

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

    # firewall-cmd --reload

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

    # firewall-cmd --runtime-to-permanent
  4. 可选。要验证端口现在是否可用,请使用 nctelnetnmap 工具连接到端口或运行端口扫描。
注意

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

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

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

先决条件

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

    • 如果您的 RHEL 系统不是在云中运行,您已将您的系统注册到 Red Hat Subscription Manager(RHSM)。详情请参阅 Subscription Manager 命令行中的注册、附加和删除订阅。您还可以启用 IdM 使用的 BaseOSAppStream 软件仓库:

      # subscription-manager repos --enable=rhel-9-for-x86_64-baseos-rpms
      # subscription-manager repos --enable=rhel-9-for-x86_64-appstream-rpms

      有关如何使用 RHSM 启用和禁用特定软件仓库的详情,请参考 Red Hat Subscription Manager 中的配置选项

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

步骤

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

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

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

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

      # dnf install ipa-server ipa-server-trust-ad samba-client

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

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

先决条件

  • 您有 root 特权。

流程

  1. (可选)显示当前的 umask

    # umask
    0027
  2. umask 设为 0022

    # umask 0022
  3. (可选)在 IdM 安装完成后,将 umask 设回其原始值:

    # umask 0027

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

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

如需更多信息,请参阅 导致 IdM 安装失败的 fapolicy 限制 KCS 解决方案。

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-installipa-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-installipa-server-install

参数描述

--random-serial-numbers

为 IdM CA 启用随机序列号版本 3 (RSNv3)。启用后,CA 会为 PKI 中的证书和请求生成完全随机的序列号,而不需要范围管理。

重要: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 一起使用。

表 1.6. DNS 选项:在使用 --setup-dns时,适用于 ipa-dns-installipa-server-installipa-replica-install

参数描述

--forwarder=192.0.2.1

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

--no-forwarders

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

--no-reverse

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

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

其他资源

  • ipa-server-install(1) 手册页
  • ipa-replica-install(1) 手册页
  • ipa-dns-install(1) man page
  • ipa-ca-install(1) man page

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

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

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

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

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

注意

ipa-server-install 命令的默认配置是集成的 CA 作为根CA。如果没有 CA 选项,如指定了 --external-ca--ca-less,则 IdM 服务器将安装为带有集成的 CA。

2.1. 交互式安装

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

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

流程

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

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

    Do you want to configure integrated DNS (BIND)? [no]: yes
  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]:
      警告

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

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

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

    Do you want to configure DNS forwarders? [yes]:
    • 要配置每台服务器的 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]:

    如果您运行搜索并发现丢失了反向区,脚本会询问您是否创建反向区以及 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.
    注意

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

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

    Continue to configure the system with these values? [no]: yes
  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. 非互动安装

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

流程

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

    • --realm 提供 Kerberos 领域名
    • --ds-password 为目录管理者(DM)(目录服务器超级用户)提供密码
    • --admin-passwordadmin(身份管理(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
  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 服务器使用的时间服务器同步。

其他资源

  • 如需 ipa-server-install 接受的选项的完整列表,请运行 ipa-server-install --help 命令。

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

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

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

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

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

3.1. 交互式安装

在使用 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 模板。

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

步骤

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

    # ipa-server-install --external-ca
    • 如果您使用 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
    • 如果您没有使用 MS CS 为 IdM CA 生成签名证书,则不需要其他选项:

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

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

    如果您要安装没有集成 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]:
      警告

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

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

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

    Do you want to configure DNS forwarders? [yes]:
    • 要配置每台服务器的 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]:

    如果您运行搜索并发现丢失了反向区,脚本会询问您是否创建反向区以及 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.
    注意

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

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

    Continue to configure the system with these values? [no]: yes
  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

    当发生这种情况时:

    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
  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

当设置 *_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

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

# env|grep proxy
http_proxy=http://example.com:8080
ftp_proxy=http://example.com:8080
https_proxy=http://example.com:8080

这意味着:

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

解决此问题:

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

    # for i in ftp http https; do unset ${i}_proxy; done
  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
  3. 删除失败的身份管理(IdM)服务器的安装:

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

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

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

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

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

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

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

您需要提供安装没有证书颁发机构(CA)的身份管理(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)。请注意,身份管理安装程序接受串联的 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 用于访问 --pkinit-cert-file 文件中指定的 Kerberos KDC 私钥的密码
  • 如果您没有 PKINIT 证书,并希望使用带有自签名证书的本地 KDC 配置 IdM 服务器,请使用以下选项:

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

其他资源

  • 有关证书文件接受哪些选项的详情,请参见 ipa-server-install(1)手册页。
  • 有关创建 RHEL IdM PKINIT 证书所需的 PKINIT 扩展的详情,请参阅 RHEL IdM PKINIT KDC 证书和扩展

4.2. 交互式安装

在使用 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

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

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

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

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

  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]:
      警告

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

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

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

    Do you want to configure DNS forwarders? [yes]:
    • 要配置每台服务器的 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]:

    如果您运行搜索并发现丢失了反向区,脚本会询问您是否创建反向区以及 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.
    注意

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

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

    Continue to configure the system with these values? [no]: yes
  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 的新的身份管理(IdM)服务器。

注意

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

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

5.1. 交互式安装

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

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

这个过程安装服务器:

  • 没有集成的 DNS
  • 集成身份管理(IdM)证书颁发机构(CA)作为根CA,这是默认的 CA 配置

步骤

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

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

    Do you want to configure integrated DNS (BIND)? [no]:
  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]:
      警告

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

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

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

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

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

    Continue to configure the system with these values? [no]: yes
  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
    ...
    重要

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

其他资源

5.2. 非互动安装

此流程安装没有集成的 DNS 的服务器,或者安装带有集成身份管理(IdM)证书颁发机构(CA)作为 root 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
  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
    ...
    重要

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

其他资源

  • 有关您必须添加到 DNS 系统中的 DNS 资源记录的更多信息,请参阅 外部 DNS 系统的 IdM DNS 记录
  • 如需 ipa-server-install 接受的选项的完整列表,请运行 ipa-server-install --help 命令。

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

这是文件内容的示例:

_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.
注意

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

第 6 章 安装 IdM 服务器:没有集成的 DNS,只有外部 CA 作为 root CA

本章描述了如何安装没有集成 DNS 的新的身份管理(IdM)服务器,该服务器使用外部证书颁发机构(CA)作为根CA。

注意

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

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

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

如果适合以下条件之一,您可能希望安装外部 CA 作为 根 CA 的身份管理 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. 交互式安装

在使用 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 模板。

    有关 --external-ca-type--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
    • 如果您没有使用 MS CS 为 IdM CA 生成签名证书,则不需要其他选项:

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

    Do you want to configure integrated DNS (BIND)? [no]:
  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]:
      警告

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

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

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

    Continue to configure the system with these values? [no]: yes
  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

    当发生这种情况时:

    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
  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
    ...
    重要

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

其他资源

  • 有关您必须添加到 DNS 系统中的 DNS 资源记录的更多信息,请参阅 外部 DNS 系统的 IdM DNS 记录
  • ipa-server-install --external-ca 命令有时可能会失败,并显示以下错误:

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

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

6.3. 非互动安装

这个过程安装服务器:

  • 没有集成的 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 模板。

    有关 --external-ca-type--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

    如果您使用 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

    当发生这种情况时:

    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
  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
    ...
重要

在将 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

这是文件内容的示例:

_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.
注意

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

第 7 章 使用 LDIF 文件中的自定义数据库设置安装 IdM 服务器或副本

您可以对目录服务器数据库安装具有自定义设置的 IdM 服务器和 IdM 副本。以下流程演示了如何使用数据库设置创建 LDAP 数据交换格式(LDIF)文件,以及如何将这些设置传给 IdM 服务器和副本安装命令。

先决条件

步骤

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

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

    1. 要安装 IdM 服务器:

      # ipa-server-install --dirsrv-config-file filename.ldif
    2. 要安装 IdM 副本:

      # ipa-replica-install --dirsrv-config-file filename.ldif

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

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

8.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
  2. 要以交互方式查看日志文件,请使用 less 工具打开日志文件的末尾,然后使用 箭头键来导航。以下示例以交互方式打开 /var/log/ipaserver-install.log 文件。

    [user@server ~]$ sudo less -N +G /var/log/ipaserver-install.log
  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

其他资源

8.2. 检查 IdM 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 中记录错误。

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

先决条件

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

步骤

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

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

其他资源

8.3. 删除部分 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

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

先决条件

  • 您必须有 root 权限。

步骤

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

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

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

其它资源

其它资源

8.4. 其它资源

第 9 章 卸载 IdM 服务器

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

先决条件

  • 您有访问 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
    ----------------------------

    如果 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: r8server.idm.example.com
        Role name: CA server
        Role status: enabled
      ----------------------------
      Number of entries returned 2
      ----------------------------

      如果 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: r8server.idm.example.com
        Role name: KRA server
        Role status: enabled
      ----------------------------
      Number of entries returned 2
      ----------------------------

      如果 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: r8server.idm.example.com

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

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

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

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

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

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

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

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

    输出显示 DNA ID 范围被分配给 server123 和 server456。

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

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

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

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

    注意

    运行 ipa server-del 命令删除 domainca 后缀的与 server123 相关的所有复制数据和协议。这与 Domain Level 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]: yes
  9. 确保指向 server123.idm.example.com 的所有名称服务器(NS) DNS 记录都已从 DNS 区中删除。无论您使用由 IdM 还是外部 DNS 管理的集成 DNS,这个均适用。有关如何从 IdM 中删除 DNS 记录的更多信息,请参阅 删除 IdM CLI 中的 DNS 记录

第 10 章 重命名 IdM 服务器

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

流程

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

    重要

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

    有关在迁移流程上下文中如何进行此操作的详情,请查看以下章节:

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

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

第 11 章 更新和降级 IdM

11.1. 更新 IdM 软件包

您可以使用 dnf 工具更新系统上的身份管理(IdM)软件包。

先决条件

流程

  • 选择以下选项之一:

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

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

      # dnf distro-sync ipa-*

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

警告

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

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

重要

红帽建议只升级到下一版本。例如,如果要升级到 RHEL 8.8 的 IdM,我们建议从 RHEL 8.7 的 IdM 升级。从早期版本升级可能会导致问题。

11.2. 降级 IdM 软件包

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

11.3. 其他资源

  • dnf(8) 手册页

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

本章描述了您的系统在安装身份管理(IdM)客户端时必须满足的条件。

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

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

  • RHEL 7
  • RHEL 8
  • RHEL 9
注意
虽然其他客户端系统(如 Ubuntu)可以与 IdM 9 服务器一起正常工作,但红帽不提供对这些客户端的支持。

12.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 服务器。

其他资源

12.3. IdM 客户端的端口要求

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

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

其他资源

12.4. IdM 客户端的 IPv6 要求

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

lookup_family_order = ipv4_only

其他资源

  • 有关 lookup_family_order 选项的详情,请查看 sssd.conf (5) 手册页。

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

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

步骤

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

第 13 章 安装 IdM 客户端

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

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

13.1. 先决条件

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

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

先决条件

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

步骤

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

    # ipa-client-install --mkhomedir

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

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

    启用 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
    • 要使用不同的值安装系统,请输入 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:
  4. 安装脚本现在配置客户端。等待操作完成。

    Client configuration complete.

其他资源

  • 有关客户端安装脚本如何搜索 DNS 记录的详情,请查看 ipa-client-install(1)手册页中的 DNS 自动发现 部分。

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

按照以下流程,使用一次性密码以交互方式安装身份管理(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
    注意

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

步骤

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

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

    # ipa-client-install --mkhomedir --password=password

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

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

    启用 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
    • 要使用不同的值安装系统,请输入 no。然后再次运行 ipa-client-install,并通过在 ipa-client-install 中添加命令行选项来指定所需的值,例如:

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

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

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

    Client configuration complete.

其他资源

  • 有关客户端安装脚本如何搜索 DNS 记录的详情,请查看 ipa-client-install(1)手册页中的 DNS 自动发现 部分。

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

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

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

可用的选项有:

  • --principal--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

 

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

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

其他资源

  • 有关 ipa-client-install 可接受的选项的完整列表,请查看 ipa-client-install(1)手册页。

13.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

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

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

13.6. 测试 IdM 客户端

命令行界面告知您 ipa-client-install 已成功,但您也可以自行进行测试。

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

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

要测试身份验证是否正常工作,请从非 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 ~]#

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

IdM 客户端安装期间执行的请求 列出了 ipa-client-install (身份管理(IdM)客户端安装工具)所执行的操作。

表 13.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 服务器之间的时间同步

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

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

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

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

表 13.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 工具用法

表 13.3. Web UI 安装后操作

操作使用的协议目的

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

HTTPS

检索 IdM Web UI 页面

其他资源

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

13.9. SSSD 通信模式

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

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

表 13.4. 与 IdM 服务器对话时在 IdM 客户端中的 SSSD 通信特征

操作使用的协议目的

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

DNS

发现 IdM 服务器的 IP 地址

向身份管理副本和 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

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

表 13.5. 与 Active Directory Domain Controller 对话时作为信任代理的 SSSD 服务器的通信模式

操作使用的协议目的

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

DNS

发现 IdM 服务器的 IP 地址

向身份管理副本和 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

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

13.10. certmonger 通讯特征

Certmonger 是一个运行在身份管理(IdM)服务器和 IdM 客户端上的守护进程,允许及时续订与主机上的服务相关联的 SSL 证书。表 13.6 “certmonger 通讯特征” 显示 IdM 服务器上 certmonger 工具执行的操作。

表 13.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 相关的证书续订。

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

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

14.1. 使用 Kickstart 安装客户端

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

先决条件

步骤

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

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

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

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

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

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

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

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

%packages
...
ipa-client
...
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

另外,您还可以在 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

14.3. 测试 IdM 客户端

命令行界面告知您 ipa-client-install 已成功,但您也可以自行进行测试。

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

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

要测试身份验证是否正常工作,请从非 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 ~]#

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

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

15.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.
  2. 要以交互方式查看日志文件,请使用 less 工具打开日志文件的末尾,然后使用 箭头键来导航。

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

其他资源

15.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
  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
  3. 使用 grep 工具从 /var/log/client-install.log 中检索 nsupdate 命令的内容,以查看哪个 DNS 记录更新失败了。

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

其他资源

15.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.

这个失败可能是由空 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
  2. 重试 IdM 客户端安装。

其他资源

15.4. 其他资源

第 16 章 重新注册 IdM 客户端

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

16.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

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

按照以下流程,使用授权用户的凭证以互动方式重新注册身份管理(IdM)客户端。

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

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

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

其他资源

16.3. 使用客户端 keytab 重新注册客户端:非交互式重新注册

先决条件

  • 备份原始客户端 keytab 文件,例如在 /tmp/root 目录中。

步骤

按照以下流程,使用客户端系统的 keytab 以非交互方式重新注册身份管理(IdM)客户端。例如,使用客户端 keytab 重新注册适用于自动安装。

  1. 重新创建具有相同主机名的客户端机器。
  2. 将 keytab 文件从备份位置复制到重新创建的客户端机器上的 /etc/ 目录。
  3. 使用 ipa-client-install 工具重新注册客户端,并使用 --keytab 选项指定 keytab 的位置:

    # ipa-client-install --keytab /etc/krb5.keytab
    注意

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

16.4. 测试 IdM 客户端

命令行界面告知您 ipa-client-install 已成功,但您也可以自行进行测试。

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

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

要测试身份验证是否正常工作,请从非 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 ~]#

第 17 章 卸载 IdM 客户端

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

17.1. 卸载 IdM 客户端

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

步骤

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

    [root@client ~]# ipa-client-install --uninstall
  2. 可选:检查您是否不能获取 IdM 用户的 Kerberos 票据授予票据(TGT):

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

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

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

    [root@client ~]# ipa-rmkeytab -k /path/to/keytab -r EXAMPLE.COM
  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): yes
    ------------------------
    Deleted record "old-client-name"
  5. 在 IdM 服务器中,从 IdM LDAP 服务器中删除客户端主机条目。这会删除所有服务并撤销为该主机发布的所有证书:

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

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

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

如果您多次将主机作为身份管理(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
      2. /etc/krb5.conf.ipa 文件重命名为 /etc/krb5.conf

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

      # dnf reinstall krb5-libs

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

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

验证步骤

  • 尝试获取 IdM 用户凭证。这应该失败:

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

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

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

以下章节描述了如何修改身份管理(IdM)客户端系统的主机名。

警告

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

重新命名 IdM 客户端涉及到:

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

18.1. 准备 IdM 客户端以进行重命名

在卸载当前客户端之前,请记下客户端的某些设置。在使用新的主机名重新注册计算机后,您将应用此配置。

  • 确定在机器上运行哪些服务:

    • 使用 ipa service-find 命令,并在输出中识别带有证书的服务:

      $ ipa service-find old-client-name.example.com
    • 此外,每个主机都有一个默认 主机服务 ,该服务不会出现在 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"

    客户端系统上的每个服务都有一个格式为 service_name/host_name@REALM 的 Kerberos 主体,例如 ldap/old-client-name.example.com@EXAMPLE.COM.

  • 识别机器所属的所有主机组。

    # ipa hostgroup-find old-client-name.example.com

18.2. 卸载 IdM 客户端

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

步骤

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

    [root@client ~]# ipa-client-install --uninstall
  2. 可选:检查您是否不能获取 IdM 用户的 Kerberos 票据授予票据(TGT):

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

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

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

    [root@client ~]# ipa-rmkeytab -k /path/to/keytab -r EXAMPLE.COM
  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): yes
    ------------------------
    Deleted record "old-client-name"
  5. 在 IdM 服务器中,从 IdM LDAP 服务器中删除客户端主机条目。这会删除所有服务并撤销为该主机发布的所有证书:

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

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

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

如果您多次将主机作为身份管理(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
      2. /etc/krb5.conf.ipa 文件重命名为 /etc/krb5.conf

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

      # dnf reinstall krb5-libs

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

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

验证步骤

  • 尝试获取 IdM 用户凭证。这应该失败:

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

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

18.4. 重命名主机系统

根据需要重命名机器。例如:

# hostnamectl set-hostname new-client-name.example.com

现在,您可以使用新的主机名将身份验证(IdM)客户端重新安装到 IdM 域。

18.5. 重新安装 IdM 客户端

按照 安装客户端 中的流程,在重命名的主机上安装客户端。

18.6. 重新添加服务、重新生成证书和重新添加主机组

步骤

  1. 在身份管理(IdM)服务器上,为 准备 IdM 客户端以进行重命名 中标识的每个服务添加新的 keytab 。

    [root@server ~]# ipa service-add service_name/new-client-name
  2. 为在 准备 IdM 客户端以进行重命名 中分配了证书的服务生成证书。您可以做到这一点:

    • 使用 IdM 管理工具
    • 使用 certmonger 工具
  3. 将客户端重新添加到 准备 IdM 客户端以进行重命名 中标识的主机组中。

第 19 章 为 IdM 副本安装准备系统

以下链接列出了安装身份验证(IdM)副本的要求。在安装前,请确定您的系统满足这些要求。

  1. 确保 目标系统满足 IdM 服务器安装的一般要求
  2. 确保 目标系统满足 IdM 副本安装的额外的版本要求
  3. [可选] 如果您将在其上启用了 FIPS 模式的 RHEL 9 身份管理(IdM)副本添加到 FIPS 模式下的 RHEL 8 IdM 部署中,则 请确保副本启用了正确的加密类型
  4. 授权目标系统注册到 IdM 域。如需更多信息,请参阅以下章节中最适合您需要的内容:

其他资源

19.1. 副本版本要求

IdM 副本必须运行与其他服务器相同或更新版本的 IdM。例如:

  • 您已在 Red Hat Enterprise Linux 9 上安装了 IdM 服务器,它使用 IdM 4.x 软件包。
  • 您还必须在 Red Hat Enterprise Linux 9 上安装副本,并使用 IdM 版本 4.x 或更高版本。

这样可确保把配置从服务器正确复制到副本。

有关如何显示 IdM 软件版本的详情,请参阅 显示 IdM 软件版本的方法

19.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
使用 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

19.3. 确保加入 RHEL 8 IdM 环境的 RHEL 9 副本符合 FIPS

如果 RHEL 身份管理(IdM)最初安装在 RHEL 8.6 或更早版本的系统上,则其使用的 AES HMAC-SHA1 加密类型默认在 FIPS 模式下不被 RHEL 9 支持。要将 FIPS 模式下的 RHEL 9 副本添加到部署,您必须通过将加密策略设为 FIPS:AD-SUPPORT,来在 RHEL 9 系统上启用这些加密密钥。

通过将加密策略设为 FIPS:AD-SUPPORT,您可以添加对以下加密类型的支持:

  • aes256-cts:normal
  • aes256-cts:special
  • aes128-cts:normal
  • aes128-cts:special

先决条件

  • 您已在 RHEL 9 系统上启用了 FIPS 模式。
  • 您希望载 FIPS 模式下将 RHEL 9 系统配置为 RHEL 8 IdM 环境的 IdM 副本。
  • IdM 主密钥的加密类型不是 aes256-cts-hmac-sha384-192。如需更多信息,请参阅 查看 IdM 主密钥的加密类型

    注意

    Microsoft 的活动目录实现尚不支持任何使用 SHA-2 HMAC 的 RFC8009 Kerberos 加密类型。如果您配置了 IdM-AD 信任,则因此需要使用 FIPS:AD-SUPPORT 加密子策略,即使 IdM 主密钥的加密类型是 aes256-cts-hmac-sha384-192

步骤

  • 在 RHEL 9 系统上,启用 AES HMAC-SHA1 加密类型的使用:

    # update-crypto-policies --set FIPS:AD-SUPPORT

19.4. 授权在 IdM 客户端上安装副本

通过运行 ipa-replica-install 工具,在现有的身份管理(IdM)客户端上 安装副本 时,请选择下面的 方法 1方法 2 来授权副本安装。如果以下任何一个适用,请选择 方法 1 :

  • 您希望高级系统管理员执行流程的初始部分,初级管理员执行其余部分。
  • 您希望自动执行副本安装。
方法 1: ipaservers 主机组
  1. 以 IdM admin 用户身份登录到任何一台 IdM 主机:

    $ kinit admin
  2. 将客户端机器添加到 ipaservers 主机组中:

    $ ipa hostgroup-add-member ipaservers --hosts client.idm.example.com
      Host-group: ipaservers
      Description: IPA server hosts
      Member hosts: server.idm.example.com, client.idm.example.com
    -------------------------
    Number of members added 1
    -------------------------
注意

ipaservers 组中的成员授予机器类似于管理员凭证的提升特权。因此,在下一步中,初级系统管理员可以在主机上成功运行 ipa-replica-install 工具。

方法 2:特权用户的凭证

通过提供特权用户的凭证,选择以下任何一种方法来授权副本安装:

  • 启动 ipa-replica-install 工具后,让身份管理(IdM)以交互方式提示您输入凭证。这是默认的行为。
  • 在运行 ipa-replica-install 工具之前,立即以特权用户身份登录客户端。默认特权用户为 admin

    $ kinit admin

其他资源

19.5. 授权在未注册到 IdM 的系统上安装副本

当在没有在身份管理(IdM)域中注册的系统上 安装副本 时,ipa-replica-install 工具首先将系统注册为客户端,然后安装副本组件。在这种情况下,请选择下面的 方法 1方法 2 来授权副本安装。如果以下任何一个适用,请选择 方法 1 :

  • 您希望高级系统管理员执行流程的初始部分,初级管理员执行其余部分。
  • 您希望自动执行副本安装。
方法 1:在 IdM 服务器上生成的随机密码

在域中的任何服务器上输入以下命令:

  1. 以管理员身份登录。

    $ kinit admin
  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

    当使用生成的密码将机器注册到 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
    -------------------------
注意

ipaservers 组中的成员授予机器类似于管理员凭证的提升特权。因此,在下一步中,ipa-replica-install 工具可以由提供生成的随机密码的初级系统管理员在主机上成功运行。

方法 2:特权用户的凭证

使用此方法,您可以通过提供特权用户的凭证来授权副本安装。默认特权用户为 admin

在运行 IdM 副本安装工具之前不需要任何操作。在安装过程中,将主体名称和密码选项(--principal admin --admin-password password)直接添加到 ipa-replica-install 命令中。

其他资源

第 20 章 安装 IdM 副本

以下章节介绍了如何使用命令行界面(CLI)以交互方式安装身份管理(IdM)副本。副本安装过程复制现有服务器的配置,并根据该配置安装副本。

注意

红帽建议 使用 Ansible 角色安装副本。通过使用 Ansible 角色,您可以一致地安装和自定义多个副本。

不使用 Ansible 的交互式和非交互式方法在拓扑中很有用,例如,副本准备被委派给用户或第三方。您还可以在地理上分布的拓扑中使用这些方法,其中您没有从 Ansible 控制器节点访问的权限。

先决条件

  • 您一次安装一个 IdM 副本。不支持同时安装多个副本。
  • 确保您的系统已为 IdM 副本安装做好了准备

    重要

    如果没有执行此准备,安装 IdM 副本将失败。

有关个别类型的副本安装过程,请参阅:

要解决副本安装过程的问题,请参阅:

安装后,请参阅:

20.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
  2. 安装完成后,将父域的 DNS 委派添加到 IdM DNS 域。例如,如果 IdM DNS 域是 idm.example.com,请在 example.com 父域中添加一个名字服务器(NS)记录。

    重要

    在每次安装完 IdM DNS 服务器后重复此步骤。

20.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
    注意

    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 服务器后重复此步骤。

20.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 中输入 --setup-ca 选项。

    # ipa-replica-install --setup-ca
  2. 在您的 DNS 服务器中添加新创建的 IdM DNS 服务记录:

    1. nsupdate 格式将 IdM DNS 服务记录导出到文件中:

      $ ipa dns-update-system-records --dry-run --out dns_records_file.nsupdate
    2. 使用 nsupdate 工具和 dns_records_file.nsupdate 文件向 DNS 服务器提交 DNS 更新请求。如需更多信息,请参阅 RHEL 7 文档中的 使用 nsupdate 更新外部 DNS 记录。或者,请参阅 DNS 服务器文档来添加 DNS 记录。

20.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
    注意

    不要添加 --ca-cert-file 选项。ipa-replica-install 工具从您安装的第一台服务器上自动获取这部分证书信息。

20.5. 安装 IdM 隐藏的副本

隐藏的(未公开的)副本是一台身份管理(IdM)服务器,其拥有所有正在运行且可用的服务。但是,它在 DNS 中没有 SRV 记录,并且不启用 LDAP 服务器角色。因此,客户端无法使用服务发现来检测这些隐藏的副本。

有关隐藏副本的详情,请参阅 隐藏副本模式

先决条件

步骤

  • 要安装隐藏的副本,请使用以下命令:

    ipa-replica-install --hidden-replica

请注意,命令安装一个不带 DNS SRV 记录,并且禁用了 LDAP 服务器角色的副本。

您还可以将现有副本的模式更改为隐藏。详情请参阅 隐藏副本的降级和升级

20.6. 测试 IdM 副本

创建副本后,检查副本是否按预期复制了数据。您可以使用以下步骤。

流程

  1. 在新副本中创建用户:

    [admin@new_replica ~]$ ipa user-add test_user
  2. 确保用户在另一个副本中可见:

    [admin@another_replica ~]$ ipa user-show test_user

20.7. 在 IdM 副本安装过程中执行的连接

IdM 副本安装期间执行的请求 列出了 ipa-replica-install (身份管理(IdM)副本安装工具)所执行的操作。

表 20.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 服务器和副本安装过程中)

第 21 章 IdM 副本安装故障排除

以下小节描述了收集有关失败的 IdM 副本安装信息的过程,以及如何解决一些常见安装问题。

21.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 条目则提供额外的上下文。

21.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
  2. 要以交互方式查看日志文件,请使用 less 工具打开日志文件的末尾,然后使用 箭头键来导航。

    [user@replica ~]$ sudo less -N +G /var/log/ipareplica-install.log
  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

    在服务器中:

    [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

其他资源

21.3. IdM CA 安装错误日志文件

在身份管理(IdM)副本上安装证书颁发机构(CA)服务会将调试信息附加到副本和与之通信的 IdM 服务器上的多个位置。

表 21.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 中记录错误。

21.4. 检查 IdM CA 安装错误

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

先决条件

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

步骤

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

    [user@server ~]$ sudo less -N +G /var/log/pki/pki-ca-spawn.20200527185902.log
  2. 通过对所有 CA 安装错误日志文件重复此查看过程来收集额外的故障排除信息。

其他资源

21.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

要解决这个问题,请从副本中卸载 IdM 软件,从 IdM 拓扑中删除副本,并重试安装过程。

先决条件

  • 您必须有 root 权限。

步骤

  1. 在您要配置为 IdM 副本的主机上卸载 IdM 服务器软件。

    [root@replica ~]# ipa-server-install --uninstall
  2. 在拓扑中的所有其他服务器上,使用 ipa server-del 命令删除对未正确安装的副本的任何引用。

    [root@other-replica ~]# ipa server-del replica.idm.example.com
  3. 尝试安装副本。
  4. 如果您因为重复安装失败而无法安装 IdM 副本,请重新安装操作系统。

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

其它资源

21.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

如果您使用 --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'
  2. 再次尝试 IdM 副本安装。

其他资源

21.7. 其他资源

第 22 章 卸载 IdM 副本

作为 IdM 管理员,您可以从拓扑中删除身份管理(IdM)副本。如需更多信息,请参阅 卸载 IdM 服务器

第 23 章 管理复制拓扑

本章描述了如何管理身份管理(IdM)域中服务器之间的复制。

其他资源

23.1. 解释复制协议、拓扑后缀和拓扑段

当您创建副本时,身份管理(IdM)会在初始服务器和副本之间创建一个复制协议。然后,复制的数据会存储在拓扑后缀中,当两个副本在它们的后缀之间有复制协议时,后缀形成一个拓扑段。这些概念在以下章节中进行了详细解释:

23.1.1. IdM 副本之间的复制协议

当管理员基于现有服务器创建副本时,身份管理 (IdM) 会在初始服务器和副本之间创建复制协议。复制协议确保两个服务器之间不断复制数据和配置。

IdM 使用多读/写副本复制。在这种配置中,所有副本都加入到复制协议中接收并提供更新,因此被视为供应商和消费者。复制协议始终是强制的。

图 23.1. 服务器和副本协议

包含两组复制协议的两台服务器:一个数据复制协议,与目录服务器数据库相关联,以及一个与其证书系统数据相关的证书复制协议

IdM 使用两种复制协议:

域复制协议
这些协议复制身份信息。
证书复制协议
这些协议复制证书信息。

两个复制频道都是独立的。两个服务器可以有一类或两种类型的复制协议。例如,当服务器 A 和服务器 B 仅配置了域复制协议时,它们之间仅复制身份信息,而不复制证书信息。

23.1.2. 拓扑后缀

拓扑后缀 存储复制的数据。IdM 支持两种类型的拓扑后缀:domainca。每个后缀代表一个单独的服务器,一个独立的复制拓扑。

配置复制协议时,它会在两个不同的服务器上加入同一类型的两个拓扑后缀。

后缀:dc=example,dc=com

后缀包含所有域相关的数据。

当两个副本在其 后缀之间有一个复制协议时,它们将共享目录数据,如用户、组和策略。

ca suffix: o=ipaca

ca 后缀包含证书系统组件的数据。它仅存在于安装有证书颁发机构 (CA) 的服务器上。

当两个副本在其 ca 后缀之间有复制协议时,它们将共享证书数据。

图 23.2. 拓扑后缀

拓扑后缀

在安装新副本时,ipa-replica-install 脚本会在两台服务器之间设置初始拓扑复制协议。

例 23.1. 查看拓扑后缀

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
----------------------------

23.1.3. 拓扑段

当两个副本在它们的后缀之间有复制协议时,后缀会形成 拓扑段。每个拓扑片段由一个 左节点 和一个 右节点 组成。节点代表加入复制协议的服务器。

IdM 中的拓扑段始终是双向的。每个段代表两种复制协议:从服务器 A 到服务器 B 和从服务器 B 到服务器 A。因此,数据被双向复制。

图 23.3. 拓扑段

拓扑段

例 23.2. 查看拓扑段

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
----------------------------

在本例中,域相关的数据仅在两个服务器之间被复制:server1.example.comserver2.example.com

要仅显示特定段的详情,请使用 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

23.2. 使用拓扑图来管理复制拓扑

Web UI 中的拓扑图显示了域中服务器之间的关系。使用 Web UI,您可以操作和转换拓扑表示。

访问拓扑图

要访问拓扑图:

  1. 选择 IPA ServerTopologyTopology Graph
  2. 如果您对拓扑所做的任何更改没有立即反映在图中,请点击 Refresh

解释拓扑图

加入域复制协议的服务器通过橙色箭头连接。加入 CA 复制协议的服务器通过蓝色箭头连接。

拓扑图示例:推荐的拓扑

以下推荐的拓扑示例显示了四个服务器的一个可能的推荐拓扑之一:每个服务器至少连接到两个其他服务器,并且多个服务器是 CA 服务器。

图 23.4. 建议的拓扑示例

mng top rec
拓扑图示例:不推荐的拓扑

在下面不鼓励的拓扑示例中,server1 是单点故障。所有其他服务器都与此服务器有复制协议,但与其他任何服务器都没有。因此,如果 server1 出现故障,所有其他服务器将被隔离。

避免创建类似这样的拓扑。

图 23.5. 不鼓励的拓扑示例:单点故障

mng top single

自定义拓扑视图

您可以通过拖动鼠标来移动单个拓扑节点:

图 23.6. 移动拓扑图节点

自定义图 1

您可以使用鼠标滚轮放大和缩小拓扑图:

图 23.7. 缩放拓扑图

自定义图 2

您可以通过按住鼠标左键来移动拓扑图的画布:

图 23.8. 移动拓扑图画布

自定义图 3

23.3. 使用 Web UI 在两台服务器之间设置复制

使用身份管理(IdM)的 Web 界面,您可选择两台服务器,并在它们之间创建新的复制协议。

先决条件

  • 您有 IdM 管理员凭证。

步骤

  1. 在拓扑图中,将鼠标悬停在其中一台服务器节点上。

    图 23.9. 域或 CA 选项

    mng 顶级域 ca
  2. 根据您要创建的拓扑段的类型,单击圆圈的 domainca 部分。
  3. 在鼠标指针下会出现代表新复制协议的新箭头。将鼠标移到其他服务器节点,然后单击该节点。

    图 23.10. 创建新段

    mng 顶部拖动
  4. Add topology segment 窗口中,单击 Add 来确认新段的属性。

两个服务器之间的新拓扑段将它们加入复制协议。拓扑图现在显示更新的复制拓扑:

图 23.11. 新段创建好了

MNG 前三

23.4. 使用 Web UI 停止两个服务器之间的复制

使用身份管理(IdM)的 Web 界面,您可以删除服务器的复制协议。

先决条件

  • 您有 IdM 管理员凭证。

步骤

  1. 单击代表您要删除的复制协议的箭头。这会高亮显示箭头。

    图 23.12. 拓扑段高亮显示

    mng 顶部高亮显示
  2. 单击 Delete
  3. Confirmation 窗口中,单击 OK

IdM 删除两个服务器之间的拓扑段,这将删除它们的复制协议。拓扑图现在显示更新的复制拓扑:

图 23.13. 拓扑段删除了

mng 顶部删除段

23.5. 使用 CLI 在两个服务器之间建立复制

您可以使用 ipa topologysegment-add 命令在两个服务器之间配置复制协议。

先决条件

  • 您有 IdM 管理员凭证。

步骤

  1. 使用 ipa topologysegment-add 命令为两台服务器创建一个拓扑段。出现提示时,请提供:

    • 所需的拓扑后缀: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

      添加新段来将服务器加入复制协议。

  2. 可选。使用 ipa topologysegment-show 命令验证是否已配置新段。

    $ 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

23.6. 使用 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
    ----------------------------
  2. 使用 ipa topologysegment-del 命令删除来连接两个服务器的拓扑段。

    $ ipa topologysegment-del
    Suffix name: domain
    Segment name: new_segment
    -----------------------------
    Deleted segment "new_segment"
    -----------------------------

    删除段会删除复制协议。

  3. 可选。使用 ipa topologysegment-find 命令来验证段是否不再被列出。

    $ 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
    ----------------------------

23.7. 使用 Web UI 从拓扑中删除服务器

您可以使用身份管理(IdM)Web 界面从拓扑中删除服务器。

先决条件

  • 您有 IdM 管理员凭证。
  • 您要删除的服务器 不是 连接其他服务器与拓扑其余部分的唯一服务器;这会导致其他服务器被隔离,这是不允许的。
  • 您要删除的服务器 不是 您的最后一个 CA 或 DNS 服务器。
警告

删除服务器是一个不可逆的操作。如果您删除了服务器,将其重新引入回拓扑的唯一方法是在机器上安装一个新副本。

步骤

要在不从机器卸载服务器组件的情况下从拓扑中删除服务器:

  1. 选择 IPA ServerTopologyIPA Servers
  2. 单击要删除的服务器的名称。

    图 23.14. 选择服务器

    MNG 顶部删除
  3. 单击 Delete Server

23.8. 使用 CLI 从拓扑中删除服务器

您可以使用命令行界面从拓扑中删除服务器。

先决条件

  • 您有 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"
    ----------------------------------------------------------
  2. 可选 :在 server1.example.com 上,运行 ipa server-install --uninstall 命令来从机器中卸载服务器组件。

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

23.9. 使用 Web UI 查看 IdM 服务器上的服务器角色

根据安装在 IdM 服务器上的服务,它可以执行各种 服务器角色。例如:

  • CA 服务器
  • DNS 服务器
  • 密钥恢复授权(KRA)服务器。

有关支持的服务器角色的完整列表,请参阅 IPA 服务器拓扑服务器角色

注意
  • 角色状态 absent 意味着拓扑中没有服务器在执行角色。
  • 角色状态 enabled 意味着拓扑中的一个或多个服务器在执行角色。

图 23.15. Web UI 中的服务器角色

服务器角色缺席

23.10. 使用 CLI 查看 IdM 服务器上的服务器角色

根据安装在 IdM 服务器上的服务,它可以执行各种 服务器角色。例如:

  • CA 服务器
  • DNS 服务器
  • 密钥恢复授权(KRA)服务器。

您可以使用以下命令来查看拓扑中哪些服务器执行哪些角色。

  • ipa config-show 命令显示所有 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
  • ipa server-show 命令显示在特定服务器上启用的角色列表。例如,对于 server.example.com 上启用的角色列表:
$ ipa server-show
Server name: server.example.com
  ...
  Enabled server roles: CA server, DNS server, KRA server
  • 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
----------------------------

23.11. 将副本提升为 CA 续订服务器和 CRL 发布者服务器

如果您的 IdM 部署使用嵌入式证书颁发机构(CA),其中一个 IdM CA 服务器充当 CA 续订服务器(该服务器管理 CA 子系统证书的续订)。其中一个 IdM CA 服务器也充当 IdM CRL 发布者服务器(生成证书撤销列表的服务器)。默认情况下,CA 续订服务器和 CRL 发布者服务器角色安装在系统管理员使用 ipa-server-installipa-ca-install 命令在其上安装 CA 角色的第一个服务器上。

先决条件

  • 您有 IdM 管理员凭证。

23.12. 降级或提升隐藏的副本

安装副本后,您可以配置副本是隐藏还是可见。

有关隐藏副本的详情,请参阅 隐藏副本模式

如果副本是 CA 续订服务器,请在隐藏此副本前将服务移到另一个副本上。

详情请查看

更改和重置 IdM CA 续订服务器

步骤

  • 要隐藏副本,请输入:

    # ipa server-state replica.idm.example.com --state=hidden

    或者,您可以使用以下命令使副本可见:

    # ipa server-state replica.idm.example.com --state=enabled

    要查看拓扑中所有隐藏的副本的列表,请输入:

    # ipa config-show

    如果启用了所有副本,命令输出不会提到隐藏的副本

第 24 章 安装并运行 IdM Healthcheck 工具

了解有关 IdM Healthcheck 工具以及如何安装并运行它的更多信息。

24.1. IdM 中的 Healthcheck

身份管理(IdM)中的 Healthcheck 工具可帮助发现可能影响 IdM 环境健康的问题。

注意

Healthcheck 工具是一个命令行工具,可在无需 Kerberos 身份验证的情况下使用。

模块是独立的

Healthcheck由独立模块组成,用于测试:

  • 复制问题
  • 证书有效期
  • 证书颁发机构基础设施问题
  • IdM 和 Active Directory 信任问题
  • 正确的文件权限和所有权设置

两种输出格式

HealthCheck 生成以下输出,您可以使用 output-type 选项来设置:

  • json :JSON 格式的机器可读输出(默认)
  • human :人类可读的输出

您可以使用 --output-file 选项来指定不同的文件目标。

结果

每个 Healthcheck 模块返回以下结果之一:

SUCCESS
配置为预期
WARNING
不是错误,但需要对其进行检查和评估
ERROR
未按预期配置
CRITICAL
未按预期配置,可能会有非常大的影响

24.2. 安装 IdM Healthcheck

按照以下流程安装 IdM Healthcheck 工具。

步骤

  • 安装 ipa-healthcheck 软件包:

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

验证步骤

  • 使用 --failures-only 选项使 ipa-healthcheck 只报告错误。功能齐全的 IdM 安装返回一个空结果 []

    [root@server ~]# ipa-healthcheck --failures-only
    []

其他资源

  • 使用 ipa-healthcheck --help 查看所有支持的参数。

24.3. 运行 IdM Healthcheck

健康检查可以手动运行,或使用 日志轮转 自动运行

先决条件

步骤

  • 要手动运行healthcheck,请输入 ipa-healthcheck 命令。

    [root@server ~]# ipa-healthcheck

其他资源

有关所有选项,请查看手册页: man ipa-healthcheck

24.4. 其他资源

第 25 章 使用 Ansible playbook 安装身份管理服务器

以下章节描述了如何使用 Ansible 来将系统配置为 IdM 服务器。将系统配置为 IdM 服务器建立 IdM 域并让系统向 IdM 客户端提供 IdM 服务。部署是由 ipaserver Ansible 角色来管理的。

先决条件

  • 您了解 Ansible 和 IdM 概念:

    • Ansible 角色
    • Ansible 节点
    • Ansible 清单
    • Ansible 任务
    • Ansible 模块
    • Ansible play 和 playbook

25.1. Ansible 及其安装 IdM 的优点

Ansible 是一个自动化工具,用于配置系统、部署软件和执行滚动更新。Ansible 包含对身份验证(IdM)的支持,您可以使用 Ansible 模块来自动执行安装任务,如 IdM 服务器、副本、客户端或整个 IdM 拓扑的设置。

使用 Ansible 安装 IdM 的优点

以下列表提供了使用 Ansible 安装身份管理与手动安装的优点。

  • 您不需要登录受管节点。
  • 您不需要配置每个主机上的设置来单独部署。反之,您可以有一个清单文件来部署完整的集群。
  • 您可以稍后重复将清单文件用于管理任务,例如添加用户和主机。即使与 IdM 相关的任务,也可以重复使用清单文件。

25.2. 安装 ansible-freeipa 软件包

以下流程描述了如何安装 ansible-freeipa 角色。

先决条件

  • 受管节点 上:

    • 确保受管节点是一个具有静态 IP 地址的 Red Hat Enterprise Linux 9 系统,并且是可正常工作的软件包管理器。
  • 控制器 上:

    • 确定控制器是一个带有有效订阅的 Red Hat Enterprise Linux 系统。否则,请参阅官方 Ansible 文档 安装指南 来获取替代安装说明。
    • 确保您可以通过 SSH 协议,从控制器访问受管节点。检查该受管节点是否已列在控制器的 /root/.ssh/known_hosts 文件中。

步骤

在 Ansible 控制器上运行以下步骤。

  1. 启用所需的仓库:

    # subscription-manager repos --enable rhel-9-for-x86_64-appstream-rpms
  2. 安装 IdM Ansible 角色:

    # dnf install ansible-freeipa

角色安装到 /usr/share/ansible/roles/ 目录中。

25.3. 在文件系统中的 Ansible 角色位置

默认情况下,ansible-freeipa 角色被安装到 /usr/share/ansible/roles/ 目录中。ansible-freeipa 软件包的结构如下:

  • /usr/share/ansible/roles/ 目录将 ipaserveripareplicaipaclient 角色存储在 Ansible 控制器上。每个角色目录都会在 README.md Markdown 文件中存储示例、基本概述、许可证和有关角色的文档。

    [root@server]# ls -1 /usr/share/ansible/roles/
    ipaclient
    ipareplica
    ipaserver
  • /usr/share/doc/ansible-freeipa/ 目录在 README.md Markdown 文件中存储有关单个角色和拓扑的文档。它还存储 playbook/ 子目录。

    [root@server]# ls -1 /usr/share/doc/ansible-freeipa/
    playbooks
    README-client.md
    README.md
    README-replica.md
    README-server.md
    README-topology.md
  • /usr/share/doc/ansible-freeipa/playbooks/ 目录存储示例 playbook:

    [root@server]# ls -1 /usr/share/doc/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

25.4. 为带有集成 DNS 和集成 CA 作为根 CA 的部署设置参数

完成这个流程,来在使用 IdM 集成 DNS 解决方案的环境中为安装带有集成 CA 作为根 CA 的 IdM 服务器配置清单文件。

注意

此流程中的清单使用 INI 格式。或者,也可以使用 YAMLJSON 格式。

步骤

  1. 创建 ~/MyPlaybooks/ 目录:

    $ mkdir MyPlaybooks
  2. 创建 ~/MyPlaybooks/inventory 文件。
  3. 打开清单文件进行编辑。指定您要用作 IdM 服务器的主机的完全限定域名(FQDN)。确保 FQDN 满足以下条件:

    • 只允许字母数字字符和连字符(-)。例如,不允许使用下划线,这可能导致 DNS 失败。
    • 主机名必须都是小写。
  4. 指定 IdM 域和域信息。
  5. 通过添加以下选项来指定您要使用集成的 DNS:

    ipaserver_setup_dns=yes
  6. 指定 DNS 转发设置。选择以下选项之一:

    • 如果您希望安装程序使用来自 /etc/resolv.conf 文件中的转发,请使用 ipaserver_auto_forwarders=yes 选项。如果 /etc/resolv.conf 文件中指定的名称服务器是 localhost 127.0.0.1 地址,或者您在虚拟专用网络中,且您使用的 DNS 服务器通常无法从公共互联网访问,则不要使用这个选项。
    • 使用 ipaserver_forwarders 选项手动指定您的转发器。安装过程将转发器 IP 地址添加到安装的 IdM 服务器上的 /etc/named.conf 文件中。
    • 使用 ipaserver_no_forwarders=yes 选项来配置要使用的根 DNS 服务器。

      注意

      如果没有 DNS 转发器,您的环境是隔离的,且基础架构中的其他 DNS 域的名称不能解析。

  7. 指定 DNS 反向记录和区设置。从以下选项中选择:

    • 使用 ipaserver_allow_zone_overlap=yes 选项来允许创建(反向)区域,即使区已可解析。
    • 使用 ipaserver_reverse_zones 选项来手动指定反向区。
    • 如果您不希望安装程序创建反向 DNS 区,请使用 ipaserver_no_reverse=yes 选项。

      注意

      使用 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=yes
    ipaserver_auto_forwarders=yes
    [...]

    包含所需服务器信息(包括密码)的清单文件示例

    [ipaserver]
    server.idm.example.com
    
    [ipaserver:vars]
    ipaserver_domain=idm.example.com
    ipaserver_realm=IDM.EXAMPLE.COM
    ipaserver_setup_dns=yes
    ipaserver_auto_forwarders=yes
    ipaadmin_password=MySecretPassword123
    ipadm_password=MySecretPassword234
    
    [...]

    带有自定义 firewalld 区的清单文件示例

    [ipaserver]
    server.idm.example.com
    
    [ipaserver:vars]
    ipaserver_domain=idm.example.com
    ipaserver_realm=IDM.EXAMPLE.COM
    ipaserver_setup_dns=yes
    ipaserver_auto_forwarders=yes
    ipaadmin_password=MySecretPassword123
    ipadm_password=MySecretPassword234
    ipaserver_firewalld_zone=custom zone

    使用存储在 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: ipaserver
        state: present

    使用清单文件中的 admin 和 Directory Manager 密码来设置 IdM 服务器的 playbook 示例

    ---
    - name: Playbook to configure IPA server
      hosts: ipaserver
      become: true
    
      roles:
      - role: ipaserver
        state: present

其他资源

  • 有关转发策略的默认设置,请参阅 ipa-dns-install(1) 手册页中的 --forward-policy 描述。
  • 有关 ipaserver 角色使用的 DNS 变量的更多信息,请参阅 /usr/share/doc/ansible-freeipa 目录中 README-server.md 文件中的 DNS 变量部分。
  • 有关清单文件的更多信息,请参阅 如何构建您的清单

25.5. 为带有外部 DNS 和集成 CA 作为根 CA 的部署设置参数

完成这个流程,来为在使用外部 DNS 解决方案的环境中安装带有集成 CA 作为根 CA 的 IdM 服务器配置清单文件。

注意

此流程中的清单文件使用 INI 格式。或者,也可以使用 YAMLJSON 格式。

步骤

  1. 创建 ~/MyPlaybooks/ 目录:

    $ mkdir MyPlaybooks
  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
    [...]

    包含所需服务器信息(包括密码)的清单文件示例

    [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
    
    [...]

    带有自定义 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

    使用存储在 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: ipaserver
        state: present

    使用清单文件中的 admin 和 Directory Manager 密码来设置 IdM 服务器的 playbook 示例

    ---
    - name: Playbook to configure IPA server
      hosts: ipaserver
      become: true
    
      roles:
      - role: ipaserver
        state: present

其他资源

25.6. 使用 Ansible playbook 将集成 CA 的 IdM 服务器部署为 root CA

完成此流程,来使用 Ansible playbook 部署带有集成证书颁发机构(CA)作为根 CA 的 IdM 服务器。

注意

此流程中的清单使用 INI 格式。或者,也可以使用 YAMLJSON 格式。

先决条件

  • 您可以通过选择以下流程之一来设置与您的场景相对应的参数:

  • 您已阅读并理解了您可以与 ipaserver 角色一起使用的变量,如 /usr/share/doc/ansible-freeipa/README-server.md 文件中所述。

步骤

  1. 运行带有 playbook 文件名(例如 install-server.yml)的 ansible-playbook 命令。使用 -i 选项指定清单文件:

    $ ansible-playbook --vault-password-file=password_file -v -i ~/MyPlaybooks/inventory ~/MyPlaybooks/install-server.yml

    使用 -v-vv-vvv 选项来指定详细程度。

    您可以查看在命令行界面(CLI)上的 Ansible playbook 脚本的输出。以下输出显示该脚本运行成功,有 0 个任务失败:

    PLAY RECAP
    server.idm.example.com : ok=18   changed=10   unreachable=0    failed=0    skipped=21   rescued=0    ignored=0
  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
      ...
    重要

    在将 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 服务器使用的时间服务器同步。

其他资源

25.7. 为带有集成 DNS 和外部 CA 作为根 CA 的部署设置参数

完成这个流程,来为在使用 IdM 集成 DNS 解决方案的环境中安装带有外部 CA 作为根 CA 的 IdM 服务器配置清单文件。

注意

此流程中的清单文件使用 INI 格式。或者,也可以使用 YAMLJSON 格式。

步骤

  1. 创建 ~/MyPlaybooks/ 目录:

    $ mkdir MyPlaybooks
  2. 创建 ~/MyPlaybooks/inventory 文件。
  3. 打开清单文件进行编辑。指定您要用作 IdM 服务器的主机的完全限定域名(FQDN)。确保 FQDN 满足以下条件:

    • 只允许字母数字字符和连字符(-)。例如,不允许使用下划线,这可能导致 DNS 失败。
    • 主机名必须都是小写。
  4. 指定 IdM 域和域信息。
  5. 通过添加以下选项来指定您要使用集成的 DNS:

    ipaserver_setup_dns=yes
  6. 指定 DNS 转发设置。选择以下选项之一:

    • 如果您希望安装过程使用 /etc/resolv.conf 文件中的转发器,请使用 ipaserver_auto_forwarders=yes 选项。如果 /etc/resolv.conf 文件中指定的名字服务器是 localhost 127.0.0.1 地址,或者如果您在虚拟私有网络中,并且您使用的 DNS 服务器通常无法从公共互联网访问,则不建议使用此选项。
    • 使用 ipaserver_forwarders 选项手动指定您的转发器。安装过程将转发器 IP 地址添加到安装的 IdM 服务器上的 /etc/named.conf 文件中。
    • 使用 ipaserver_no_forwarders=yes 选项来配置要使用的根 DNS 服务器。

      注意

      如果没有 DNS 转发器,您的环境是隔离的,且基础架构中的其他 DNS 域的名称不能解析。

  7. 指定 DNS 反向记录和区设置。从以下选项中选择:

    • 使用 ipaserver_allow_zone_overlap=yes 选项来允许创建(反向)区域,即使区已可解析。
    • 使用 ipaserver_reverse_zones 选项来手动指定反向区。
    • 如果您不希望安装进程创建反向 DNS 区,请使用 ipaserver_no_reverse=yes 选项。

      注意

      使用 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=yes
    ipaserver_auto_forwarders=yes
    [...]

    包含所需服务器信息(包括密码)的清单文件示例

    [ipaserver]
    server.idm.example.com
    
    [ipaserver:vars]
    ipaserver_domain=idm.example.com
    ipaserver_realm=IDM.EXAMPLE.COM
    ipaserver_setup_dns=yes
    ipaserver_auto_forwarders=yes
    ipaadmin_password=MySecretPassword123
    ipadm_password=MySecretPassword234
    
    [...]

    带有自定义 firewalld 区的清单文件示例

    [ipaserver]
    server.idm.example.com
    
    [ipaserver:vars]
    ipaserver_domain=idm.example.com
    ipaserver_realm=IDM.EXAMPLE.COM
    ipaserver_setup_dns=yes
    ipaserver_auto_forwarders=yes
    ipaadmin_password=MySecretPassword123
    ipadm_password=MySecretPassword234
    ipaserver_firewalld_zone=custom zone
    
    [...]

  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: yes
    
      roles:
      - role: 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: yes
  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/chain.crt"
    
      pre_tasks:
      - name: Copy "{{ groups.ipaserver[0] + '-chain.crt' }}" to /root/chain.crt on node
        copy:
          src: "{{ groups.ipaserver[0] + '-chain.crt' }}"
          dest: "/root/chain.crt"
          force: yes
    
      roles:
      - role: ipaserver
        state: present

其他资源

  • 有关转发策略的默认设置,请参阅 ipa-dns-install(1) 手册页中的 --forward-policy 描述。
  • 有关 ipaserver 角色使用的 DNS 变量的更多信息,请参阅 /usr/share/doc/ansible-freeipa 目录中 README-server.md 文件中的 DNS 变量部分。
  • 有关清单文件的更多信息,请参阅 如何构建您的清单

25.8. 为带有外部 DNS 和外部 CA 作为根 CA 的部署设置参数

完成这个流程,来为在使用外部 DNS 解决方案的环境中安装带有外部 CA 作为根 CA 的 IdM 服务器配置清单文件。

注意

此流程中的清单文件使用 INI 格式。或者,也可以使用 YAMLJSON 格式。

步骤

  1. 创建 ~/MyPlaybooks/ 目录:

    $ mkdir MyPlaybooks
  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
    [...]

    包含所需服务器信息(包括密码)的清单文件示例

    [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
    
    [...]

    带有自定义 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
    
    [...]

  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: yes
    
      roles:
      - role: 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: yes
  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/chain.crt"
    
      pre_tasks:
      - name: Copy "{{ groups.ipaserver[0] + '-chain.crt' }}" to /root/chain.crt on node
        copy:
          src: "{{ groups.ipaserver[0] + '-chain.crt' }}"
          dest: "/root/chain.crt"
          force: yes
    
      roles:
      - role: ipaserver
        state: present

其他资源

25.9. 使用 Ansible playbook 将外部 CA 部署 IdM 服务器作为 root CA

完成此流程,来使用 Ansible playbook 部署具有外部证书颁发机构(CA)作为根 CA 的 IdM 服务器。

注意

此流程中的清单文件使用 INI 格式。或者,也可以使用 YAMLJSON 格式。

先决条件

  • 您可以通过选择以下流程之一来设置与您的场景相对应的参数:

  • 您已阅读并理解了您可以与 ipaserver 角色一起使用的变量,如 /usr/share/doc/ansible-freeipa/README-server.md 文件中所述。

步骤

  1. 运行ansible-playbook 命令,并带有 playbook 文件名,该文件包含安装的第一步的说明,如 install-server-step1.yml。使用 -i 选项指定清单文件:

    $ ansible-playbook --vault-password-file=password_file -v -i ~/MyPlaybooks/inventory ~/MyPlaybooks/install-server-step1.yml

    使用 -v-vv-vvv 选项来指定详细程度。

    您可以查看在命令行界面(CLI)上的 Ansible playbook 脚本的输出。以下输出显示该脚本运行成功,有 0 个任务失败:

    PLAY RECAP
    server.idm.example.com : ok=18   changed=10   unreachable=0    failed=0    skipped=21   rescued=0    ignored=0
  2. 在控制器上找到 ipa.csr 证书签名请求文件,并提交给外部的 CA。
  3. 将外部 CA 签名的 IdM CA 证书放在控制器文件系统中,以便下一步中的 playbook 可以找到它。
  4. 运行 ansible-playbook 命令,并带有 playbook 文件名,该文件包含安装的最后一步的说明,如 install-server-step2.yml。使用 -i 选项指定清单文件:

    $ ansible-playbook -v -i ~/MyPlaybooks/inventory ~/MyPlaybooks/install-server-step2.yml
  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
      ...
    重要

    在将 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 服务器使用的时间服务器同步。

其他资源

有关如何部署 集成 CA 作为 root CA 的 IdM 服务器的说明,请参阅 使用 Ansible playbook 部署集成 CA 作为 root CA 的 IdM 服务器

25.10. 使用 Ansible playbook 卸载 IdM 服务器

注意

在现有的身份管理(IdM)部署中,副本服务器 是可交换的术语。

完成此流程,使用 Ansible playbook 来卸载 IdM 副本。在本例中:

  • server123.idm.example.com 卸载 IdM 配置。
  • server123.idm.example.com 和关联的主机条目从 IdM 拓扑中删除。

先决条件

  • 在控制节点上:

    • 您使用 Ansible 版本 2.14 或更高版本。
    • 您已安装 ansible-freeipa 软件包。
    • 您已在 ~/MyPlaybooks/ 目录中创建了一个带有 IdM 服务器的完全限定域名(FQDN)的 Ansible 清单文件
    • 您已将 ipaadmin_password 存储在 secret.yml Ansible vault 中。
    • 要使 ipaserver_remove_from_topology 选项正常工作,系统必须运行在 RHEL 9.3 或更高版本上。
  • 在受管节点上:

    • 系统运行在 RHEL 7.6 或更高版本上。

流程

  1. 使用以下内容创建 Ansible playbook 文件 uninstall-server.yml

    ---
    - name: Playbook to uninstall an IdM replica
      hosts: ipaserver
      become: true
    
      roles:
      - role: ipaserver
        ipaserver_remove_from_domain: true
        state: absent

    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>/hosts <path_to_playbooks_directory>/uninstall-server.yml
  3. 确保指向 server123.idm.example.com 的所有名称服务器(NS) DNS 记录都从 DNS 区域中删除。无论您使用由 IdM 还是外部 DNS 管理的集成 DNS,这个均适用。有关如何从 IdM 中删除 DNS 记录的更多信息,请参阅 在 IdM CLI 中删除 DNS 记录

25.11. 如果这会导致断开连接的拓扑,请使用 Ansible playbook 卸载 IdM 服务器

注意

在现有的身份管理(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.14 或更高版本。
    • 系统运行在 RHEL 9.3 或更高版本上。
    • 您已安装 ansible-freeipa 软件包。
    • 您已在 ~/MyPlaybooks/ 目录中创建了一个带有 IdM 服务器的完全限定域名(FQDN)的 Ansible 清单文件
    • 您已将 ipaadmin_password 存储在 secret.yml Ansible vault 中。
  • 在受管节点上:

    • 系统运行在 RHEL 7.6 或更高版本上。

流程

  1. 使用以下内容创建 Ansible playbook 文件 uninstall-server.yml

    ---
    - name: Playbook to uninstall an IdM replica
      hosts: ipaserver
      become: true
    
      roles:
      - role: ipaserver
        ipaserver_remove_from_domain: true
        ipaserver_remove_on_server: server456.idm.example.com
        ipaserver_ignore_topology_disconnect: true
        state: absent
    注意

    正常情况下,如果删除 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
  3. 确保指向 server123.idm.example.com 的所有名称服务器(NS) DNS 记录都从 DNS 区域中删除。无论您使用由 IdM 还是外部 DNS 管理的集成 DNS,这个均适用。有关如何从 IdM 中删除 DNS 记录的更多信息,请参阅 在 IdM CLI 中删除 DNS 记录

其他资源

第 26 章 使用 Ansible playbook 安装身份管理副本

使用 Ansible 将系统配置为 IdM 副本,来将其注册到 IdM 域,并让系统使用域中 IdM 服务器上的 IdM 服务。

部署是由 ipareplica Ansible 角色来管理的。该角色可以使用自动发现模式来识别 IdM 服务器、域和其他设置。但是,如果您以类似于层的模式部署多个副本,在不同时间部署不同的副本组,您必须为每个组定义特定的服务器或副本。

先决条件

  • 您已在 Ansible 控制节点上安装了 ansible-freeipa 软件包。
  • 您了解 Ansible 和 IdM 概念:

    • Ansible 角色
    • Ansible 节点
    • Ansible 清单
    • Ansible 任务
    • Ansible 模块
    • Ansible play 和 playbook

其他资源

26.1. 指定用于安装 IdM 副本的基础、服务器和客户端变量

完成这个步骤来配置用于安装 IdM 副本的清单文件。

先决条件

  • 您已配置了 Ansible 控制节点以满足以下要求:

    • 您使用 Ansible 版本 2.14 或更高版本。
    • 您已在 Ansible 控制器上安装了 ansible-freeipa 软件包。
    • 示例假定在 ~/MyPlaybooks/ 目录中,您已创建了一个带有 IdM 服务器的完全限定域名(FQDN)的 Ansible 清单文件
    • 示例假定 secret.yml Ansible vault 存储了 ipaadmin_password
  • 目标节点(也就是执行 ansible-freeipa 模块的节点)是 IdM 域的一部分,作为 IdM 客户端、服务器或副本。

流程

  1. 打开清单文件进行编辑。指定要成为 IdM 副本的主机的完全限定域名(FQDN)。FQDN 必须是有效的 DNS 名称:

    • 仅允许数字、字母字符和连字符(-)。例如,不允许使用下划线,这可能导致 DNS 失败。
    • 主机名必须都是小写。

      仅定义副本 FQDN 的简单清单主机文件示例

      [ipareplicas]
      replica1.idm.example.com
      replica2.idm.example.com
      replica3.idm.example.com
      [...]

      如果 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
    [...]

    场景 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

    在上例中,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

    将使用 ipareplica_servers 中的第一个条目。第二个条目将用作回退选项。在使用多个层来部署 IdM 副本时,您必须在 playbook 中有单独的任务来首先从 tier1 部署副本,然后从 tier2 部署副本。

    为不同副本组使用不同 play 的 playbook 文件示例

    ---
    - name: Playbook to configure IPA replicas (tier1)
      hosts: ipareplicas_tier1
      become: true
    
      roles:
      - role: ipareplica
        state: present
    
    - name: Playbook to configure IPA replicas (tier2)
      hosts: ipareplicas_tier2
      become: true
    
      roles:
      - role: ipareplica
        state: present

  3. [可选] 提供有关 firewalld 和 DNS 的更多信息:

    场景 1

    如果您希望副本使用指定的 firewalld 区而不是默认区,您可以在清单文件中指定它。例如,当您要为您的 IdM 安装使用内部 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

    场景 2

    如果您希望副本托管 IdM DNS 服务,请将 ipareplica_setup_dns=yes 行添加到 [ipareplicas:vars] 部分。另外,请指定您是否要使用每服务器 DNS 转发器:

    • 要配置每服务器转发器,请将 ipareplica_forwarders 变量和字符串列表添加到 [ipareplicas:vars] 部分,例如:ipareplica_forwarders=192.0.2.1,192.0.2.2
    • 若要配置无每服务器转发器,请将以下行添加到 [ipareplicas:vars] 部分:ipareplica_no_forwarders=yes
    • 要根据副本的 /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=yes
    ipareplica_forwarders=192.0.2.1,192.0.2.2

    场景 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

    注意

    ipaclient_dns_servers 列表必须仅包含 IP 地址。主机名不允许。

其他资源

  • 有关 ipareplica 变量的更多信息,请参阅 /usr/share/ansible/roles/ipareplica/README.md Markdown 文件。

26.2. 使用 Ansible playbook 指定用于安装 IdM 副本的凭证

完成这个步骤来配置安装 IdM 副本的授权。

先决条件

  • 您已配置了 Ansible 控制节点以满足以下要求:

    • 您使用 Ansible 版本 2.14 或更高版本。
    • 您已在 Ansible 控制器上安装了 ansible-freeipa 软件包。
    • 示例假定在 ~/MyPlaybooks/ 目录中,您已创建了一个带有 IdM 服务器的完全限定域名(FQDN)的 Ansible 清单文件
    • 示例假定 secret.yml Ansible vault 存储了 ipaadmin_password
  • 目标节点(也就是执行 ansible-freeipa 模块的节点)是 IdM 域的一部分,作为 IdM 客户端、服务器或副本。

步骤

  1. 指定 授权部署副本的用户的密码,如 IdM admin

    • 红帽建议使用 Ansible Vault 来存储密码,并从 playbook 文件引用 Vault 文件,如 install-replica.yml

      使用来自清单文件和 Ansible Vault 文件中的密码的主体的 playbook 文件示例

      - name: Playbook to configure IPA replicas
        hosts: ipareplicas
        become: true
        vars_files:
        - playbook_sensitive_data.yml
      
        roles:
        - role: ipareplica
          state: present

      有关如何使用 Ansible Vault 的详细信息,请参阅官方 Ansible Vault 文档。

    • 直接在清单文件中提供 admin 的凭证不太安全。请在清单文件的 [ipareplicas:vars] 部分中使用 ipaadmin_password 选项。然后,清单文件和 install-replica.yml playbook 文件类似如下:

      清单 hosts.replica 文件示例

      [...]
      [ipareplicas:vars]
      ipaadmin_password=Secret123

      使用清单文件中的主体和密码的 playbook 示例

      - name: Playbook to configure IPA replicas
        hosts: ipareplicas
        become: true
      
        roles:
        - role: ipareplica
          state: present

    • 或者,在清单文件中提供授权直接部署副本的另一个用户的凭证也不太安全。要指定不同的授权用户,请使用 ipaadmin_principal 选项作为用户名,使用 ipaadmin_password 选项作为密码。然后,清单文件和 install-replica.yml playbook 文件类似如下:

      清单 hosts.replica 文件示例

      [...]
      [ipareplicas:vars]
      ipaadmin_principal=my_admin
      ipaadmin_password=my_admin_secret123

      使用清单文件中的主体和密码的 playbook 示例

      - name: Playbook to configure IPA replicas
        hosts: ipareplicas
        become: true
      
        roles:
        - role: ipareplica
          state: present

其他资源

  • 有关 ipareplica Ansible 角色可接受的选项的详情,请查看 /usr/share/ansible/roles/ipareplica/README.md Markdown 文件。

26.3. 使用 Ansible playbook 部署 IdM 副本

完成此流程,使用 Ansible playbook 来部署 IdM 副本。

先决条件

步骤

  • 要使用 Ansible playbook 来安装 IdM 副本,请使用 ansible-playbook 命令及 playbook 文件名,如 install-replica.yml。使用 -i 选项指定清单文件:

    $ ansible-playbook --vault-password-file=password_file -v -i <path_to_inventory_directory>/hosts.replica <path_to_playbooks_directory>/install-replica.yml

    使用 -v-vv-vvv 选项来指定详细程度。

    Ansible 告知您执行 Ansible playbook 脚本。以下输出显示该脚本运行成功,有 0 个任务失败:

    PLAY RECAP
    replica.idm.example.com : ok=18   changed=10   unreachable=0    failed=0    skipped=21   rescued=0    ignored=0

您现在已安装了 IdM 副本。

26.4. 使用 Ansible playbook 卸载一个 IdM 副本

注意

在现有的身份管理(IdM)部署中,副本服务器 是可交换的术语。有关如何卸载 IdM 服务器的详情,请参考 使用 Ansible playbook 卸载 IdM 服务器使用 Ansible playbook 卸载 IdM 服务器,即使这会导致断开连接的拓扑

第 27 章 使用 Ansible playbook 安装身份管理客户端

了解如何使用 Ansible 将系统配置为身份管理(IdM)客户端。将系统配置为 IdM 客户端将其注册到 IdM 域中,并让系统在域中的 IdM 服务器中使用 IdM 服务。

部署是由 ipaclient Ansible 角色来管理的。默认情况下,该角色使用 autodiscovery 模式来识别 IdM 服务器、域和其他设置。角色可以被修改为使用 Ansible playbook 使用指定的设置,例如在清单文件中。

先决条件

  • 您已在 Ansible 控制节点上安装了 ansible-freeipa 软件包。
  • 您了解 Ansible 和 IdM 概念:

    • Ansible 角色
    • Ansible 节点
    • Ansible 清单
    • Ansible 任务
    • Ansible 模块
    • Ansible play 和 playbook

27.1. 为自动发现客户端安装模式设置清单文件的参数

要使用 Ansible playbook 安装身份管理客户端,请在清单文件中配置目标主机参数,如 inventory/hosts

  • 有关主机的信息
  • 对任务的授权

根据您拥有的清单插件,清单文件可以采用多种格式。INI 格式是 Ansible 的默认值之一,如下例中使用。

注意

要在 RHEL 中将智能卡与图形用户界面搭配使用,请确保在 Ansible playbook 中包含 ipaclient_mkhomedir 变量。

先决条件

步骤

  1. 指定要成为 IdM 客户端的主机的完全限定主机名(FQDN)。完全限定域名必须是有效的 DNS 名称:

    • 仅允许数字、字母字符和连字符(-)。例如,不允许使用下划线,这可能导致 DNS 失败。
    • 主机名必须都是小写。不允许使用大写字母。

    如果在 IdM DNS 区中正确设置了 SRV 记录,该脚本会自动发现所有其他必要的值。

    只带有客户端 FQDN 定义的简单的清单主机文件示例

    [ipaclients]
    client.idm.example.com
    [...]

  2. 指定注册客户端的凭证。可用的验证方法如下:

    • 注册 客户端的用户权限的密码。这是默认选项。

      • 红帽建议使用 Ansible Vault 来存储密码,并从 playbook 文件引用 Vault 文件,如 install-client.yml

        使用来自清单文件和 Ansible Vault 文件中的密码的主体的 playbook 文件示例

        - name: Playbook to configure IPA clients with username/password
          hosts: ipaclients
          become: true
          vars_files:
          - playbook_sensitive_data.yml
        
          roles:
          - role: ipaclient
            state: present

      • 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

        使用清单文件中的主体和密码的 Playbook 示例

        - name: Playbook to unconfigure IPA clients
          hosts: ipaclients
          become: true
        
          roles:
          - role: ipaclient
            state: true

    • 之前的注册的 客户端 keytab ,如果其仍然可用。

      如果系统之前作为身份管理客户端注册,则可以使用这个选项。要使用此身份验证方法,请取消 #ipaclient_keytab 选项的注释,指定存储 keytab 的文件的路径,例如在 inventory/hosts[ipaclient:vars] 部分。

    • 在注册过程中生成的随机一次性密码 (OTP)。要使用此身份验证方法,请在清单文件中使用 ipaclient_use_otp=yes 选项。例如,您可以取消 inventory/hosts 文件的 [ipaclients:vars] 部分中的 ipaclient _use_otp=yes 选项的注释。请注意,对于 OTP,还必须指定以下选项之一:

      • 授权注册客户端的用户的密码 ,例如,为 inventory/hosts 文件的 [ipaclients:vars] 部分的 ipaadmin_password 提供值。
      • admin keytab,例如,为 inventory/hosts[ipaclients:vars] 部分中的 ipaadmin_keytab 提供值。
  3. [可选] 使用 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

    注意

    ipaclient_dns_servers 列表必须仅包含 IP 地址。主机名不允许。

  4. 从 RHEL 9.3 开始,您还可以指定 ipaclient_subid: true 选项,来在 IdM 级别上为 IdM 用户配置子范围。

其他资源

27.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
        [...]

  3. 指定注册客户端的凭证。可用的验证方法如下:

    • 注册 客户端的用户权限的密码。这是默认选项。

      • 红帽建议使用 Ansible Vault 来存储密码,并从 playbook 文件引用 Vault 文件,如 install-client.yml

        使用来自清单文件和 Ansible Vault 文件中的密码的主体的 playbook 文件示例

        - name: Playbook to configure IPA clients with username/password
          hosts: ipaclients
          become: true
          vars_files:
          - playbook_sensitive_data.yml
        
          roles:
          - role: ipaclient
            state: present

    • 不太安全的是,使用 inventory/hosts 文件的 [ipaclients:vars] 部分中的 ipaadmin_password 选项提供的 admin 的凭证。或者,指定不同的授权用户,请使用 ipaadmin_principal 选项作为用户名,使用 ipaadmin_password 选项作为密码。install-client.yml playbook 文件类似如下:

      清单主机文件示例

      [...]
      [ipaclients:vars]
      ipaadmin_principal=my_admin
      ipaadmin_password=Secret123

      使用清单文件中的主体和密码的 Playbook 示例

      - name: Playbook to unconfigure IPA clients
        hosts: ipaclients
        become: true
      
        roles:
        - role: ipaclient
          state: true

    • 之前注册的客户端 keytab,如果仍然可用:

      如果系统之前作为身份管理客户端注册,则可以使用这个选项。要使用此身份验证方法,请取消 ipaclient_keytab 选项的注释,指定存储 keytab 的文件的路径,例如在 inventory/hosts[ipaclient:vars] 部分。

    • 在注册过程中生成的随机一次性密码 (OTP)。要使用此身份验证方法,请在清单文件中使用 ipaclient_use_otp=yes 选项。例如,您可以取消 inventory/hosts 文件的 [ipaclients:vars] 部分中 #ipaclient_use_otp=yes 选项的注释。请注意,对于 OTP,还必须指定以下选项之一:

      • 授权注册客户端的用户的密码 ,例如,为 inventory/hosts 文件的 [ipaclients:vars] 部分的 ipaadmin_password 提供值。
      • admin keytab,例如,为 inventory/hosts[ipaclients:vars] 部分中的 ipaadmin_keytab 提供值。
  4. 从 RHEL 9.3 开始,您还可以指定 ipaclient_subid: true 选项,来在 IdM 级别上为 IdM 用户配置子范围。

其他资源

  • 有关 ipaclient Ansible 角色可接受的选项的详情,请查看 /usr/share/ansible/roles/ipaclient/README.md 文件。
  • 手动管理 subID 范围

27.3. 检查 install-client.yml 文件中的参数

install-client.yml playbook 文件包含 IdM 客户端部署的指令。

步骤

  • 打开该文件,检查 playbook 中的说明是否与您计划部署的内容对应。通常,内容类似如下:

    ---
    - name: Playbook to configure IPA clients with username/password
      hosts: ipaclients
      become: true
    
      roles:
      - role: ipaclient
        state: present

    这代表单个条目:

    • 主机条目指定 inventory/hosts 文件的一部分,其中 ansible 脚本搜索 ipa-client-install 脚本将在其上运行的主机的 FQDN
    • become: true 条目指定在执行 ipa-client-install 脚本的过程中将调用的 root 的凭证。
    • role: ipaclient 条目指定主机上要安装的角色:本例中为 ipa 客户端角色。
    • state: present 条目指定应安装的客户端,而不是要卸载的客户端 (absent)。

27.4. 使用 Ansible playbook 进行 IdM 客户端注册的授权选项

IdM 客户端注册的独立授权选项以及清单和 playbook 文件示例如下:

表 27.1. 使用 Ansible 的 IdM 客户端注册的授权选项

授权选项备注清单文件示例install-client.yml playbook 文件示例

授权注册客户端的用户密码:选项 1

密码存储在 Ansible vault 中

[ipaclients:vars]
[...]
- name: Playbook to configure IPA clients with username/password
  hosts: ipaclients
  become: true
  vars_files:
  - playbook_sensitive_data.yml

  roles:
  - role: ipaclient
    state: present

授权注册客户端的用户密码:选项 2

保存在清单文件中的密码

[ipaclients:vars]
ipaadmin_password=Secret123
- name: Playbook to configure IPA clients
  hosts: ipaclients
  become: true

  roles:
  - role: ipaclient
    state: true

随机的、一次性密码(OTP):选项 1

OTP + 管理员密码

[ipaclients:vars]
ipaadmin_password=Secret123
ipaclient_use_otp=true
- name: Playbook to configure IPA clients
  hosts: ipaclients
  become: true

  roles:
  - role: ipaclient
    state: true

随机的、一次性密码(OTP):选项 2

OTP + admin keytab

[ipaclients:vars]
ipaadmin_keytab=/root/admin.keytab
ipaclient_use_otp=true
- name: Playbook to configure IPA clients
  hosts: ipaclients
  become: true

  roles:
  - role: ipaclient
    state: true

之前注册中的客户端 keytab

 
[ipaclients:vars]
ipaclient_keytab=/root/krb5.keytab
- name: Playbook to configure IPA clients
  hosts: ipaclients
  become: true

  roles:
  - role: ipaclient
    state: true
注意

从 RHEL 9.2 开始,在上述两个 OTP 授权场景中,使用 kinit 命令的管理员的 TGT 请求发生在第一个指定或发现的 IdM 服务器上。因此,不需要对 Ansible 控制节点进行额外的修改。在 RHEL 9.2 之前,控制节点上需要 krb5-workstation 软件包。

27.5. 使用 Ansible playbook 部署 IdM 客户端

完成此流程,使用 Ansible playbook 在 IdM 环境中部署 IdM 客户端。

步骤

  • 要使用 Ansible playbook 来安装 IdM 客户端,请使用 ansible-playbook 命令及 playbook 文件名,如 install-client.yml。使用 -i 选项指定清单文件:

    $ ansible-playbook --vault-password-file=password_file -v -i inventory/hosts install-client.yml

    使用 -v-vv-vvv 选项来指定详细程度。

    Ansible 告知您执行 Ansible playbook 脚本。以下输出显示,该脚本因为没有失败而成功运行:

    PLAY RECAP
    client1.idm.example.com : ok=18 changed=10 unreachable=0 failed=0 skipped=21 rescued=0 ignored=0
    注意

    Ansible 使用不同的颜色来提供有关运行中过程的不同类型信息。您可以修改 /etc/ansible/ansible.cfg 文件的 [colors] 部分中的默认颜色:

    [colors]
    [...]
    #error = red
    #debug = dark gray
    #deprecate = purple
    #skip = cyan
    #unreachable = red
    #ok = green
    #changed = yellow
    [...]

现在,您已使用 Ansible playbook 在主机上安装 IdM 客户端了。

27.6. Ansible 安装后测试身份管理客户端

命令行界面(CLI)告知您 ansible-playbook 命令已成功完成,但您也可以自行进行测试。

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

[user@client1 ~]$ id admin
uid=1254400000(admin) gid=1254400000(admins) groups=1254400000(admins)

要测试身份验证是否正常工作,请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 ~]$

27.7. 使用 Ansible playbook 卸载 IdM 客户端

完成此流程,使用 Ansible playbook 将主机卸载为 IdM 客户端。

先决条件

  • IdM 管理员凭证。

步骤

  • 要卸载 IdM 客户端,请使用 ansible-playbook 命令及 playbook 文件名,如 uninstall-client.yml。使用 -i 选项指定清单文件,也可选择使用 -v-vv-vvv 选项来指定详细程度:

    $ ansible-playbook --vault-password-file=password_file -v -i inventory/hosts uninstall-client.yml
重要

卸载客户端只从主机中删除基本的 IdM 配置,但会在主机上保留配置文件,以防您决定重新安装客户端。另外,卸载有以下限制:

  • 它不会从 IdM LDAP 服务器中删除客户端主机条目。卸载仅是将主机取消注册。
  • 它不会从 IdM 中删除任何位于客户端的服务。
  • 它不会从 IdM 服务器中删除客户端的 DNS 条目。
  • 它不会删除 /etc/krb5.keytab 之外的 keytab 的旧主体。

请注意,卸载会删除 IdM CA 为主机发布的所有证书。

其它资源

第 28 章 在现有 IdM 服务器上安装 DNS

按照以下流程,在最初没有安装它的身份管理(IdM)服务器上安装 DNS 服务。

先决条件

步骤

  1. [可选] 验证 DNS 尚未安装在 IdM 服务器上。

    [root@r8server ~]# ipa server-role-show r8server.idm.example.com
    Role name: DNS server
      Server name: r8server.idm.example.com
      Role name: DNS server
      Role status: absent

    输出确认服务器上没有 IdM DNS 。

  2. 启用 idm:DL1 流:

    [root@r8server ~]# yum module enable idm:DL1
  3. 下载 ipa-dns-server 软件包及其依赖项:

    [root@r8server ~]# yum module install idm:DL1/dns
  4. 启动脚本来在服务器上安装 DNS:

    [root@r8server ~]# ipa-dns-install
    1. 脚本提示每台服务器的 DNS 转发器。

      Do you want to configure DNS forwarders? [yes]:
      • 要配置每台服务器的 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]:

      如果您运行搜索并发现丢失了反向区,脚本会询问您是否创建反向区以及 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.
      注意

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

其它资源

  • man ipa-dns-install(1)

第 29 章 从 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 中的流程操作,具体取决于您的用例。

第 30 章 在没有 CA 的部署中将 IdM CA 服务添加到 IdM 服务器

如果您之前安装了没有证书颁发机构(CA)组件的身份管理(IdM)域,则您可以使用 ipa-ca-install 命令将 IdM CA 服务添加到域。根据您的要求,您可以选择以下选项之一:

注意

有关支持的 CA 配置的详情,请参阅 规划您的 CA 服务

30.1. 将第一个 IdM CA 作为 root CA 安装到现有 IdM 域中

如果您之前安装了没有证书颁发机构(CA)组件的身份管理(IdM),则您可以随后在 IdM 服务器上安装 CA。按照以下流程,在 idmserver 服务器上安装一个不隶属于任何外部 root CA 的 IdM CA。

先决条件

  • 您在 idmserver 上具有 root 权限。
  • IdM 服务器安装在 idmserver 上。
  • 您的 IdM 部署没有安装 CA。
  • 您知道 IdM 目录管理器 的密码。

步骤

  1. idmserver 上,安装 IdM 证书服务器 CA:

    [root@idmserver ~] ipa-ca-install
  2. 在拓扑中的每个 IdM 主机上,运行 ipa-certupdate 工具来使用 IdM LDAP 中的新证书的信息更新主机。

    重要

    如果在生成 IdM CA 证书后不运行 ipa-certupdate,则证书不会分发到其他 IdM 机器。

30.2. 将第一个将外部 CA 作为 root CA 的 IdM CA 安装到现有 IdM 域中

如果您之前安装了没有证书颁发机构(CA)组件的身份管理(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
  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
  6. 在拓扑中的每个 IdM 主机上,运行 ipa-certupdate 工具来使用 IdM LDAP 中的新证书的信息更新主机。

    重要

    在生成 IdM CA 证书后无法运行 ipa-certupdate 意味着证书不会被分发到其他 IdM 机器。

第 31 章 在带有 CA 的部署中将 IdM CA 服务添加到 IdM 服务器

如果您的身份管理(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

第 32 章 从 IdM 服务器卸载 IdM CA 服务

如果在您的拓扑中有超过四个带有 CA 角色 的身份管理(IdM)副本,并且您因为冗余证书复制而遇到性能问题,(RH)建议您从 IdM 副本中删除冗余的 CA 服务实例。为此,您必须首先在其上重新安装 IdM 之前完全停用受影响的 IdM 副本,这一次没有 CA 服务。

注意

虽然您可以将 CA 角色 添加 到 IdM 副本中,但 IdM 没有提供一种只从 IdM 副本中 删除 CA 角色的方法:ipa-ca-install 命令没有 --uninstall 选项。

先决条件

  • 您已在拓扑中四个以上的 IdM 服务器上安装了 IdM CA 服务。

步骤

  1. 识别冗余 CA 服务,并按照在托管此服务的 IdM 副本上 卸载 IdM 服务器 中的流程操作。
  2. 在同一台主机上,按照 安装带有集成 DNS,没有 CA 的 IdM 服务器: 中的流程操作。

法律通告

Copyright © 2024 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.