Red Hat Training

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

2.3. 安装 IdM 服务器:简介

注意
以下部分中的安装过程和示例不是相互排斥的:您可以组合它们来实现所需的结果。例如,您可以安装具有集成 DNS 的服务器,并使用外部托管的 root CA 安装。
ipa-server-install 工具安装和配置 IdM 服务器。
在安装服务器前,请查看以下部分:
ipa-server-install 工具提供了一个非互动安装模式,它允许自动和无人值守的服务器设置。详情请查看 第 2.3.7 节 “非临时安装服务器”
ipa-server-install 安装脚本在 /var/log/ipaserver-install.log 中创建一个日志文件。如果安装失败,日志可帮助您辨别问题。

2.3.1. 确定使用集成 DNS

IdM 支持安装具有集成 DNS 或没有集成 DNS 的服务器。
带有集成 DNS 服务的 IdM 服务器
IdM 提供的集成 DNS 服务器并非旨在用作通用 DNS 服务器。它只支持与 IdM 部署和维护相关的功能。它不支持一些高级 DNS 功能。
红帽强烈建议 IdM 集成的 DNS 在 IdM 部署中的基本用法:当 IdM 服务器也管理 DNS 时,DNS 和原生 IdM 工具之间的紧密集成启用了自动化一些 DNS 记录管理。
请注意,即使 IdM 服务器被用作主 DNS 服务器,其他外部 DNS 服务器仍然可以用作从属服务器。
例如,如果您的环境已在使用其他 DNS 服务器,如 Active Directory 集成的 DNS 服务器,则只能将 IdM 主域委派给 IdM 集成的 DNS。您不需要将 DNS 区域迁移到 IdM 集成的 DNS。
注意
如果您需要在 Subject 备用名称 (SAN) 扩展中使用 IP 地址的 IdM 客户端发布证书,则必须使用 IdM 集成 DNS 服务。
要安装具有集成 DNS 的服务器,请参阅 第 2.3.3 节 “使用集成的 DNS 安装服务器”
没有集成 DNS 服务的 IdM 服务器
外部 DNS 服务器用于提供 DNS 服务。考虑在这些情况下在没有 DNS 的情况下安装 IdM 服务器:
  • 如果您需要超出 IdM DNS 范围的高级 DNS 功能
  • 在具有良好 DNS 基础架构的环境中,允许您使用外部 DNS 服务器
要在没有集成 DNS 的情况下安装服务器,请参阅 第 2.3.4 节 “安装没有集成的 DNS 的服务器”
重要
请确定您的系统满足 第 2.1.5 节 “主机名和 DNS 配置” 中描述的 DNS 要求。

集成或外部 DNS 的维护要求

使用集成的 DNS 服务器时,大部分 DNS 记录维护都是自动化的。您只需要:
  • 设置从父域到 IdM 服务器的正确委托
    例如,如果 IdM 域名是 ipa.example.com,则必须从 example.com 域正确委托。
    注意
    您可以使用以下命令验证委托:
    # dig @IP_address +norecurse +short ipa.example.com. NS
    ip_address 是管理 example.com DNS 域的服务器的 IP 地址。如果委派正确,命令列出安装了 DNS 服务器的 IdM 服务器。
在使用外部 DNS 服务器时,您必须:
  • 在 DNS 服务器中手动创建新域
  • 使用 IdM 安装程序生成的来自区域文件中的记录手动填充新域
  • 在安装或删除副本后手动更新记录,以及在服务配置中的任何更改后手动更新记录,例如在配置了 Active Directory 信任后

防止 DNS 简化攻击

IdM 集成的 DNS 服务器的默认配置允许所有客户端向 DNS 服务器发出递归查询。如果您的服务器部署到具有不受信任的客户端的网络中,请更改服务器配置以仅限制对授权客户端的递归。[1]
要确保只允许授权的客户端发出递归查询,请将适当的访问控制列表(ACL)语句添加到服务器上的 /etc/named.conf 文件中。例如:
acl authorized { 192.0.2.0/24; 198.51.100.0/24; };
options {
  allow-query { any; };
  allow-recursion { authorized; };
};

2.3.2. 确定要使用的 CA 配置

IdM 支持安装带有集成 IdM 证书颁发机构(CA)或没有 CA 的服务器。
带有集成 IdM CA 的服务器
这是适合大多数部署的默认配置。证书系统使用 CA 签名证书 在 IdM 域中创建和签署证书。
警告
红帽强烈建议将 CA 服务安装到多台服务器中。有关安装包括 CA 服务的初始服务器副本的详情请参考 第 4.5.4 节 “使用 CA 安装副本”
如果您只在一个服务器中安装 CA,则在 CA 服务器失败时可能会丢失 CA 配置且无法恢复。详情请查看 第 B.2.6 节 “恢复丢失的 CA 服务器”
IdM CA 签名证书可以是 root CA,也称为 自签名,或者可由外部 CA 签名。
IdM CA 是 root CA
这是默认配置。
外部 CA 是 root CA
IdM CA 属于外部 CA。但是,IdM 域的所有证书仍由证书系统实例颁发。
外部 CA 可以是企业 CA 或第三方 CA,如 Verisign 或 Thawte。外部 CA 可以是 root CA 或从属 CA。IdM 域中发布的证书可能会受到外部 root CA 或中间 CA 证书为属性(如有效周期或可发布证书的域)设置的限制。
要使用外部托管 root CA 安装服务器,请参阅 第 2.3.5 节 “使用外部 CA 作为 Root CA 安装服务器”
没有 CA 的服务器
当基础架构中的限制不允许使用服务器安装证书服务时,此配置选项适用于非常罕见的情况。
安装前,您必须从第三方颁发机构请求这些证书:
  • LDAP 服务器证书和私钥
  • Apache 服务器证书和私钥
  • 发布 LDAP 和 Apache 服务器证书的 CA 完整 CA 证书链
警告
在没有集成 IdM CA 的情况下管理证书会带来重大维护负担。例如,您必须手动管理 IdM 服务器的 Apache Web 服务器和 LDAP 服务器证书。这包括:
  • 创建和上传证书.
  • 监控证书的过期日期.请注意,如果您在没有集成 CA 的情况下安装了 IdM,certmonger 服务不会跟踪证书。
  • 在证书过期前续订证书以避免中断.
要安装没有集成 CA 的服务器,请参阅 第 2.3.6 节 “在没有 CA 的情况下安装”
注意
如果您在没有 CA 的情况下安装 IdM 域,您可以随后安装 CA 服务。要将 CA 安装到现有的 IdM 域,请参阅 第 26.8 节 “在现有 IdM 域中安装 CA”

2.3.3. 使用集成的 DNS 安装服务器

注意
如果您不确定适合哪些 DNS 或 CA 配置,请参阅 第 2.3.1 节 “确定使用集成 DNS”第 2.3.2 节 “确定要使用的 CA 配置”
要安装具有集成 DNS 的服务器,请在安装过程中提供以下信息:
DNS forwarders
支持以下 DNS 转发器设置:
  • 一个或多个转发器(非互动安装中的 --forwarder 选项)
  • 没有转发器(非互动安装中的 --no-forwarders 选项)
如果您不确定是否使用 DNS 转发,请参阅 第 33.6 节 “管理 DNS 转发”
反向 DNS 区域
支持以下反向 DNS 区域设置:
  • 自动检测需要在 IdM DNS 中创建反向区域(互动安装中的默认设置,非交互式安装中的 --auto-reverse 选项)
  • 没有反向区域自动检测(互动安装中的 --no-reverse 选项)
请注意,如果设置了 -- auto-reverse 选项,则 --allow-zone- overlap 选项将被忽略。使用选项的组合:
$ ipa-server-install --auto-reverse --allow-zone-overlap
因此,不会 创建可与现有 DNS 区域重叠的反向区域,例如在另一个 DNS 服务器上。
对于非交互式安装,还要添加 --setup-dns 选项。

例 2.1. 使用集成的 DNS 安装服务器

这个过程安装服务器:
  • 带有集成的 DNS
  • 集成 IdM CA 作为 root CA,这是默认 CA 配置
  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.example.com]:
    Please confirm the domain name [example.com]:
    Please provide a realm name [EXAMPLE.COM]:
    警告
    红帽强烈建议 Kerberos 域名与主 DNS 域名相同,且所有字母都使用大写。例如,如果主 DNS 域是 ipa.example.com,请将 IPA.EXAMPLE.COM 用于 Kerberos 域名。
    不同的命名实践将阻止您使用 Active Directory 信任,并可能导致其他负面影响。
  4. 输入目录服务器超级用户 cn=Directory Manager 以及 admin IdM 系统用户帐户的密码。
    Directory Manager password:
    IPA admin password:
  5. 此脚本提示 DNS 转发器。
    Do you want to configure DNS forwarders? [yes]:
    • 要配置 DNS 正向解析器,请输入 yes,然后按照命令行中的说明进行操作。
      安装过程会将正向解析器 IP 地址添加到安装的 IdM 服务器的 /etc/named.conf 文件中。
      • 有关转发策略默认设置,请查看 ipa-dns-install(1) man page 中的 --forward-policy 描述。
      • 详情请查看 “forward 策略”一节
    • 如果您不想使用 DNS 正向解析,请输入 no
  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 委托程序添加到 IdM DNS 域。例如,如果 IdM DNS 域是 ipa.example.com,请在 example.com 父域中添加一个名称服务器(NS)记录。
    重要
    每次安装 IdM DNS 服务器时,必须重复此步骤。
该脚本建议您备份 CA 证书并确保所需的网络端口已打开。有关 IdM 端口要求以及如何打开这些端口的说明的详情,请参考 第 2.1.6 节 “端口要求”
测试新服务器:
  1. 使用 admin 凭据向 Kerberos 域进行身份验证。这将验证 管理员 是否已正确配置,并且 Kerberos 域可以访问。
    # kinit admin
  2. 运行一个命令,如 ipa user-find。在新服务器上,命令会输出唯一配置的用户: admin
    # ipa user-find admin
    --------------
    1 user matched
    --------------
    User login: admin 
    Last name: Administrator 
    Home directory: /home/admin 
    Login shell: /bin/bash 
    UID: 939000000 
    GID: 939000000 
    Account disabled: False 
    Password: True 
    Kerberos keys available: True 
    ----------------------------
    Number of entries returned 1
    ----------------------------

2.3.4. 安装没有集成的 DNS 的服务器

注意
如果您不确定适合哪些 DNS 或 CA 配置,请参阅 第 2.3.1 节 “确定使用集成 DNS”第 2.3.2 节 “确定要使用的 CA 配置”
要安装没有集成 DNS 的服务器,请在没有任何与 DNS 相关的选项的情况下运行 ipa-server-install 工具。

例 2.2. 安装没有集成的 DNS 的服务器

这个过程安装服务器:
  • 没有集成的 DNS
  • 集成 IdM CA 作为 root 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.example.com]:
    Please confirm the domain name [example.com]:
    Please provide a realm name [EXAMPLE.COM]:
    警告
    红帽强烈建议 Kerberos 域名与主 DNS 域名相同,且所有字母都使用大写。例如,如果主 DNS 域是 ipa.example.com,请将 IPA.EXAMPLE.COM 用于 Kerberos 域名。
    不同的命名实践将阻止您使用 Active Directory 信任,并可能导致其他负面影响。
  4. 输入目录服务器超级用户 cn=Directory Manager 以及 admin IdM 系统用户帐户的密码。
    Directory Manager password:
    IPA admin password:
  5. 输入 yes 以确认服务器配置。
    Continue to configure the system with these values? [no]: yes
  6. 安装脚本现在配置服务器。等待操作完成。
  7. 安装脚本生成包含 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 服务器之前,服务器安装不会完成。
该脚本建议您备份 CA 证书并确保所需的网络端口已打开。有关 IdM 端口要求以及如何打开这些端口的说明的详情,请参考 第 2.1.6 节 “端口要求”
测试新服务器:
  1. 使用 admin 凭据向 Kerberos 域进行身份验证。这将验证 管理员 是否已正确配置,并且 Kerberos 域可以访问。
    # kinit admin
  2. 运行一个命令,如 ipa user-find。在新服务器上,命令会输出唯一配置的用户: admin
    # ipa user-find admin
    --------------
    1 user matched
    --------------
    User login: admin 
    Last name: Administrator 
    Home directory: /home/admin 
    Login shell: /bin/bash 
    UID: 939000000 
    GID: 939000000 
    Account disabled: False 
    Password: True 
    Kerberos keys available: True 
    ----------------------------
    Number of entries returned 1
    ----------------------------

2.3.5. 使用外部 CA 作为 Root CA 安装服务器

注意
如果您不确定适合哪些 DNS 或 CA 配置,请参阅 第 2.3.1 节 “确定使用集成 DNS”第 2.3.2 节 “确定要使用的 CA 配置”
要安装服务器并使用外部 CA 作为 root CA 链,请使用 ipa-server-install 工具传递这些选项:
  • --external-ca 指定您要使用外部 CA。
  • --external-ca-type 指定外部 CA 的类型。详情请查看 ipa-server-install(1) man page。
在证书系统实例配置过程中,该工具会打印证书签名请求(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 的服务的不同而有所不同。
    重要
    可能需要为证书请求适当的扩展。为身份管理生成的 CA 签名证书必须是有效的 CA 证书。这要求您在基本限制扩展 true 中设置 CA 参数。详情请查看 RFC 5280的基本约束 部分。
  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/servercert20110601.pem --external-cert-file=/tmp/cacert.pem
注意
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 环境变量时,会发生此失败。有关如何解决这个问题的解决方案,请参阅 第 B.1.1 节 “外部 CA 安装失败”

2.3.6. 在没有 CA 的情况下安装

注意
如果您不确定适合哪些 DNS 或 CA 配置,请参阅 第 2.3.1 节 “确定使用集成 DNS”第 2.3.2 节 “确定要使用的 CA 配置”
要安装没有 CA 的服务器,您必须通过在 ipa-server-install 工具中添加选项来手动提供所需的证书。另外,大多数安装过程与 第 2.3.3 节 “使用集成的 DNS 安装服务器”第 2.3.4 节 “安装没有集成的 DNS 的服务器” 中的相同。
重要
您不能使用自签名第三方服务器证书安装服务器或副本。

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

对于没有 CA 的 IdM 服务器安装,您必须提供以下证书:
  • 使用这些选项提供的 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)。请注意,IdM 安装程序接受串联的 PEM 编码对象。
      • 区分编码规则(DER)
      • PKCS #7 证书链对象
      • PKCS #8 私钥对象
      • PKCS #12 归档
      您可以多次指定 --dirsrv-cert-file--http-cert-file 选项来指定多个文件。
  • 如有必要,完成完整 CA 证书链的证书文件,使用这个选项提供:
    • --ca-cert-file,您可以多次添加这个选项
  • (可选)提供外部 Kerberos 密钥分发中心(KDC)PKINIT 证书的证书文件,使用以下选项提供:
    • --pkinit-cert-file 用于 Kerberos KDC SSL 证书和私钥
    • --PKINIT-pin,密码用于解锁 Kerberos KDC 私钥
    如果您不提供 PKINIT 证书,ipa-server-install 使用带有自签名证书的本地 KDC 来配置 IdM 服务器。详情请查看 第 27 章 IdM 中的 Kerberos PKINIT 身份验证
使用 --dirsrv-cert-file--http-cert-file 提供的文件以及使用 --ca-cert-file 提供的文件必须包含 CA 的完整 CA 证书链,并发出 LDAP 和 Apache 服务器证书。
有关证书文件接受哪些选项的详情,请查看 ipa-server-install(1) man page。
注意
列出的命令行选项与 --external-ca 选项不兼容。
注意
较早版本的身份管理使用 --root-ca-file 选项指定 root CA 证书的 PEM 文件。这不再需要,因为可信 CA 始终是 DS 和 HTTP 服务器证书的签发者。IdM 现在从 --dirsrv-cert-file、--http-cert-file--ca-cert-file 指定的证书自动识别 root CA 证书。

例 2.3. 安装没有 CA 的 IdM 服务器的命令示例

[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

2.3.7. 非临时安装服务器

注意
如果您不确定适合哪些 DNS 或 CA 配置,请参阅 第 2.3.1 节 “确定使用集成 DNS”第 2.3.2 节 “确定要使用的 CA 配置”
非互动安装的最低必需选项为:
  • --ds-password 为目录管理者(DM)(目录服务器超级用户)提供密码
  • --admin-passwordadmin (IdM 管理员)提供密码
  • --realm 提供 Kerberos 领域名
  • --unattended ,让安装进程为主机名和域名选择默认选项
另外,您还可以为这些设置提供自定义值:
  • --hostname 作为服务器主机名
  • --domain 作为域名
您还可以使用 --dirsrv-config-file 参数更改默认目录服务器设置,方法是使用带有自定义值的 LDIF 文件的路径。如需更多信息,请参阅 IdM 现在支持在服务器或副本安装过程中 为 Red Hat Enterprise Linux 7.3 设置独立目录服务器选项
警告
红帽强烈建议 Kerberos 域名与主 DNS 域名相同,且所有字母都使用大写。例如,如果主 DNS 域是 ipa.example.com,请将 IPA.EXAMPLE.COM 用于 Kerberos 域名。
不同的命名实践将阻止您使用 Active Directory 信任,并可能导致其他负面影响。
如需 ipa-server-install 接受的选项的完整列表,请运行 ipa-server-install --help 命令。

例 2.4. 基本安装(不交互)

  1. 运行 ipa-server-install 工具,提供所需的设置。例如,以下命令在没有集成 DNS 的情况下安装服务器,并使用集成 CA:
    # ipa-server-install --realm EXAMPLE.COM --ds-password DM_password --admin-password admin_password --unattended
  2. 设置脚本现在配置服务器。等待操作完成。
  3. 安装脚本生成包含 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 服务器之前,服务器安装不会完成。
该脚本建议您备份 CA 证书并确保所需的网络端口已打开。有关 IdM 端口要求以及如何打开这些端口的说明的详情,请参考 第 2.1.6 节 “端口要求”
测试新服务器:
  1. 使用 admin 凭据向 Kerberos 域进行身份验证。这将验证 管理员 是否已正确配置,并且 Kerberos 域可以访问。
    # kinit admin
  2. 运行一个命令,如 ipa user-find。在新服务器上,命令会输出唯一配置的用户: admin
    # ipa user-find admin
    --------------
    1 user matched
    --------------
    User login: admin 
    Last name: Administrator 
    Home directory: /home/admin 
    Login shell: /bin/bash 
    UID: 939000000 
    GID: 939000000 
    Account disabled: False 
    Password: True 
    Kerberos keys available: True 
    ----------------------------
    Number of entries returned 1
    ----------------------------


[1] 详情请查看 DNS Amplification Attacks 页面。