5.2. Installing RHEL with eDNS enabled from a local installation media
Install RHEL with encrypted DNS (eDNS) enabled directly from local media using an enforce policy. This helps ensure that all DNS queries remain private and secure during and after the installation process.
If you require a custom CA certificate bundle, you must install it by using the %certificate section in the Kickstart file.
During the installation, you must provide both the RHEL installation content and the Kickstart file from local media. You cannot download the Kickstart file from a remote HTTP server because the installation program requires to use DNS to resolve the server’s hostname. If your environment is configured to support a fallback to unencrypted DNS, you can perform a standard RHEL installation and configure eDNS afterwards.
Prerequisites
-
Commands that start with the
#command prompt require administrative privileges provided bysudoor root user access. For information on how to configuresudoaccess, see Enabling unprivileged users to run certain commands. - You have the RHEL installation media available locally.
-
If you require a custom CA bundle, have your Kickstart file with a
%certificatesection available locally.
Procedure
Optional: Create a Kickstart file with a
%certificatesection. Ensure the certificate is saved in a file namedtls-ca-bundle.pem.%certificate --dir /etc/pki/dns/extracted/pem/ --filename tls-ca-bundle.pem -----BEGIN CERTIFICATE----- <Base64-encoded_certificate_content> -----END CERTIFICATE----- %end- Prepare your bootable installation media, and include the Kickstart file if you need a custom CA bundle.
- Boot the installation media.
-
From the boot menu window, select the required option and press the
ekey to edit the boot parameters. Add the eDNS kernel arguments:
linux ($root)/vmlinuz-6.12.0-0.el10_0.x86_64 root=/dev/mapper/rhel-root ro crashkernel=2G-64G:256M,64G-:512M resume=/dev/mapper/rhel-swap rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap rhgb quiet emergency ip=dhcp rd.net.dns=dns+tls://<server_ip>#<dns_server_hostname> rd.net.dns-resolve-mode=exclusive rd.net.dns-backend=dnsconfd inst.ks=hd:/dev/sdb1/mykickstart.ks-
When you finish editing, press
Ctrl+Xto start the installation using the specified options.
Verification
Verify your eDNS configuration:
$ dnsconfd statusExpected output:
Running cache service: unbound Resolving mode: exclusive Config present in service: { ".": [ "dns+tls://198.51.100.143#dot.dns.example.com" ] } State of Dnsconfd: RUNNING Info about servers: [ { "address": "198.51.100.143", "port": 853, "name": "dot.dns.example.com", "routing_domains": [ "." ], "search_domains": [], "interface": null, "protocol": "dns+tls", "dnssec": true, "networks": [], "firewall_zone": null } ]Verify that DNS server is responsive by using
nslookup:$ nslookup <domain_name>Replace the
<domain_name>with the domain that you want to query.
Troubleshooting
Enable detailed logging in
unbound:# unbound-control verbosity 5Review logs for the relevant service:
$ journalctl -xe -u <service_name>Replace
<service_name>withNetworkManager,dnsconfd, orunbound.