Cloudflare Docs
Support
Support
Visit Support on GitHub
Set theme to dark (⇧+D)

DNSSECのトラブルシューティングを行う

​​ DNSSECのトラブルシューティングを行う

DNSSECはDNSを保護します。  この資料では、DNS解決に影響するDNSSECの問題を検出する方法について説明します。 

​​ 本記事の内容


​​ digを使用してDNSSECをテストする

Dig_は、DNSレコードのネームサーバーにクエリを実行するためのコマンドラインツールです。たとえば、dig はDNSリゾルバーに_ www.cloudflare.com のIPアドレスを問い合わせることが できます_+short_オプションは結果のみを出力します)

$ dig www.cloudflare.com +short 198.41.215.162 198.41.214.162

_dig_を使用してDNSSECレコードを検証します。  以下の例では、

$ dig www.cloudflare.com +dnssec +short 198.41.214.162 198.41.215.162 A 13 3 300 20180927180434 20180925160434 35273 cloudflare.com. DYYZ/bhHSAIlpvu/HEUsxlzkC9NsswbCQ7dcfcuiNBrbhYV7k3AI8t46 QMnOlfhwT6jqsfN7ePV6Fwpym3B0pg==

サブドメインの公開鍵ではなく、ルートドメインの公開鍵にクエリを実行します: 

$ dig DNSKEY cloudflare.com +short 257 3 13 mdsswUyr3DPW132mOi8V9xESWE8jTo0dxCjjnopKl+GqJxpVXckHAeF+ KkxLbxILfDLUT0rAK9iUzy1L53eKGQ== 256 3 13 koPbw9wmYZ7ggcjnQ6ayHyhHaDNMYELKTqT+qRGrZpWSccr/lBcrm10Z 1PuQHB3Azhii+sb0PYFkH1ruxLhe5g==

DNSレスポンスには、次の2つのレコードが含まれます:

  • DNSKEYレコード256は、ゾーン署名鍵(zone-signing key)と呼ばれる公開鍵であり、_A、MX、CNAME、SRV_などのDNSレコードの署名を検証するのに使用されます。

_+short_オプションを_dig_と使用しない場合に、レスポンスヘッダーにadフラグが表示されると、DNSレスポンスはDNSSEC認証されます:

$ dig www.cloudflare.com [...] ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 65326;; flags: qr rd ra ad; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1 [...] ;; QUESTION SECTION: ;www.cloudflare.com.        IN  A [...] ;; ANSWER SECTION: www.cloudflare.com. 15  IN  A   198.41.215.162 www.cloudflare.com. 15  IN  A   198.41.214.162

​​ digを使用してDNSSECの信頼の連鎖(Chain of Trust)を表示する

ドメイン署名の完全検証(例:cloudflare.com)は最上位のドメインでの鍵署名鍵を検証する必要があります(例:.com)。 続いて、同様の検証が 

DNSSECが有効になっている場合、レジストラーのDNSで_DSレコード_が必要になります。 _DSレコード_には、公開鍵署名鍵のハッシュと鍵に関するメタデータが含まれます。

_dig_を使用して、_DSレコード_を検索します:

$ dig +short DS cloudflare.com 2371 13 2 32996839A6D808AFE3EB4A795A0E6A7A39A76FC52FF228B22B76F6D6 3826F2B9

_dig_は答えが

$ dig DS cloudflare.com +trace [...] cloudflare.com。86400   IN  DS  2371 13 2 32996839A6D808AFE3EB4A795A0E6A7A39A76FC52FF228B22B76F6D6 3826F2B9 [...] com.            172800  IN  NS  e.gtld-servers.net. [...] ;; Received 1213 bytes from 2001:502:1ca1::30#53(e.gtld-servers.net) in 37 ms

上記のすべての手順を手動で実行する簡単な方法は、 DNSVizオンラインツールを使用することです。詳細については、 DNSVizを使用したDNSSEC検証のトラブルシューティング または DNSVizを介したcloudflare.comのDNSSEC結果の例を参照してください。


​​ digを使用してDNSSEC検証のトラブルシューティングを行う

レジストラーで古いDNSSECレコードを更新または削除せずに、権威DNSプロバイダーを変更すると問題が発生します:

$ dig A brokendnssec.net @1.0.0.1 ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0 ;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 10663

を実行して、_SERVFAIL_レスポンスがDNSSECに関連付けられているかどうかを確認します

$ dig A brokendnssec.net @1.0.0.1 +dnssec +cd +short 104.20.49.61 104.20.48.61

上記の例では、+cd オプションを使用しているときに正しいDNSレスポンスを受信した場合はDNSSECの誤設定が行われますが、DNSSECを使用したクエリは SERVFAIL_レスポンス_を返します。 この問題は、権威ネームサーバーは変更されるが、DSレコード が更新されない場合に発生することが多いです。  この問題は、攻撃者がクエリに対するレスポンスを偽造しようとした場合にも発生することがあります。 


​​ DNSVizを使用してDNSSEC検証のトラブルシューティングを行う

  1. http://dnsviz.net/に移動します。
  2. 表示されるテキストフィールドにドメイン名を入力します。
  3. DNSVizが過去に一度もサイトを分析したことがない場合は、表示される**「分析(Analizye)」**ボタンをクリックします。
  4. DNSVizが過去にサイトを分析したことがある場合は、

Screen_Shot_2018-09-18_at_10.31.54_AM.png

Screen_Shot_2018-10-16_at_2.png

Screen_Shot_2018-09-18_at_10.25.49_AM.png


​​ 次のステップ

DNSSEC実装で問題が検出された場合は、ドメインのレジストラーに連絡して、_DSレコード_が権威DNSプロバイダーが指定したものと一致することを確認します。 Cloudflareが権威DNS プロバイダーである場合は、 「Cloudflareを使用してDNSSECを設定する」に記載されている手順を行います。


​​ 関連リソース