4.4. 使用外部 IdM DNS 配置胶囊式服务器
当卫星服务器为主机添加 DNS 记录时,它首先确定为该域提供 DNS 的胶囊。然后,它将与配置为为您的部署提供 DNS 服务的胶囊通信,并添加记录。此过程中不涉及主机。因此,您必须在当前配置为使用 IdM 服务器管理的域的 Satellite 或 Capsule 上安装和配置 IdM 客户端,以便为您要管理的域提供 DNS 服务。
胶囊式服务器可以配置为使用红帽身份管理(IdM)服务器来提供 DNS 服务。有关 Red Hat Identity Management 的更多信息,请参阅 Linux 域身份、身份验证和策略指南。
要将胶囊服务器配置为使用 Red Hat Identity Management (IdM)服务器来提供 DNS 服务,请使用以下流程之一:
要恢复到内部 DNS 服务,请使用以下步骤:
您不需要使用 Capsule Server 来管理 DNS。当您使用 Satellite 的域注册功能时,置备的主机会自动注册到 IdM 时,ipa-client-install
脚本会为客户端创建 DNS 记录。使用外部 IdM DNS 和域注册配置胶囊式服务器是互斥的。有关配置域注册的更多信息,请参阅 在 连接的网络环境中安装 Satellite 服务器中的置备主机的 外部身份验证。https://docs.redhat.com/en/documentation/red_hat_satellite/6.13/html-single/installing_satellite_server_in_a_connected_network_environment/index#External_Authentication_for_Provisioned_Hosts_satellite
4.4.1. 使用 GSS-TSIG 身份验证配置动态 DNS 更新
您可以将 IdM 服务器配置为对 RFC3645 中定义的 secret 密钥事务(GSS-TSIG)技术使用通用安全服务算法。要将 IdM 服务器配置为使用 GSS-TSIG 技术,您必须在 Capsule 服务器基本操作系统上安装 IdM 客户端。
前提条件
- 您必须确保 IdM 服务器已部署,并且基于主机的防火墙已正确配置。如需更多信息,请参阅 安装身份管理指南 中的 IdM 的端口要求。
- 您必须联系 IdM 服务器管理员,以确保您在 IdM 服务器上获取帐户,并有权在 IdM 服务器上创建区。
- 您应该创建应答文件的备份。如果回答损坏,您可以使用备份将应答文件恢复到其原始状态。如需更多信息,请参阅配置 Satellite 服务器。
流程
要使用 GSS-TSIG 身份验证配置动态 DNS 更新,请完成以下步骤:
在 IdM 服务器中创建 Kerberos Principal
为从 IdM 管理员获得的帐户获取 Kerberos 票据:
# kinit idm_user
为 Capsule 服务器创建一个新的 Kerberos 主体,用于在 IdM 服务器上进行身份验证。
# ipa service-add capsule.example.com
安装和配置 IdM 客户端
在管理部署的 DNS 服务的 Satellite 或 Capsule 的基础操作系统上,安装
ipa-client
软件包:# satellite-maintain packages install ipa-client
运行安装脚本并遵循屏幕提示来配置 IdM 客户端:
# ipa-client-install
获取Kerberos ticket:
# kinit admin
删除任何已存在的
keytab
:# rm /etc/foreman-proxy/dns.keytab
获取这个系统的
keytab
:# ipa-getkeytab -p capsule/satellite.example.com@EXAMPLE.COM \ -s idm1.example.com -k /etc/foreman-proxy/dns.keytab
注意当在服务中使用与原始系统相同的主机名添加 keytab 时,请添加
r
选项以防止生成新凭证,并在原始系统上呈现凭证无效。对于
dns.keytab
文件,将组和所有者设置为foreman-proxy
:# chown foreman-proxy:foreman-proxy /etc/foreman-proxy/dns.keytab
可选: 要验证
keytab
文件是否有效,请输入以下命令:# kinit -kt /etc/foreman-proxy/dns.keytab \ capsule/satellite.example.com@EXAMPLE.COM
在 IdM Web UI 中配置 DNS 区域
创建并配置您要管理的区域:
- 进入 Network Services > DNS > DNS Zones。
-
选择 Add 并输入区域名称。例如:
example.com
。 - 点 Add and Edit。
点 Settings 标签页并在 BIND 更新策略 框中,将以下内容添加到分号分隔列表中:
grant capsule\047satellite.example.com@EXAMPLE.COM wildcard * ANY;
- 将 Dynamic update 设置为 True。
- 启用 Allow PTR sync。
- 点 Save 保存更改。
创建并配置反向区:
- 进入 Network Services > DNS > DNS Zones。
- 点 Add。
- 选择 Reverse zone IP 网络 并添加 CIDR 格式的网络地址以启用反向查找。
- 点 Add and Edit。
点 Settings 标签页并在 BIND 更新策略 框中,将以下内容添加到分号分隔列表中:
grant capsule\047satellite.example.com@EXAMPLE.COM wildcard * ANY;
- 将 Dynamic update 设置为 True。
- 点 Save 保存更改。
配置管理域的 DNS 服务的 Satellite 或 Capsule 服务器
使用
satellite-installer
命令配置管理域的 DNS 服务的 Satellite 或 Capsule:在 Satellite 中输入以下命令:
satellite-installer --scenario satellite \ --foreman-proxy-dns=true \ --foreman-proxy-dns-managed=false \ --foreman-proxy-dns-provider=nsupdate_gss \ --foreman-proxy-dns-server="idm1.example.com" \ --foreman-proxy-dns-tsig-principal="capsule/satellite.example.com@EXAMPLE.COM" \ --foreman-proxy-dns-tsig-keytab=/etc/foreman-proxy/dns.keytab
在 Capsule 上输入以下命令:
satellite-installer --scenario capsule \ --foreman-proxy-dns=true \ --foreman-proxy-dns-managed=false \ --foreman-proxy-dns-provider=nsupdate_gss \ --foreman-proxy-dns-server="idm1.example.com" \ --foreman-proxy-dns-tsig-principal="capsule/satellite.example.com@EXAMPLE.COM" \ --foreman-proxy-dns-tsig-keytab=/etc/foreman-proxy/dns.keytab
运行 satellite-installer
命令对 Capsule 配置进行任何更改后,您必须在 Satellite Web UI 中更新每个受影响的 Capsule 的配置。
在 Satellite Web UI 中更新配置
- 在 Satellite Web UI 中,导航到 Infrastructure > Capsules,找到 Capsule Server,并从 Actions 列中的列表,选择 Refresh。
配置域:
- 在 Satellite Web UI 中,导航到 Infrastructure > Domains 并选择域名。
- 在 Domain 选项卡中,确保 DNS Capsule 设置为连接子网的胶囊。
配置子网:
- 在 Satellite Web UI 中,导航到 Infrastructure > Subnets 并选择子网名称。
- 在 Subnet 选项卡中,将 IPAM 设置为 None。
- 在 Domains 选项卡中,选择您要使用 IdM 服务器管理的域。
- 在 Capsules 选项卡中,确保将 Reverse DNS Capsule 设置为连接子网的 Capsule。
- 单击 Submit 以保存更改。
4.4.2. 使用 TSIG 身份验证配置动态 DNS 更新
您可以将 IdM 服务器配置为对 DNS (TSIG)技术使用 secret 密钥事务身份验证,该技术使用 rndc.key
密钥文件进行身份验证。TSIG 协议在 RFC2845 中定义。
前提条件
- 您必须确保 IdM 服务器已部署,并且基于主机的防火墙已正确配置。如需更多信息,请参阅 Linux 域身份、身份验证和策略指南 中的 端口要求。
-
您必须在 IdM 服务器上获取
root
用户访问权限。 - 您必须确认 Satellite Server 或 Capsule Server 是否已配置为为您的部署提供 DNS 服务。
- 您必须在管理部署的 DNS 服务的 Satellite 或 Capsule 的基本操作系统中配置 DNS、DHCP 和 TFTP 服务。
- 您必须创建应答文件的备份。如果回答损坏,您可以使用备份将应答文件恢复到其原始状态。如需更多信息,请参阅配置 Satellite 服务器。
流程
要使用 TSIG 身份验证配置动态 DNS 更新,请完成以下步骤:
为 IdM 服务器中的 DNS 区域启用外部更新
在 IdM 服务器上,将以下内容添加到
/etc/named.conf
文件的顶部:######################################################################## include "/etc/rndc.key"; controls { inet _IdM_Server_IP_Address_ port 953 allow { _Satellite_IP_Address_; } keys { "rndc-key"; }; }; ########################################################################
重新载入
named
服务以使更改生效:# systemctl reload named
在 IdM Web UI 中,导航到 Network Services > DNS > DNS Zones,然后点击区的名称。在 Settings 选项卡中,应用以下更改:
在
BIND 更新策略
框中添加以下内容:grant "rndc-key" zonesub ANY;
- 将 Dynamic update 设置为 True。
- 点 Update 保存更改。
将
/etc/rndc.key
文件从 IdM 服务器复制到 Satellite 服务器的基础操作系统。使用以下命令:# scp /etc/rndc.key root@satellite.example.com:/etc/rndc.key
要为
rndc.key
文件设置正确的所有权、权限和 SELinux 上下文,请输入以下命令:# restorecon -v /etc/rndc.key # chown -v root:named /etc/rndc.key # chmod -v 640 /etc/rndc.key
手动将
foreman-proxy
用户分配给
指定组。通常,satellite-installer 确保foreman-proxy
用户属于named
UNIX 组,但是在这种情况下,Satellite 不管理用户和组,因此您需要手动将foreman-proxy
用户分配给named
组。# usermod -a -G named foreman-proxy
在管理门户中,输入以下
satellite-installer
命令将 Satellite 配置为使用外部 DNS 服务器:# satellite-installer --scenario satellite \ --foreman-proxy-dns=true \ --foreman-proxy-dns-managed=false \ --foreman-proxy-dns-provider=nsupdate \ --foreman-proxy-dns-server="IdM_Server_IP_Address" \ --foreman-proxy-keyfile=/etc/rndc.key \ --foreman-proxy-dns-ttl=86400
在 IdM 服务器中测试对 DNS 区的外部更新
确保 Satellite 服务器上的
/etc/rndc.key
文件中的密钥与 IdM 服务器上使用的密钥文件相同:key "rndc-key" { algorithm hmac-md5; secret "secret-key=="; };
在受管域中,为主机创建测试 DNS 条目。例如,主机
test.example.com
在 IdM 服务器上的 A 记录为192.168.25.20
,地址为192.168.25.1
。# echo -e "server 192.168.25.1\n \ update add test.example.com 3600 IN A 192.168.25.20\n \ send\n" | nsupdate -k /etc/rndc.key
在 Satellite 服务器中,测试 DNS 条目:
# nslookup test.example.com 192.168.25.1 Server: 192.168.25.1 Address: 192.168.25.1#53 Name: test.example.com Address: 192.168.25.20
- 要查看 IdM Web UI 中的条目,请导航到 Network Services > DNS > DNS Zones。单击区域的名称,并按名称搜索主机。
如果成功解决,请删除 test DNS 条目:
# echo -e "server 192.168.25.1\n \ update delete test.example.com 3600 IN A 192.168.25.20\n \ send\n" | nsupdate -k /etc/rndc.key
确认删除了 DNS 条目:
# nslookup test.example.com 192.168.25.1
以上
nslookup
命令失败,并在成功删除记录时返回SERVFAIL
错误消息。
4.4.3. 恢复到内部 DNS 服务
您可以将 Satellite Server 和 Capsule Server 用作 DNS 提供程序恢复到。您可以使用在配置外部 DNS 前创建的应答文件的备份,或者您可以创建应答文件的备份。有关回答文件的更多信息,请参阅配置 Satellite 服务器。
流程
在您要配置为管理域的 DNS 服务的 Satellite 或 Capsule 服务器中,请完成以下步骤:
将 Satellite 或 Capsule 配置为 DNS 服务器
如果您在配置外部 DNS 前创建了应答文件的备份,请恢复应答文件,然后输入
satellite-installer
命令:# satellite-installer
如果您没有合适的应答文件备份,请立即创建应答文件的备份。要在不使用应答文件的情况下将 Satellite 或 Capsule 配置为 DNS 服务器,请在 Satellite 或 Capsule 上输入以下
satellite-installer
命令:# satellite-installer \ --foreman-proxy-dns=true \ --foreman-proxy-dns-managed=true \ --foreman-proxy-dns-provider=nsupdate \ --foreman-proxy-dns-server="127.0.0.1"
如需更多信息,请参阅 在胶囊服务器上配置 DNS、DHCP 和 TFTP。
运行 satellite-installer
命令对 Capsule 配置进行任何更改后,您必须在 Satellite Web UI 中更新每个受影响的 Capsule 的配置。
在 Satellite Web UI 中更新配置
- 在 Satellite Web UI 中,导航到 Infrastructure > Capsules。
- 对于您要更新的每个胶囊,请从 Actions 列表中选择 Refresh。
配置域:
- 在 Satellite Web UI 中,导航到 Infrastructure > Domains,然后点击您要配置的域名。
- 在 Domain 选项卡中,将 DNS Capsule 设置为连接子网的胶囊。
配置子网:
- 在 Satellite Web UI 中,导航到 Infrastructure > Subnets 并选择子网名称。
- 在 Subnet 选项卡中,将 IPAM 设置为 DHCP 或 Internal DB。
- 在 Domains 选项卡中,选择您要使用 Satellite 或 Capsule 进行管理的域。
- 在 Capsules 选项卡中,将 Reverse DNS Capsule 设置为连接子网的胶囊。
- 单击 Submit 以保存更改。