1. qualitia_cdev

    No comment

    qualitia_cdev
Changes in body
Source | HTML | Preview
@@ -1,164 +1,164 @@
-こんにちは。re:Invent 2020 最終日の本日(JST基準)、[Route53がDNSSECのサポートを始めるという発表](https://aws.amazon.com/ko/about-aws/whats-new/2020/12/announcing-amazon-route-53-support-dnssec/) がありました。AWSはDNSSECはやらない方針だという噂を聞いたことがあるので、アメリカで何か流れが変わってきたのかな?と推測しつつ、早速試してみました。Route53のDNSSEC設定方法と検証結果をみなさまと共有します。
+こんにちは。re:Invent 2020 最終日の本日(JST基準)、[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署名の有効化
1. Route53のホストゾーンをクリックすると「DNSSEC署名」という新しいタブメニューが出来ていました。それをクリックします。
![1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/326401/d1482ad9-51ae-0d8e-7d15-ea24e52bbc6a.png)
2. 右上の「DNSSEC署名を有効化する」をクリックします。
![2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/326401/f8db9dab-b8e8-4ed6-694f-6cd7fc10bc7d.png)
3. キー署名キー(KSK)を作ります。まず名前を付けて、
![3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/326401/867b2dbe-0b53-0517-4293-efdbf3a1f15f.png)
4. AWS KMSのCMKを作成し有効化します。
![4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/326401/b09fe4fe-ae26-ee2d-0cbe-c8eb08902425.png)
5. KSKがアクティブになったことを確認します。数分かかります。
![5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/326401/09d84c9d-983c-ab34-67de-4a37e9ef419d.png)
6. アクティブになったら、「DSレコードを作成するための情報を表示」をクリックします。
![6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/326401/7b2943fd-6725-842f-57f3-bc6a52baeb0e.png)
7. 信頼チェーンを確立情報 > 別のドメインレジストラでDSレコードを確認し、コピーしておきます。AWS側での作業はこれで終わりです。
![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==
```
### 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/)
- [AWS Route53 - ドメインの 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)