web-dev-qa-db-ja.com

dnssecのDLVは非推奨ですか?

Bindを使用して独自のゾーンも持つ再帰DNSをセットアップしようとしています。

ここで、dnssecを使用するようにアップグレードしたいのですが、理解している限り、ドメイン名を所有していない場合はDLVを使用する必要があります。

しかし、私が見つけたいくつかのガイドは、存在しないdlv.isc.orgにサインアップする必要があると言っています。そして、DNSSECについて読んでいた本は、DLVが非推奨になるだろうと言っているので、私は不思議に思っています。 (それを設定するためのステップバイステップガイドを知っている場合も感謝します)

2
itasahobby

dlv.isc.orgサーバーはもう実行されていませんが、バインド9構成で dnssec-lookaside オプションを使用して別のDNSSEC Lookasideサーバーを設定できます。 example.comのキーを検証できない場合は、lookasideサーバーの名前が追加され、lookasideサーバーの信頼できるキーに対して検証が最初からやり直されます。私はテストしませんでしたが、問題が解決しないと思います。lan.のプライベートドメインは、存在しないことが確認されているため、ルックアサイドクエリは実行されません。

では、lan.ゾーンを保護するために何ができるでしょうか?それは使用法に依存します:

  1. 検証再帰リゾルバlan.ゾーンの権限のあるサーバーの両方として使用するDNSサーバーは、追加の構成を必要としません(dnssec-validationはすでにオンです):
    • ゾーンファイルからlan.ゾーンを提供し、回答を返しますwithoutADフラグ、
    • 他のドメインのクエリが受信されると、再帰クエリを実行して結果を検証し、それらが有効な場合にのみ回答を返しますwithADフラグ。ドメインが検証しない場合、SERVFAILが発行されます。
  2. DNSサーバーを使用するスタブリゾルバーは、DNSサーバーの検証動作に依存しているため、問題なくlan.を解決します。ただし、stub resolverとサーバー間の通信は暗号化されていないため、転送中に結果が変更される可能性があります。 TSIG署名またはTLSを使用して保護することができます。
  3. 検証スタブリゾルバーでは、設定に信頼できるアンカーを追加する必要があります。

すべてのclientマシンにBind9サーバーをセットアップして検証スタブリゾルバ(-systemd-resolveddnsmasqまたはnbound)ですが、その場合は、最初にlan.ゾーンのキーを取得する必要があります。

piotr@akela:~$ Dig lan. DNSKEY +short
257 3 13 nnbo5DS5vyxB0OjUd7GbcrmXY7TgdGstk4xqXpu2wvXyoFa0YRqjLcHM QJGMguTrKJVYklMNRQXrStvawSF5eg==

次に、キーを信頼できるものとして追加し、localhostからの再帰クエリを許可し、リクエストを「実際の」DNSサーバーに転送する必要があります(192.168.0.1にあるとしましょう)。

options {
    directory "/var/cache/bind";
    listen-on { localhost; };
    listen-on-v6 { localhost; };
    recursion yes;
    allow-query { localhost; };
    forwarders { 192.168.0.1; };
};
trusted-keys {
    lan. 257 3 13 "nnbo5DS5vyxB0OjUd7GbcrmXY7TgdGstk4xqXpu2wvXyoFa0YRqjLcHM QJGMguTrKJVYklMNRQXrStvawSF5eg==";
};

最後に、localhost/etc/resolv.confの唯一のDNSサーバーとして追加する必要があります。

nameserver ::1;

編集systemd-resolved設定はさらにシンプルです。DNSKEYを/etc/dnssec-trust-anchors.d/<your_name>.positiveという名前のファイルに追加するだけです。

lan. IN DNSKEY 257 3 13 nnbo5DS5vyxB0OjUd7GbcrmXY7TgdGstk4xqXpu2wvXyoFa0YRqjLcHM QJGMguTrKJVYklMNRQXrStvawSF5eg==

/etc/systemd/resolved.confでDNSSECを強制します:

DNSSEC=yes
4