スライド 1

Similar documents
2 注意事項 教材として会場を提供していただいている ConoHa さんのドメイン名とその権威ネームサーバを使 用しています conoha.jp ns1.gmointernet.jp

e164.arpa DNSSEC Version JPRS JPRS e164.arpa DNSSEC DNSSEC DNS DNSSEC (DNSSEC ) DNSSEC DNSSEC DNS ( ) % # (root)

ご挨拶

Microsoft PowerPoint - private-dnssec

あなたのDNS運用は 来るべきDNSSEC時代に耐えられますか

2 フルサービスリゾルバ スタブリゾルバ からリクエストを 受け取る フルサービスリゾルバは権威ネームサーバに 対して反復復的に 問い合わせを 行行う ルートゾーンの権威サーバ スタブリゾルバ の IP アドレスを教えて? の IP アドレ

DNSハンズオンDNS運用のいろは

DNSSEC機能確認手順書v1.2

日本語ドメイン名運用ガイド

DNSSECの基礎概要

Root KSK更新に対応する方法

DNSSECトラブルシューティング

初心者のためのDNSの設定とよくあるトラブル事例

DNSのセキュリティとDNSに関する技術

JAIPA-DNSSEC


(1) 鍵の更改 に追従するために 1 のソフトウェア ( 一般に BIND 又は Windows Server を利用 ) を最新版に更新する ( 今回の対策だけでなく 脆弱性への対応のためにも 最新版への更新は必須 ) 2 において DNSSEC のトラストアンカーの自動更新 の設定を行う 3

PowerPoint プレゼンテーション

スライド 1

PowerPoint プレゼンテーション

opetechwg-tools

DNSSEC技術実験報告書

Microsoft PowerPoint JPRS-DNSSEC-Act-03.pptx

DNSSEC の仕組みと現状 平成 22 年 11 月 DNSSEC ジャパン

DNSSEC性能確認手順書v1.2

のコピー

目次 1 本マニュアルについて 設定手順 (BIND 9 利用 ) 設定例の環境 設定例のファイル構成 named.conf の設定例 逆引きゾーンの設定例 動作確認 ( ゾーン転送 )

Microsoft PowerPoint - d1-大本 貴-DNSSECstatus_DNS-DAY [互換モード]

Microsoft PowerPoint - IW2011-D1_simamura [互換モード]

学生実験 3 日目 DNS IP ネットワークアーキテクチャ 江崎研究室

上位 DNS の設定 YaST > Network Device > Network Card > HostName and DNS Server を開き DNS サーバとなる自分自身と上位となる ( プロバイダの指定 あるいは社内のマスター )DNS サーバを確認します この結果は /etc/re

Microsoft PowerPoint - DNSSECとは.ppt

DNSSEC運用技術SWG活動報告

スマート署名(Smart signing) BIND 9.7での新機能

初心者のためのDNSの設定とよくあるトラブル事例

Microsoft PowerPoint 版_Root_JPの状況.ppt

DNSの負荷分散とキャッシュの有効性に関する予備的検討

学生実験

Microsoft PowerPoint - bind ppt

Microsoft PowerPoint - DNSSEC技術と運用.ppt [互換モード]

資料 3 DNS の世界的な運用変更に伴い必要となる対策について 資料 3-1 DNS の世界的な運用変更に伴うキャッシュ DNS サーバーの 設定更新の必要性について ( 総務省資料 ) 資料 3-2 同 (IT 総合戦略室 NISC 資料 )

rndc BIND

PowerPoint プレゼンテーション

DNSSECチュートリアル ~実践編~

untitled

DNSSEC ソフトウェアアップデート + DNSSEC 普及状況調査 NTT セキュアプラットフォーム研究所 佐藤一道 Copyright(c) 2013 NTT Corporation 1

<4D F736F F D20444E D C F834B >

初心者のためのDNSの設定とよくあるトラブル事例

BIND9.9から9.11へ移行のポイント(権威DNSサーバー編)

Microsoft PowerPoint - BIND9新機能.ppt

第 5 部 特集 5 YETI - A Live Root-DNSTestbed 第 5 部 特集 5 YETI - A Live Root-DNSTestbed One World, One Internet, One Namespace - Paul Vixie(2014) 加藤朗 第 1 章は

−uDNSƒzƒXƒeƒB?ƒOƒT?ƒrƒX−v??ƒU?ƒ}ƒj?ƒA?_

PowerPoint プレゼンテーション

DNSSEC導入に関する世界的動向

rndc BIND DNS 設定 仕組み

DNSSECチュートリアル [ ]

enog-ryuichi

DNSとメール

ISP技術者SWG報告書 およびその後の検討状況

DNS DNS 2002/12/19 Internet Week 2002/DNS DAY 2

030717kuri.txt - メモ帳

スライド 1

DNS (BIND, djbdns) JPNIC・JPCERT/CC Security Seminar 2005

DNS(BIND9) BIND9.x のエラーをまとめたものです エラーと原因 ジオシティーズ容量大幅アップ セキュリティならお任せ! マイクロソフト 少ない初期導入コストで クラウド環境を構築! Ads by Yahoo!JAPAN 主にゾーン転送に関するエラー

DNSを「きちんと」設定しよう

30分で学ぶDNSの基礎の基礎~DNSをこれから勉強する人のために~

「DNSSECの現状と普及に向けた課題」

janog12enum _fujiwara.PDF

MUA (Mail User Agent) MTA (Mail Transfer Agent) DNS (Domain Name System) DNS MUA MTA MTA MUA MB mailbox MB

DNSSECチュートリアル

クラウドDNS へのネームサーバー切替手順

BIND 9 BIND 9 IPv6 BIND 9 view lwres

キャッシュポイズニング攻撃対策

dns-troubleshoot.pptx

Microsoft PowerPoint - 動き出したDNSSEC.ppt

セキュアなDNS運用のために

Microsoft PowerPoint - RFC4035.ppt

Contents CIDR IPv6 Wildcard MX DNS

DNS Summer Days 2014 チュートリアル DNS 再 入 門 株式会社ハートビーツ滝澤隆史

OpenDNSSECチュートリアル

社外向けテンプレート(プロジェクタ用)

poisoning_ipsj

目次 1 BIND 9 (UNIX) を利用する 設定例の環境 インストール 設定例のファイル構成 named.conf の設定例 ルート DNS サーバの設定 ループバックアドレス用ゾーンの

Windows2008Serverの キャッシュDNSサーバと.biz

ENOG18-unbound-takata-2.pptx

DNSブロッキンガイドライン

経 緯

DNSチュートリアル(仮)

jus.ppt

Copyright

自己紹介 IIJ というところで DNS の運用やってます お客様用参照サーバ お客様のゾーンを預かる権威サーバ DNSSEC まわりの開発 某 cctld のセカンダリ 最初の DNS のお仕事は BIND4 BIND8 の移行 前世紀末 でも本業はメール屋さん 3 月までは Web 屋さんでした

提案書タイトルサブタイトルなし(32ポイント)

untitled

DNS DNS(Domain Name System) named(bind), tinydns(djbdns), MicrosoftDNS(Windows), etc 3 2 (1) ( ) IP IP DNS 4

Juniper Networks Corporate PowerPoint Template

Unboundの紹介

DNS Summer Days 2013 チュートリアル DNS 再 入 門 株式会社ハートビーツ滝澤隆史

1 権威 DNS の DNSSEC 対応 2012/11/21 株式会社インターネットイニシアティブ山口崇徳

DNSにおけるキャッシュ汚染攻撃

Solaris フリーソフトウェア導入手順書 -BIND によるDNS サーバの構築-

Transcription:

キャッシュ DNS の DNSSEC 対応 2012 年 11 月 21 日 三洋 IT ソリューションズ株式会社 SANNET BU 技術運用チーム 其田学

アジェンダ 2 DNSSEC に対応したキャッシュ DNS とは 検証の仕組み構築方法 構築前の確認事項 ROOT ゾーンのトラストアンカー キャッシュ DNS サーバの設定運用 監視 ログ項目 トラブルシューティング

3 DNSSEC に対応したキャッシュ DNS とは

DNSSEC に対応したキャッシュ DNS とは 4 通常のキャッシュ DNS の機能に加え DNSSEC の署名検証を行い RRset の正当性を検証するキャッシュ DNS サーバ

DNSSEC に対応したキャッシュ DNS とは 5 普通のキャッシュ DNS サーバの動き 1. 再帰問合せ 2. 反復検索 4. 結果 ( 結果キャッシュ ) 3. 検索結果 スタブリゾルバ キャッシュ DNS サーバ 権威 DNS サーバ

DNSSEC に対応したキャッシュ DNS とは 6 署名検証するキャッシュ DNS サーバの動き 1. 再帰問合せ 2. 反復検索 (do bit) 3. 検索結果 スタブリゾルバ キャッシュ DNS サーバ 権威 DNS サーバ

DNSSEC に対応したキャッシュ DNS とは 7 署名検証するキャッシュ DNS サーバの動き 4.DS/DNSKEY 問い合わせ 6. 結果 5. 署名検証 4. 結果 スタブリゾルバ キャッシュ DNS サーバ 権威 DNS サーバ

検証例 : jp. SOA の検証 8 jp. SOA を do bit 付で問い合わせる $ dig +dnssec +multiline +norec +noall +answer @a.dns.jp jp. SOA jp. 86400 IN SOA z.dns.jp. root.dns.jp. ( 1352078102 ; serial 3600 ; refresh (1 hour) 900 ; retry (15 minutes) 1814400 ; expire (3 weeks) 900 ; minimum (15 minutes) ) jp. 86400 IN RRSIG SOA 8 1 86400 ( 20121217174502 20121117174502 25848 jp. OjWu/81== 省略 == ) 署名者 :jp. 鍵の ID:25848 署名有効期間 :2012 年 11 月 17 日 17 時 45 分 2 秒 (UTC) から 2012 年 12 月 17 日 17 時 45 分 2 秒 (UTC) まで 検証レコード jp. SOA RRSIG: jp. SOA 署名者 : jp. 鍵の ID:25848

検証例 : jp. SOA の検証 9 jp. DNSKEY を問い合わせる $ dig +dnssec +multiline +norec +noall +answer @a.dns.jp jp. dnskey jp. 86400 IN DNSKEY 256 3 8 ( AwEAAdY== 省略 == ) ; ZSK; alg = RSASHA256; key id = 25848 jp. 86400 IN DNSKEY 256 3 8 ( AwEAAeW == 省略 == ) ; ZSK; alg = RSASHA256; key id = 6831 jp. 86400 IN DNSKEY 257 3 8 ( AwEAAdw == 省略 == ) ; KSK; alg = RSASHA256; key id = 15685 jp. 86400 IN RRSIG DNSKEY 8 1 86400 ( 20130103184500 20121103184500 15685 jp. Cc2iCOrJ== 省略 == ) 署名者 :jp. 鍵の ID:15685 署名有効期間 :2012 年 11 月 3 日 18 時 45 分 0 秒 (UTC) から 2013 年 1 月 3 日 18 時 45 分 0 秒 (UTC) まで 署名鍵 (KSK) jp.dnskey tag: 15685 署名鍵 (ZSK) jp. DNSKEY tag: 25848 検証レコード jp. SOA RRSIG: jp. DNSKEY 署名者 :jp. 鍵の ID:15685 RRSIG: jp. SOA 署名者 : jp. 鍵の ID:25848

検証例 : jp. SOA の検証 10 jp の DS を取得する $ dig +dnssec +multiline +norec +noall +answer @m.root-servers.net jp. DS jp. 86400 IN DS 15685 8 1 ( BB1FEA6AA10DBB52A7DF091DAE3AF22C28F65B4B ) jp. 86400 IN DS 15685 8 2 ( 170E77FF24DD8D8A1FDE99AEB4C93A85434C9376A3C1 98FBBFE12D0F807A14E9 ) jp. 86400 IN RRSIG DS 8 1 86400 ( 20121126000000 2012111823000024220. 7kz9NVJJhlI== 省略 ==) 署名者 :. (root) 鍵の ID: 24220 署名有効期間 :2012 年 11 月 18 日 23 時 0 分 0 秒 (UTC) から 2012 年 11 月 26 日 0 時 0 分 0 秒 (UTC) まで jp.ds 署名鍵 (KSK) jp.dnskey tag: 15685 署名鍵 (ZSK) jp. DNSKEY tag: 25848 RRSIG: jp. DS 署名者 :. 鍵の ID:24220 RRSIG: jp. DNSKEY 署名者 :jp. 鍵の ID:15685 検証レコード jp. SOA RRSIG: jp. SOA 署名者 : jp. 鍵の ID:25848

検証例 : jp. SOA の検証 11. (root) の DNSKEY を取得する $ dig +dnssec +multiline +norec +noall +answer @m.root-servers.net. DNSKEY. 172800 IN DNSKEY 257 3 8 ( AwEAAagAI0== 省略 == ) ; KSK; alg = RSASHA256; key id = 19036. 172800 IN DNSKEY 256 3 8 ( AwEAAfIcor== 省略 == ) ; ZSK; alg = RSASHA256; key id = 24220. 172800 IN RRSIG DNSKEY 8 0 172800 ( 20121114235959 20121031000000 19036. prvrysvq== 省略 ==) 署名者 :. (root) 鍵の ID: 19036 署名有効期間 :2012 年 10 月 31 日 0 時 0 分 0 秒 (UTC) から 2012 年 11 月 14 日 23 時 59 分 59 秒 (UTC) まで 署名鍵 (KSK). DNSKEY tag: 19036 署名鍵 (ZSK). DNSKEY tag: 24220 jp.ds 署名鍵 (KSK) jp.dnskey tag: 15685 署名鍵 (ZSK) jp. DNSKEY tag: 25848 RRSIG:. DNSKEY 署名者 :. 鍵の ID:19036 RRSIG: jp. DS 署名者 :. 鍵の ID:24220 RRSIG: jp. DNSKEY 署名者 :jp. 鍵の ID:15685 検証レコード jp. SOA RRSIG: jp. SOA 署名者 : jp. 鍵の ID:25848

検証例 : jp. SOA の検証 検証 キャッシュ DNS に設定したトラストアンカー 12 1. トラストアンカーを使って ルート KSK 2. ルート KSK を使ってルート DNSKEY 3. ルート ZSK を使って JP DS 4. JP DS を使って JP KSK 5. JP KSK を使って JP DNSKEY 6. JP ZSK を使って JP SOA という感じにトラストアンカーから検証していきます 署名鍵 (KSK). DNSKEY tag: 19036 署名鍵 (ZSK). DNSKEY tag: 24220 jp.ds 署名鍵 (KSK) jp.dnskey tag: 15685 署名鍵 (ZSK) jp. DNSKEY tag: 25848 RRSIG:. DNSKEY 署名者 :. 鍵の ID:19036 RRSIG: jp. DS 署名者 :. 鍵の ID:24220 RRSIG: jp. DNSKEY 署名者 :jp. 鍵の ID:15685 検証レコード jp. SOA RRSIG: jp. SOA 署名者 : jp. 鍵の ID:25848

検証結果による応答 13 DSが登録されていない署名されていない (Indeterminate) スタブリゾルバにはad 無しで RRsetを返します 署名されている (Insecure) スタブリゾルバにはad 無しでRRESetを返します DS が登録されている 検証に成功した場合 (Secure) スタブリゾルバには ad bit 付で RRset を返します 検証に失敗した場合 (Bogus) スタブリゾルバには SERVFAIL を返します

14 構築方法

前提 15 今回のシナリオは 署名検証に対応していない 普通のキャッシュDNSサーバが構築されている環境に 署名検証対応の設定を入れることを想定しています

16 構築方法 構築前の確認事項

構築前の確認事項その 1 サーバ時刻 17 1. サーバの時刻 タイムゾーンを確認する NTP Client で自動補正できる場合は 自動補正の設定を入れるのが望ましい 最重要 理由 DNSSEC の署名には有効期間があります キャッシュ DNS サーバの時刻が署名の有効期間外の場合 検証に失敗します

構築前の確認事項その 1 サーバ時刻確認方法 18 サーバの時刻取得 $ date Tue Nov 6 16:15:36 JST 2012 $ date -u Tue Nov 6 07:14:46 UTC 2012 最重要 基準時刻の取得 117( 時報 ) http://jjy.nict.go.jp/ NICTの日本標準時表示 ntp (ex. ntp.nict.jp) サーバ時刻と 基準時刻が1 分以内であることを確認

構築前の確認事項その 2 ソフトウェアバージョン 19 2.DNS サーバソフトウェアのバージョンを確認する Bind9 の場合 9.7 系以上の最新バージョン Unbound の場合は 1.4 系の最新バージョン 理由 1. 脆弱性の問題 2. 古いバージョンだと NSEC3,RSASHA256 に対応していないバージョンがあるため

構築前の確認事項その 3 通信路 21 3. 通信路が EDNS0/TCP に対応し IP フラグメントを処理できるかを確認する 理由 1. キャッシュ DNS サーバが対応していても ネットワーク機器が対応していない可能性がある 2. FW LB とかパケットの中身見る機械は特に注意

構築前の確認事項その 3 通信路確認方法 22 DNS Reply Size Test Server を利用する確認方法 $ dig +short rs.dns-oarc.net txt rst.x4091.rs.dns-oarc.net. rst.x4049.x4091.rs.dns-oarc.net. rst.x4055.x4049.x4091.rs.dns-oarc.net. "2405:0:21:927::53:23 sent EDNS buffer size 4096" "2405:0:21:927::53:23 DNS reply size limit is at least 4091" "Tested at 2012-10-24 02:55:07 UTC" DNS reply size が 4000 超えていれば OK DNS Reply Size Test Server https://www.dns-oarc.net/oarc/services/replysizetest

23 構築方法 ROOT ゾーンのトラストアンカー

root ゾーンのトラストアンカーについて 24 root のゾーントラストアンカーとは? ルート (. ) のDNSKEY(KSK) を信頼する為の基点通常はルートのDNSKEYのKSK( またはDS) を登録し 名前解決したKSKと比較して等しければ このKSKを信頼できる鍵とします ルートのトラストアンカーを登録すれば ルートから信頼の 連鎖が繋がっているドメインは全て検証可能になります

root ゾーンのトラストアンカーの取得方法 25 1. DNS ソフトウェアに付属しているものを使う 2. ROOT サーバから DNSKEY 取得する $ dig +norec +multi @a.root-servers.net. DNSKEY 検証方法は IANA Root Zone Management https://www.iana.org/domains/root

root ゾーンのトラストアンカーの更新方法 26 root の KSK は 5 年ごとにロールオーバー ( 鍵の交換 ) が 発生します その為 5 年毎にトラストアンカーの更新が必要です => 大変なので RFC5011 により トラストアンカーの自動更新が規定されてます 実際の設定に関しては 自動更新を使用する 設定を説明します

27 構築方法 キャッシュ DNS サーバの設定

BIND9 設定方法 (9.7 系 ) 28 パターン 1 トラストアンカーを設定する場合 named.conf managed-keys { "." initial-key 257 3 8 "AwEAAagAIKlVZrpC6Ia7gEzahOR+9W29euxhJhVVLOyQbSEW0O8gcCjF FVQUTf6v58fLjwBd0YI0EzrAcQqBGCzh/RStIoO8g0NfnfL2MTJRkxoX bfdauevpquyehg37nzwajq9vnmvdxp/vhl496m/qzxkjf5/efucp2gad X6RS6CXpoY68LsvPVjR0ZSwzz1apAzvN9dlzEheX7ICJBBtuA6G3LQpz W5hOA2hzCTMjJPJ8LbqF6dsV6DoBQzgul0sGIcGOYl7OyQdXfZ57relS Qageu+ipAdTTJ25AsRTAoub8ONGcLmqrAmRLKBP1dfwhYB4N7knNnulq QxA+Uk1ihz0="; }; ルート以外のゾーンのトラストアンカーを設定したい時にも使用します

BIND9 設定方法 (9.9 系 9.8 系 ) 29 パターン 2 BIND に付属する トラストアンカーを使用する場合 named.conf options { dnssec-validation auto; 以下略 };

Unbound 設定方法 30 Step1. トラストアンカーファイルの作成 unbound-anchor を使用する場合 $ unbound-anchor a トラストアンカーファイルパス unbound-anchor を使用しない場合は下記のようなルートゾーンの KSK の RRSet を 1 行で記載したファイルを作成する トラストアンカーファイル. 172800 IN DNSKEY 257 3 8 AwEAAagAIKl== 省略 = Step2. トラストアンカーファイルの指定 unbound.conf の auto-trust-anchor-file にトラストアンカーファイルを設定する unbound.conf server: auto-trust-anchor-file: トラストアンカーファイルパス "

確認方法 31 $ dig @ キャッシュ DNS サーバ IP +dnssec www.iana.org ; <<>> DiG 9.9.1-P3 <<>> +dnssec www.iana.org ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 24834 ;; flags: qr rd ra ad; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags: do; udp: 4096 ;; QUESTION SECTION: ;www.iana.org. IN A $ drill -D www.iana.org @ キャッシュ DNS サーバ IP SOA IN ;; ->>HEADER<<- opcode: QUERY, rcode: NOERROR, id: 56876 ;; flags: qr rd ra ad ; QUERY: 1, ANSWER: 2, AUTHORITY: 4, ADDITIONAL: 0 ;; QUESTION SECTION: ;; www.iana.org. IN SOA ad bit が立っていれば検証成功 http://test.dnssec-or-not.org/ を見に行こう

32 運用 監視 ログ項目

監視項目 33 統計関係監視項目 BIND Unbound 署名検証失敗数 DNSSEC validation failed num.answer.bogus SERVFAIL 数 queries resulted in SERVFAIL num.answer.rcode.servfail Unboundはextended-statistics: yesが必要 これらの値が急増している場合は 何らかのトラブルが考えられる

ログ項目 34 ログ関係 BIND DNSSEC 関係のログを出力 logging { }; category dnssec { dnssec_log; }; channel dnssec_log { file.. }; Unbound 検証失敗時にログを出力 Server: val-log-level: 1 ログを出すことで どのドメインの検証に失敗しているのかわかるので 切り分けが楽になる 複数台構成の場合は 全部ログを有効にするとパフォーマンスの問題が生じるので 何台かログを有効にするだけでも 十分傾向はつかめる

35 運用 トラブルシューティング

運用中起こりうる DNSSEC 対応の DNS キャッシュサーバ固有の問題 36 問題 検証エラー (Bogus) 時はスタブリゾルバからの応答に SERVFAIL を返します よって 権威 DNS サーバ側で署名更新 鍵更新に失敗すると DNSSEC 対応のキャッシュサーバのみ名前解決に失敗します インパクト DNSSEC に対応しているドメインは少ないのは事実 しかしルートや TLD の普及率はかなり高いため ここで問題が発生すると 多くのドメインが影響を受ける ルートに問題が生じると 完全に名前解決ができなくなります TLD に問題が生じると その TLD のドメインは名前解決できなくなります NS が外部名設定の場合は 影響を受けることもあります ルート TLD 大規模サイト等の影響が大きいゾーンが Fail した場合に備えて 切り分け方法と対応方法を考えることが大切です

トラブルシューティング 37 あるドメインの名前解決ができなくなった理由が DNSSEC 検証かどうか調べたい場合 $ dig @[ キャッシュサーバの IP] fail.sannet.jp SOA ; <<>> DiG 9.9.1-P3 <<>> fail.sannet.jp SOA ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 59329 ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;fail.sannet.jp. IN SOA

トラブルシューティング 38 cd ビット (check disable) をつけて問い合わせてみる $ dig +cd @[ キャッシュサーバの IP] fail.sannet.jp SOA ; <<>> DiG 9.9.1-P3 <<>> +cd @202.216.0.53 fail.sannet.jp SOA ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 17619 ;; flags: qr rd ra cd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;fail.sannet.jp. IN SOA ;; ANSWER SECTION: fail.sannet.jp. 3570 IN SOA dns.sannet.ne.jp. postmaster.sannet.jp. 2012110501 10800 1800 604800 3600 応答が返ってくる場合は DNSSEC の検証に失敗しています

トラブルシューティング ( さらに詳しく調べる CLI 編 ) 39 drill を使っての調査 $ drill -T -D -Q -k ~/.root.key fail.sannet.jp SOA ;; Number of trusted keys: 1 ;; Domain:. [T]. 172800 IN DNSKEY 256 3 8 ;{id = 24220 (zsk), size = 1024b}. 172800 IN DNSKEY 257 3 8 ;{id = 19036 (ksk), size = 2048b} [T] jp. 86400 IN DS 15685 8 2 170e77ff24dd8d8a1fde99aeb4c93a85434c9376a3c198fbbfe12d0f807a14e9 jp. 86400 IN DS 15685 8 1 bb1fea6aa10dbb52a7df091dae3af22c28f65b4b ;; Domain: jp. [T] jp. 86400 IN DNSKEY 256 3 8 ;{id = 6831 (zsk), size = 1024b} jp. 86400 IN DNSKEY 256 3 8 ;{id = 25848 (zsk), size = 1024b} jp. 86400 IN DNSKEY 257 3 8 ;{id = 15685 (ksk), size = 2048b} [T] sannet.jp. 86400 IN DS 64024 8 2 0cefe2e6dde3fdd2348aefab2e711f50018f456fb9074dd5e0b813a495604700 ;; Domain: sannet.jp. [T] sannet.jp. 3600 IN DNSKEY 256 3 8 ;{id = 17061 (zsk), size = 1024b} sannet.jp. 3600 IN DNSKEY 257 3 8 ;{id = 64024 (ksk), size = 2048b} sannet.jp. 3600 IN DNSKEY 256 3 8 ;{id = 33444 (zsk), size = 1024b} sannet.jp. 3600 IN DNSKEY 257 3 8 ;{id = 31819 (ksk), size = 2048b} [T] fail.sannet.jp. 3600 IN DS 42292 8 2 0be8aa52b8329023c644bedd2be2b84a559766631ad5016e1f717467aec3500d fail.sannet.jp. 3600 IN DS 42292 8 1 36e10f413f6b55c317545083cc2dd94ed7ef7cf4 ;; Domain: fail.sannet.jp. [B] fail.sannet.jp. 3600 IN DNSKEY 257 3 8 ;{id = 42292 (ksk), size = 2048b} fail.sannet.jp. 3600 IN DNSKEY 256 3 8 ;{id = 14196 (zsk), size = 1024b} [B] fail.sannet.jp. 3600 IN SOA dns.sannet.ne.jp. postmaster.sannet.jp. 2012110501 10800 1800 604800 3600 ;; Error: No keys with the keytag and algorithm from the RRSIG found ;;[S] self sig OK; [B] bogus; [T] trusted

トラブルシューティング ( さらに詳しく調べる GUI 編 ) 40 DNS の設定チェック http://dnscheck.jp/ DNS のチェックも行ってくれる DNSViz http://dnsviz.net/ 信頼の連鎖を視覚的に見たい時に有効

対応方法 41 検証を一時的に止める ルートや TLD 等の影響が大きいゾーンが Fail した場合で キャッシュ DNS サーバへの攻撃ではなく 権威 DNS サーバ側の問題と確認できた場合 検証を一時停止する BIND の場合 rndc validation disable で停止できます (enable で再開 ) unbound の場合 特定のドメインのみ 検証を停止することができます domain-insecure: "example.com" 相手が復旧させるのを待つ 基本的にはこちらが多いです 場合によってはキャッシュクリアして 復旧を早めることもできます 基本的に 相手側の事故なので 対応することは難しいです どのような対応をするかは運用者のポリシーになると思います

まとめ 42 DNSSEC 対応のキャッシュサーバとは DNSSEC の署名検証を行い 正当性を検証する キャッシュ DNS サーバ 構築するには 検証に必要なトラストアンカーを設定する 運用 切り分け方法をマスターしておく ルートや TLD 等の影響が大きいゾーンが失敗した場合の対応策をあらかじめ考えておく

44 参考情報

参考情報 : お勧めツールの紹介 45 CLI 系 dig ISC BIND に付属ここにきている人であれば普通に使ってる筈 drill nlnetlabs ldns に付属 -T D オプションが非常に強力 WEB 系 DNS の設定チェック (JPRS) http://dnscheck.jp/ DNSSEC のチェックだけではなく DNS のチェックも行われます DNSSEC Analyzer http://dnssec-debugger.verisignlabs.com/ DNSViz http://dnsviz.net/ 信頼の連鎖を視覚的に見たい時に有効

参考情報 : お勧めツールの紹介 46 ライブラリ系 ldns nlnet Labs が作成しているライブラリ Unbound,NSD で使用されている Net::DNS::SEC CPAN のライブラリ Dnsruby Ruby の DNS ライブラリ弊社の DNS テストプログラムで使用中してます

参考情報 : お勧めする資料 47 DNSSEC ジャパン DNSSEC Ready ロゴチェックリスト ( カテゴリ : キャッシュ DNS サーバ ) DNSSEC を利用するリゾルバーのためのトラストアンカーの設定方法について第 2 版 キャッシュ DNS サーバ DNSSEC 導入ガイドライン DNS サーバ DNSSEC 導入 Load Balancer 機能チェックリスト JPRS 実践 DNS [ISBN 978-4-04-870073-3] DNSSEC チュートリアル http://jprs.jp/related-info/guide/#a01 トピックス & コラム No18 運用者から見た DNSSEC と従来の DNS の違い 各サーバソフトウェア関係 Unbound: Howto enable DNSSEC( 日本語訳が日本 Unbound ユーザ会に有り )

参考資料 : 応答例 Indeterminate 48 キャッシュ DNS に設定したトラストアンカー 署名鍵 (KSK) 上位ゾーンに下位ゾーンの DS の登録なし 署名鍵 (ZSK) 上位ゾーン 下位ゾーンに DNSKEY RRSIG 等なし 下位ゾーン DNSSEC に対応していないゾーン普通のゾーンはこの状態

参考資料 : 応答例 Secure 49 キャッシュ DNS に設定したトラストアンカー 署名鍵 (KSK) 上位ゾーンに下位ゾーンの DS の登録あり 署名鍵 (ZSK) 下位ゾーン DS 上位ゾーン DS に対応した KSK 下位ゾーンに DNSKEY RRSIG あり 検証に成功 署名鍵 (ZSK) 検証したいレコード 下位ゾーン DNSSEC にきちんと対応しているゾーン

参考資料 : 応答例 Bogus 50 キャッシュ DNS に設定したトラストアンカー 署名鍵 (KSK) 上位ゾーンに下位ゾーンの DS の登録あり 署名鍵 (ZSK) 下位ゾーン DS 上位ゾーン DSに対応したKSK 署名鍵 (ZSK) 下記のいずれかの場合検証失敗 1. 上位ゾーンに登録のある DS に対応する KSK がない場合 1. DNSKEY または検証レコードに対応する RRSIG がない RRSIG が有効期間外 RRSIG に対応する鍵がない RRSIG と対応する鍵の署名検証に失敗 検証したいレコード 下位ゾーン DNSSEC に対応しているが 署名 鍵が間違っている状態か キャッシュ DNS が攻撃を受けて Bad Cache をつかんでいる状態

参考資料 : 応答例 Insecure 51 キャッシュ DNS に設定したトラストアンカー 署名鍵 (KSK) 上位ゾーンに下位ゾーンの DS の登録なし 署名鍵 (ZSK) 上位ゾーン DS に対応した KSK 署名鍵 (ZSK) 下位ゾーンに DNSKEY RRSIG あり トラストアンカーからの信頼の連鎖が構築できないので 検証不能 たとえ 子ゾーンの署名内容が間違っていても検証されないので Bogus にはならない 検証したいレコード 下位ゾーン 署名のみしていて DS が登録されていないゾーンが該当