Bindを使用して独自のゾーンも持つ再帰DNSをセットアップしようとしています。
ここで、dnssecを使用するようにアップグレードしたいのですが、理解している限り、ドメイン名を所有していない場合はDLVを使用する必要があります。
しかし、私が見つけたいくつかのガイドは、存在しないdlv.isc.org
にサインアップする必要があると言っています。そして、DNSSECについて読んでいた本は、DLVが非推奨になるだろうと言っているので、私は不思議に思っています。 (それを設定するためのステップバイステップガイドを知っている場合も感謝します)
dlv.isc.org
サーバーはもう実行されていませんが、バインド9構成で dnssec-lookaside オプションを使用して別のDNSSEC Lookasideサーバーを設定できます。 example.com
のキーを検証できない場合は、lookasideサーバーの名前が追加され、lookasideサーバーの信頼できるキーに対して検証が最初からやり直されます。私はテストしませんでしたが、問題が解決しないと思います。lan.
のプライベートドメインは、存在しないことが確認されているため、ルックアサイドクエリは実行されません。
では、lan.
ゾーンを保護するために何ができるでしょうか?それは使用法に依存します:
lan.
ゾーンの権限のあるサーバーの両方として使用するDNSサーバーは、追加の構成を必要としません(dnssec-validation
はすでにオンです):lan.
ゾーンを提供し、回答を返しますwithoutAD
フラグ、AD
フラグ。ドメインが検証しない場合、SERVFAIL
が発行されます。lan.
を解決します。ただし、stub resolverとサーバー間の通信は暗号化されていないため、転送中に結果が変更される可能性があります。 TSIG署名またはTLSを使用して保護することができます。すべてのclientマシンにBind9サーバーをセットアップして検証スタブリゾルバ(-systemd-resolved、dnsmasqまたは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