DNS over TLS サーバーの証明書を検証するように Unbound を構成する方法を教えてください。

DNS over TLS サーバーの証明書を検証するように Unbound を構成する方法を教えてください。

次の構成を使用して、DNS over TLS を使用するように Unbound を構成しました。ホスト名に対してアップストリーム証明書を検証するように Unbound を構成するにはどうすればよいでしょうか?

forward-zone:
        name: "."
        forward-addr: 1.1.1.1@853
        forward-addr: 1.0.0.1@853
        forward-addr: 2606:4700:4700::1111@853
        forward-addr: 2606:4700:4700::1001@853
        forward-tls-upstream: yes

答え1

アップストリーム DNS サーバーの証明書の検証に対するサポートの追加に関するバグ レポートは、2018 年 4 月 19 日に解決されました。

上の例を応用するとコメント 9:

server:
        tls-cert-bundle: "/etc/pki/tls/certs/ca-bundle.crt"
forward-zone:
        name: "."
        forward-addr: 1.1.1.1#cloudflare-dns.com
        forward-addr: 1.0.0.1#cloudflare-dns.com
        forward-addr: 2606:4700:4700::1111#cloudflare-dns.com
        forward-addr: 2606:4700:4700::1001#cloudflare-dns.com
        forward-tls-upstream: yes

動作の仕組みについても説明があります。ハッシュタグ名を使用すると、スタブゾーンと unbound-control 転送制御コマンドに対して TLS 認証名を設定できます。'@' と '#' の周囲にスペースを入れないでください。

答え2

残念ながら、それはできません。これには未解決のバグがあります:

転送設定でTLSを使用したアンバウンドはサーバーの証明書を検証しません

そのため、Unbounds DNS over TLS を使用すると、リクエストが傍受される可能性があります。

答え3

「転送構成で TLS を使用する unbound がサーバーの証明書を検証しない」というバグは、2018 年 4 月 19 日に解決されました。

フォワーダーの TLS 認証。

構文は forward-addr: [@port][#tls-authentication-name] です。また、ca バンドルは tls-cert-bundle: "ca-bundle.pem" (または ca-bundle.crt ファイル) で設定できます。

サーバーの例: tls-cert-bundle: "/etc/pki/tls/certs/ca-bundle.crt" forward-zone: name: "." forward-tls-upstream: yes forward-addr: 9.9.9.9@853#dns.quad9.net forward-addr: 1.1.1.1@853#cloudflare-dns.com

ハッシュタグ名のトリックにより、たとえばスタブゾーンや unbound-control 転送制御コマンドに対しても TLS 認証名を設定できるようになります。コードも簡単になりました。'@' と '#' の周囲にスペースを入れないでください。

tls authname を指定する場合、ポート番号は [...] 853 です。 (その他の場合は 53 のままです)。

参照:コメント 9

関連情報