1. qualitia_cdev

    Posted

    qualitia_cdev
Changes in title
+AWS Route53でDNSSECを使う
Changes in tags
Changes in body
Source | HTML | Preview
@@ -0,0 +1,173 @@
+こんにちは。re:Invent 2020 最終日の本日(JST基準)、[AWS re:Invent 2020でRoute53がDNSSECのサポートを始めるという発表](https://aws.amazon.com/ko/about-aws/whats-new/2020/12/announcing-amazon-route-53-support-dnssec/) がありました。AWSはDNSSECはやらない方針だという噂を聞いたことがあるので、アメリカで何か流れが変わってきたのかな?と推測しつつ、早速試してみました。Route53のDNSSEC設定方法と検証結果をみなさまと共有します。
+
+## 目次
+- 前提
+- 設定
+- 検証
+- RRSIGについて解説
+- 参考資料
+
+## 前提
+- ドメイン: uu1.jp (検証用に持っている本物のドメインです)
+- ドメインレジストラー: JPRS
+
+## 設定
+
+#### 1. AWS Route53でDNSSEC署名の有効化
+
+Route53のホストゾーンをクリックすると「DNSSEC署名」というは新しいタブメニューが出来ています。それをクリックします。
+![1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/326401/d1482ad9-51ae-0d8e-7d15-ea24e52bbc6a.png)
+
+
+右上の「DNSSEC署名を有効化する」をクリックします。
+![2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/326401/f8db9dab-b8e8-4ed6-694f-6cd7fc10bc7d.png)
+
+
+キー署名キー(KSK)の名前を付けます。
+![3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/326401/867b2dbe-0b53-0517-4293-efdbf3a1f15f.png)
+
+AWS KMSのCMKを作成し有効化します。
+![4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/326401/b09fe4fe-ae26-ee2d-0cbe-c8eb08902425.png)
+
+KSKがアクティブになったことを確認します。数分かかります。
+![5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/326401/09d84c9d-983c-ab34-67de-4a37e9ef419d.png)
+
+
+アクティブになったら、「DSレコードを作成するための情報を表示」をクリックします。
+![6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/326401/7b2943fd-6725-842f-57f3-bc6a52baeb0e.png)
+
+信頼チェーンを確立情報 > 別のドメインレジストラでDSレコードを確認し、コピーします。
+
+![8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/326401/28eeeca2-09f7-65d2-0f94-975f12372d92.png)
+
+
+#### 2. ドメインのレジストラーでDSを登録
+
+ドメインレジストラーでドメインのNameserverの設定メニューに、上記でコピーしたDSレコードを追加します。
+ここは、利用しているレジストラーでUIなど差があるので省略します。
+
+### 検証
+
+##### 1. digで引いてみます。
+```console
+# dig +dnssec uu1.jp ns
+
+; <<>> DiG 9.11.4-P2-RedHat-9.11.4-9.P2.el7 <<>> +dnssec uu1.jp ns
+;; global options: +cmd
+;; Got answer:
+;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 3994
+;; flags: qr rd ra ad; QUERY: 1, ANSWER: 5, AUTHORITY: 0, ADDITIONAL: 1
+
+;; OPT PSEUDOSECTION:
+; EDNS: version: 0, flags: do; udp: 4096
+;; QUESTION SECTION:
+;uu1.jp. IN NS
+
+;; ANSWER SECTION:
+uu1.jp. 172707 IN NS ns-48.awsdns-06.com.
+uu1.jp. 172707 IN NS ns-852.awsdns-42.net.
+uu1.jp. 172707 IN NS ns-1510.awsdns-60.org.
+uu1.jp. 172707 IN NS ns-1857.awsdns-40.co.uk.
+uu1.jp. 172707 IN RRSIG NS 13 2 172800 20201220041808 20201218021808 11110 uu1.jp. CZrd12BqXetmHKZBNBwH7vqrQQ5VNGqTvm47mgeXTFr6CwqZOVRtI1Jw 9vcpUnmEf7lNMgoV8Tn/tz/9XUPE+Q==
+
+;; Query time: 1 msec
+;; SERVER: 192.168.2.11#53(192.168.2.11)
+;; WHEN: Thu Dec 17 22:19:41 EST 2020
+;; MSG SIZE rcvd: 276
+```
+
+#### 2. drillで引いてみます。
+```console
+# drill -r named.root -k root.key -S uu1.jp soa
+;; Number of trusted keys: 1
+;; Chasing: uu1.jp. SOA
+
+DNSSEC Trust tree:
+uu1.jp. (SOA)
+|---uu1.jp. (DNSKEY keytag: 11110 alg: 13 flags: 256)
+ |---uu1.jp. (DNSKEY keytag: 7052 alg: 13 flags: 257)
+ |---uu1.jp. (DS keytag: 7052 digest type: 2)
+ |---jp. (DNSKEY keytag: 18321 alg: 8 flags: 256)
+ |---jp. (DNSKEY keytag: 46369 alg: 8 flags: 257)
+ |---jp. (DS keytag: 46369 digest type: 2)
+ |---. (DNSKEY keytag: 26116 alg: 8 flags: 256)
+ |---. (DNSKEY keytag: 20326 alg: 8 flags: 257)
+;; Chase successful
+```
+
+#### 3. dnsvizでAnalyzeしてみます。
+![uu1.jp-2020-12-18-07_24_34-UTC.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/326401/5356776f-6a18-11a4-f149-753abd4b8db0.png)
+
+ちゃんとチェーンが出来ています。素晴らしい。
+
+
+## RRSIG署名について解説
+### 有効期間
+ふと、RRSIGの有効期間を見ると、かなり短いですね。一般的には1週間とか2週間で運用するのが多いのかと思っていましたが、2時間くらいになっています。
+
+```console
+# dig @ns-48.awsdns-06.com. +dnssec uu1.jp soa
+...
+;; ANSWER SECTION:
+uu1.jp. 900 IN SOA ns-852.awsdns-42.net. awsdns-hostmaster.amazon.com. 1 7200 900 1209600 864
+uu1.jp. 900 IN RRSIG SOA 13 2 900 20201218062631 20201218041131 11110 uu1.jp. Qzkzm...(略)
+```
+有効期間が2020年12月18日 04:11:31 ~ 2020年12月18日 06:26:31 です。期間が2時間15分です。
+TTLが15分と短いのでいいですが、長いとどうなるのでしょうか。1日にしてやってみましょう。
+
+```console
+# dig @ns-48.awsdns-06.com. +dnssec ttl-86400.uu1.jp a
+...
+;; ANSWER SECTION:
+ttl-86400.uu1.jp. 86400 IN A 1.1.1.1
+ttl-86400.uu1.jp. 86400 IN RRSIG A 13 3 86400 20201219061446 20201218041446 11110 uu1.jp. B9RoA...(略)
+```
+
+2020年12月18日 04:14:46 ~ 2020年12月19日 06:14:46 になりました。期間が1日と2時間になりました。
+なるほど。TTL + 2時間 がRRSIGの有効期間ということのようです。
+
+### 署名タイミング
+署名の有効期間開始日時もちょっと気になります。現在時刻になっているような気がします。
+試してみましょう。
+
+```console
+# dig @ns-48.awsdns-06.com. +norec +dnssec uu1.jp soa
+...
+;; ANSWER SECTION:
+uu1.jp. 900 IN SOA ns-852.awsdns-42.net. awsdns-hostmaster.amazon.com. 1 7200 900 1209600 86400
+uu1.jp. 900 IN RRSIG SOA 13 2 900 20201218063622 20201218042122 11110 uu1.jp. +3v2yqQSUmPANtvqEmLma5dtrauehT2zEP+5nR5H5Z2P0YUf5jodAE+I PSt8RRTN96BqE4gyxwPrJEAh0EAq8Q==
+
+
+```console
+# dig @ns-48.awsdns-06.com. +norec +dnssec uu1.jp soa
+...
+;; ANSWER SECTION:
+uu1.jp. 900 IN SOA ns-852.awsdns-42.net. awsdns-hostmaster.amazon.com. 1 7200 900 1209600 86400
+uu1.jp. 900 IN RRSIG SOA 13 2 900 20201218063624 20201218042124 11110 uu1.jp. YH5Q+JGAK9KkXiQCt1Wio7AlvSPG2iKu9Yx5jB3sJtd3Qq4CSj25O+34 obVpzeuSaACuckcyDOWLntaln8iywA==
+```
+
+やはり、現在時刻ですね。
+あらかじめ署名したZoneを用意するのではなく、Queryが来るたびに署名しているようです。
+たくさんあるDNSサーバーからZSKのPrivate Keyを取り出すのが大変そうですが、さすがAWSですね。
+### DNSKEYの署名
+レコードセットの中でも、DNSKEYだけは、ZSKではなくKSKで署名されます。
+こちらはどうでしょうか。
+
+```console
+# dig @ns-48.awsdns-06.com. +norec +dnssec uu1.jp dnskey
+...
+;; ANSWER SECTION:
+uu1.jp. 3600 IN DNSKEY 256 3 13 4rIKNvbTPUfKYk1nJEQvtChbIheFCjpukQlt35iKoKwMag32hEhc124h h6qxQRbrXG7JC4HE0AJyo8+m5SIAYA==
+uu1.jp. 3600 IN DNSKEY 257 3 13 /FcqSpmG5z0DXzFOBnm5vGGweJUZ1BewWNZ7zLf5amARaEU1HTcKjGLT n6hmBND92WkjI4tkfSkFeRcVJuB4BQ==
+uu1.jp. 3600 IN RRSIG DNSKEY 13 2 3600 20201218090000 20201217230000 7052 uu1.jp. bUofVksYDT3Z5/H5OwS3vP7bb8X3KFq3vgEq5C/GwS8zlIVeGOvBDiy4 te+Ah1x2j3FbJ15M/kM3Zc5SN0gneA==
+```
+
+こちらは毎回署名するわけではなさそうですね。
+
+
+## 参考資料
+
+- [Announcing Amazon Route 53 support for DNSSEC](https://aws.amazon.com/ko/about-aws/whats-new/2020/12/announcing-amazon-route-53-support-dnssec/)
+- [ドメインの DNSSEC の設定](https://docs.aws.amazon.com/ja_jp/Route53/latest/DeveloperGuide/domain-configure-dnssec.html)
+- [DNS, DNSSECの仕組み](https://qiita.com/qualitia_cdev/items/7d6be1cc56372c5c94f2)
+- [DNSでもセキュアにしたい](https://qiita.com/qualitia_cdev/items/44a4b4289680649ea402)