5.4. 既存の RHEL インストールにおける eDNS の有効化
既存の RHEL インストールで暗号化された DNS (eDNS) を有効にして、DNS-over-TLS を使用してすべての DNS トラフィックを処理できます。
前提条件
-
sudoまたは root ユーザーアクセス権によって提供される管理者特権。これは先頭にコマンドプロンプト#が付いているコマンドに必要です。sudoアクセス権を設定する方法については、非特権ユーザーが特定のコマンドを実行できるようにする を参照してください。 - 既存の RHEL インストールがある。
次のパッケージがシステムにインストールされている。
-
dnsconfd -
dnsconfd-dracut -
grubby
-
-
IBM Z システムの場合は、
ziplユーティリティーがインストールされている。
手順
/etc/NetworkManager/conf.d/global-dot.confファイルで NetworkManager を設定します。[main] dns=dnsconfd [global-dns] resolve-mode=exclusive [global-dns-domain-*] servers=dns+tls://<server_ip_1><dns_server_hostname_1>,dns+tls://<server_ip_2><dns_server_hostname_2>グローバルの DNS オプションの詳細は、システム上の
NetworkManager.conf(5)man ページのGLOBAL-DNS SECTIONを参照してください。オプション: アップストリームの DoT サーバーを検証するためにカスタム CA バンドルを使用するには、PEM 形式のファイルを
/etc/pki/dns/extracted/pem/tls-ca-bundle.pemファイルにコピーします。注記/etc/pki/dns/extracted/pemで証明書を追加または削除したら、変更を適用するためにdnsconfdサービスを再起動してください。dnsconfdサービスを有効にします。# systemctl enable --now dnsconfdNetworkManager をリロードします。
# systemctl reload NetworkManagerdnsconfdとその設定が含まれるように、すべてのインストール済みカーネルのinitramfsを再生成します。# for kernel in `rpm -q kernel --qf '%{VERSION}-%{RELEASE}.%{ARCH}\n'`; do dracut -f --kver="$kernel" doneカーネル引数を、現在のカーネルバージョンと新しくインストールされたカーネルバージョンに設定します。
# grubby --args="rd.net.dns=dns+tls://<server_ip>#<dns_server_hostname> rd.net.dns-resolve-mode=exclusive rd.net.dns-backend=dnsconfd" --update-kernel=ALLIBM Z の場合は、ブートメニューを更新します。
# zipl
検証
eDNS 設定を確認します。
$ dnsconfd status想定される出力:
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 } ]nslookupを使用して DNS サーバーが応答することを確認します。$ nslookup <domain_name><domain_name>は、照会するドメインに置き換えます。
トラブルシューティング
unboundで詳細なロギングを有効にします。# unbound-control verbosity 5関連するサービスのログを確認します。
$ journalctl -xe -u <service_name><service_name>は、NetworkManager、dnsconfd、またはunboundに置き換えます。