Red Hat Training

A Red Hat training course is available for RHEL 8

34.6. 为信任配置 DNS 和域设置

在您连接信任中的身份管理(IdM)和 Active Directory(AD)之前,您需要确保服务器可以互相看到,并能够正确解析域名。将 DNS 配置为允许在以下服务器之间使用域名:

  • 使用集成 DNS 服务器和认证认证机构的主 IdM 服务器。
  • 一个 AD Domain Controller。

DNS 设置需要:

  • 在 IdM 服务器中配置 DNS 区域
  • 在 AD 中配置有条件 DNS 转发
  • 验证 DNS 配置的正确性

34.6.1. 唯一的主 DNS 域

在 Windows 中,每个域都是一个 Kerberos 域(realm)和一个 DNS 域(domain)。每个由域控制器管理的域都需要拥有自己的专用 DNS 区。当身份管理(IdM)被 Active Directory(AD)信任为林时也是如此。AD 期望 IdM 有自己的 DNS 域。要使信任设置正常工作,DNS 域需要专用于 Linux 环境。

每个系统都必须配置自己的唯一的主 DNS 域。例如:

  • ad.example.com 用于 AD,Idm.example.com 用于 IdM。
  • example.com 用于 AD,idm.example.com 用于 IdM
  • AD的 ad.example.com 和 IdM 的 example.com

最方便的管理解决方案是,每个 DNS 域都由集成的 DNS 服务器管理,但也可以使用任何其他符合标准的 DNS 服务器。

Kerberos realm 名称作为主 DNS 域名的大写版本
Kerberos realm 名称必须与主 DNS 域名相同,且所有字母都为大写。例如,如果 AD 的域名是 ad.example.com,而 IdM的域名是 idm.example.com ,则 Kerberos 领域名称必须是 AD.EXAMPLE.COMIDM.EXAMPLE.COM
DNS 记录可从信任中的所有 DNS 域解析
所有机器都必须能够从所有涉及信任关系的 DNS 域解析 DNS 记录。
IdM 和 AD DNS 域
加入 IdM 的系统可以通过多个 DNS 域进行发布。红帽建议您在与 Active Directory 拥有的 DNS 区域中部署 IdM 客户端。主 IdM DNS 域必须具有正确的 SRV 记录来支持 AD 信任。
注意

在 IdM 和 Active Directory 之间具有信任的某些环境中,您可以在作为 Active Directory DNS 域一部分的主机上安装 IdM 客户端。然后,主机可以从基于 Linux 的 IdM 功能中获益。这不是推荐的配置,存在一些限制。如需了解更多详细信息,请参阅在 Active Directory DNS 域中配置 IdM 客户端

您可以运行以下命令来获取特定于您的系统设置所需的 SRV 记录列表:

$ ipa dns-update-system-records --dry-run

生成的列表可以类似如下:

IPA DNS records:
  _kerberos-master._tcp.idm.example.com. 86400 IN SRV 0 100 88 server.idm.example.com.
  _kerberos-master._udp.idm.example.com. 86400 IN SRV 0 100 88 server.idm.example.com.
  _kerberos._tcp.idm.example.com. 86400 IN SRV 0 100 88 server.idm.example.com.
  _kerberos._tcp.idm.example.com. 86400 IN SRV 0 100 88 server.idm.example.com.
  _kerberos.idm.example.com. 86400 IN TXT "IDM.EXAMPLE.COM"
  _kpasswd._tcp.idm.example.com. 86400 IN SRV 0 100 464 server.idm.example.com.
  _kpasswd._udp.idm.example.com. 86400 IN SRV 0 100 464 server.idm.example.com.
  _ldap._tcp.idm.example.com. 86400 IN SRV 0 100 389 server.idm.example.com.
  _ipa-ca.idm.example.com. 86400 IN A 192.168.122.2

对于同一 IdM 领域一部分的其他 DNS 域,在配置了对 AD 的信任时不需要配置 SRV 记录。原因在于 AD 域控制器不使用 SRV 记录来发现 KDC,而是基于对信任的名称后缀路由信息的 KDC 发现。

34.6.2. 在 IdM Web UI 中配置 DNS 转发区域

按照以下流程,使用 IdM Web UI 将 DNS 转发区域添加到身份管理(IdM)服务器中。

使用 DNS 转发区域,您可以将对特定区域的 DNS 查询转发到不同的 DNS 服务器。例如,您可以将活动目录(AD)域的 DNS 查询转发到 AD DNS 服务器。

先决条件

  • 使用具有管理员权限的用户帐户访问 IdM Web UI。
  • 正确配置了 DNS 服务器。

流程

  1. 使用管理员权限登录到 IdM Web UI。详情请参阅 在 Web 浏览器中访问 IdM Web UI
  2. Network Services 标签页。
  3. DNS 标签页。
  4. 在下拉菜单中点击 DNS Forward Zones 项。

    Screenshot of the IdM Web UI displaying the contents of the DNS drop-down submenu of the "Network Services" tab. The DNS drop-down menu has four options: DNS Zones - DNS Forward Zones - DNS Servers - DNS Global Configuration. "DNS Forward Zones" is highlighted.

  5. 点击 Add 按钮。
  6. Add DNS forward zone 对话框中,添加一个区名称。
  7. Zone forwarders 项中,点击 Add 按钮。
  8. Zone forwarders 字段中,添加您要为其创建转发区域的服务器的 IP 地址。
  9. 点击 Add 按钮。

    Screenshot of the "Add DNS forward zone" pop-up window with text entry fields for "Zone name" - "Reverse zone IP network" - "Zone forwarders." The "Forward policy" option has three radial buttons for "forward first" - "forward only" - "forward disabled." There is a checkbox for "Skip overlap check" and there are four buttons at the bottom: "Add" - "Add and Add Another" - "Add and Edit" - "Cancel."

正向区已添加到 DNS 设置中,您可以在 DNS Forward Zones 设置中进行验证。Web UI 会用以下弹出消息告诉您是否成功:DNS Forward Zone successfully added.

注意

在向配置中添加转发区域后,Web UI 可能会显示有关 DNSSEC 验证失败的警告。

Screenshot displaying a pop-up window that reads "DNSSEC validation failed - record ad.example.com SOA failed DNSSEC validation on server 192.168.122.2. Please verify your DNSSEC configuration or disable DNSSEC validation on all IPA servers."

DNSSEC(域名系统安全扩展)使用数字签名来保护 DNS 数据,使 DNS 免受攻击。在IdM 服务器中默认启用该服务。出现警告的原因是远程 DNS 服务器没有使用 DNSSEC。红帽建议您在远程 DNS 服务器上启用 DNSSEC。

如果您无法在远程服务器上启用 DNSSEC 验证,您可以在 IdM 服务器中禁用 DNSSEC :

  1. 选择要编辑的合适的配置文件:

    • 如果您的 IdM 服务器使用 RHEL 8.0 或 RHEL 8.1,请打开 /etc/named.conf 文件。
    • 如果您的 IdM 服务器使用 RHEL 8.2 或更高版本,请打开 /etc/named/ipa-options-ext.conf 文件。
  2. 添加以下 DNSSEC 参数:

    dnssec-enable no;
    dnssec-validation no;
  3. 保存并关闭配置文件。
  4. 重启 DNS 服务:

    # systemctl restart named-pkcs11

验证步骤

  • nslookup 命令与远程 DNS 服务器名称一起使用:

    $ nslookup ad.example.com
    Server:        192.168.122.2
    Address:       192.168.122.2#53
    
    No-authoritative answer:
    Name:          ad.example.com
    Address:       192.168.122.3

    如果您正确配置了域转发,则会显示远程 DNS 服务器的 IP 地址。

34.6.3. 在 CLI 中配置 DNS 转发区域

按照以下流程,使用命令行界面(CLI)将新的 DNS 转发区域添加到身份管理(IdM)服务器中。

使用 DNS 转发区域,您可以将对特定区域的 DNS 查询转发到不同的 DNS 服务器。例如,您可以将活动目录(AD)域的 DNS 查询转发到 AD DNS 服务器。

先决条件

  • 使用具有管理员权限的用户帐户访问 CLI。
  • 正确配置了 DNS 服务器。

流程

  • 为 AD 域创建 DNS 转发区域,并使用 --forwarder 选项指定远程 DNS 服务器的 IP 地址:

    # ipa dnsforwardzone-add ad.example.com --forwarder=192.168.122.3 --forward-policy=first
注意

在向配置添加新的转发区域后,您可能会在 /var/log/messages 系统日志中看到有关 DNSSEC 验证失败的警告:

named-pkcs11[2572]: no valid DS resolving 'host.ad.example.com/A/IN':  192.168.100.25#53

DNSSEC(域名系统安全扩展)使用数字签名来保护 DNS 数据,使 DNS 免受攻击。在IdM 服务器中默认启用该服务。出现警告的原因是远程 DNS 服务器没有使用 DNSSEC。红帽建议您在远程 DNS 服务器上启用 DNSSEC。

如果您无法在远程服务器上启用 DNSSEC 验证,您可以在 IdM 服务器中禁用 DNSSEC :

  1. 选择要编辑的合适的配置文件:

    • 如果您的 IdM 服务器使用 RHEL 8.0 或 RHEL 8.1,请打开 /etc/named.conf 文件。
    • 如果您的 IdM 服务器使用 RHEL 8.2 或更高版本,请打开 /etc/named/ipa-options-ext.conf 文件。
  2. 添加以下 DNSSEC 参数:

    dnssec-enable no;
    dnssec-validation no;
  3. 保存并关闭配置文件。
  4. 重启 DNS 服务:

    # systemctl restart named-pkcs11

验证步骤

  • nslookup 命令与远程 DNS 服务器名称一起使用:

    $ nslookup ad.example.com
    Server:        192.168.122.2
    Address:       192.168.122.2#53
    
    No-authoritative answer:
    Name:          ad.example.com
    Address:       192.168.122.3

    如果正确配置了域转发,nslookup 请求会显示远程 DNS 服务器的 IP 地址。

34.6.4. 在 AD 中配置 DNS 转发

按照以下流程,在活动目录(AD)中为身份管理(IdM)服务器设置 DNS 转发。

先决条件

  • 已安装 AD 的 Windows Server。
  • 在两个服务器中打开 DNS 端口。

流程

  1. 登录到 Windows 服务器。
  2. 打开 Server Manager
  3. 打开 DNS Manager
  4. Conditional Forwarders 中,使用以下内容添加新的条件正向解析器:

    • IdM 服务器 IP 地址
    • 完全限定域名,例如 server.idm.example.com
  5. 保存设置。

34.6.5. 验证 DNS 配置

在配置信任前,请验证身份管理(IdM)和 Active Directory(AD)服务器是否可以相互解析。

先决条件

  • 您需要以 sudo 权限登录。

流程

  1. 对通过 UDP 的 Kerberos 和通过 TCP 服务记录的 LDAP 运行 DNS 查询。

    [admin@server ~]# dig +short -t SRV _kerberos._udp.idm.example.com.
    0 100 88 server.idm.example.com.
    
    [admin@server ~]# dig +short -t SRV _ldap._tcp.idm.example.com.
    0 100 389 server.idm.example.com.

    这些命令应该列出所有 IdM 服务器。

  2. 使用 IdM Kerberos 域名称对 TXT 记录运行 DNS 查询。获得的值应该与您在安装 IdM 时指定的 Kerberos 域匹配。

    [admin@server ~]# dig +short -t TXT _kerberos.idm.example.com.
    "IDM.EXAMPLE.COM"

    如果前面的步骤没有返回所有预期的记录,请使用缺失的记录更新 DNS 配置:

    • 如果您的 IdM 环境使用集成的 DNS 服务器,请输入不带任何选项的 ipa dns-update-system-records 命令,来更新您的系统记录:

      [admin@server ~]$ ipa dns-update-system-records
    • 如果您的 IdM 环境没有使用集成的 DNS 服务器:

      1. 在 IdM 服务器中,将 IdM DNS 记录导出到文件中:

        [admin@server ~]$ ipa dns-update-system-records --dry-run --out dns_records_file.nsupdate

        该命令使用相关的 IdM DNS 记录创建一个名为 dns_records_file.nsupdate 的文件。

      2. 使用 nsupdate 工具和 dns_records_file.nsupdate 文件向 DNS 服务器提交 DNS 更新请求。如需更多信息,请参阅 RHEL 7 文档中的 使用 nsupdate 更新外部 DNS 记录。或者,请参阅 DNS 服务器文档来添加 DNS 记录。
  3. 验证 IdM 能够通过一个命令来解析 AD 的服务记录,该命令对 Kerberos 和通过 TCP 服务记录的 LDAP 运行 DNS 查询:

    [admin@server ~]# dig +short -t SRV _kerberos._tcp.dc._msdcs.ad.example.com.
    0 100 88 addc1.ad.example.com.
    
    [admin@server ~]# dig +short -t SRV _ldap._tcp.dc._msdcs.ad.example.com.
    0 100 389 addc1.ad.example.com.