28.10. 使用 Ansible 安装配置为使用 eDNS 的 IdM 客户端
使用 Ansible 加密所有 DNS 查询以提高安全性,使用 DNS-over-TLS (DoT)安装身份管理(IdM)客户端。
以下示例应用 强制的 DoT 策略,并要求客户端只使用 eDNS 查询。
先决条件
- 您在使用 Ansible 版本 2.15 或更高版本。
-
您已安装了
ansible-freeipa软件包。 -
示例假定
secret.ymlAnsible vault 存储了ipaadmin_password,并且您可以访问存储保护secret.yml文件的密码的文件。 - 您已通过客户端上的 TLS 为 DNS 配置解析器。
流程
在控制器上,创建一个名为
install-client-edns.yml的 playbook,其中包含一个任务来安装启用了 eDNS 的 IdM 客户端:--- - name: Playbook to configure an IdM client with eDNS enabled hosts: ipaclients become: true vars_files: - /home/user_name/MyPlaybooks/secret.yml vars: ipaadmin_password: "{{ ipaadmin_password }}" ipaclient_domain=idm.example.com ipaclient_dns_over_tls=true roles: - role: freeipa.ansible_freeipa.ipaclient如果在客户端通信的 IdM 服务器上关闭 DNSSEC 验证,您还必须通过在 playbook 的
vars部分中设置ipaclient_no_dnssec_validation = true来在客户端上禁用它。否则,对于客户端,TLS 上的 DNS 无法正常工作。运行 Ansible playbook:
$ ansible-playbook --vault-password-file=password_file -v -i ~/MyPlaybooks/inventory ~/MyPlaybooks/install-client-edns.yml
验证
在 IdM 客户端上,查看
/etc/unbound/unbound.conf:$ cat /etc/unbound/unbound.conf- 验证配置是否包含 IdM 服务器的 IP 地址和主机名。
故障排除
在 IdM 客户端上,运行 DNS 查询来触发流量:
$ dig <domain_name>- 查看 IdM 服务器上的日志,以验证查询是否已通过 DoT 路由。