レ点腫瘍学ノート

日記/2021年/6月15日/Cloudflare CDNでDNSSEC有効化の手順 の履歴差分(No.3)


#author("2021-06-15T18:20:02+09:00;2021-06-15T18:08:10+09:00","default:tgoto","tgoto")
#author("2021-06-15T23:34:49+09:00;2021-06-15T18:08:10+09:00","default:tgoto","tgoto")
*Cloudflare CDNでDNSSEC有効化の手順 [#kbfead6f]

CloudflareのCDNではDNSSECを無償で利用できます。またVALUE DOMAINもDNSSECに対応しました。設定の入力欄がわかりにくいのでここにメモしておきます。

DNS問い合わせてではユーザーがドメインのIPアドレスを問い合わせた際に、キャッシュサーバが権威サーバからもらったIPアドレスを返事することでユーザーがそのドメインに対応するIPアドレスにアクセスできるようになっています。しかし悪意を持った攻撃者がキャッシュサーバに意図的に誤ったドメインとIPアドレスの組み合わせを伝える''キャッシュポイズニング''によって、ユーザーを意図せぬサイトに誘導することができるようになります。これはフィッシング詐欺などにつながるため、正規でないサーバから偽装されたIPアドレス情報が送られてきてもそれが正しくない情報であることを認識することでキャッシュポイズニングを防ぐことができるようになる、これがDNSSECの意義になります。

*CloudflareでDNSSECを有効化すると [#b286cdad]

#ref(https://oncologynote.com/img/06f1d6ae28.jpg,nolink)

CloudflareのDNSの設定項目に''DNSSECを有効化''するというボタンがあり、これをクリックするとDNSSECの準備中の表示になります。Cloudflare側の設定だけでなくドメインのレジストラー側の設定が必要で、レジストラー側の設定が終わらないと準備中から進展しません。

準備中になると''DSレコード''を見ることができるようになります。下記のようなDSレコードが表示されているはずです(下記の数字は例示のために示した偽の数字です)。

|項目名|内容|備考|h
|DS レコード|>|''yourdomain.com 3600 IN DS 12345 13 2 13579ACE...''|
|ダイジェスト|13579ACE...|64字の文字列|
|ダイジェストの種類 - 2|SHA256||
|アルゴリズム|13||
|公開鍵|a8er3i...|88字くらいの文字列|
|キータグ|12345|4〜5桁くらいの数字|
|フラグ|259(KSK)||

このうち使用するのはDSレコードのDS以降(上記の表であれば「12345 13 2 13579ACE...(64字の文字列)」)になります。このうち3番目のフィールド(値)が「2」になっていますが、これはハッシュアルゴリズムSHA-256を示しています。他にこの値が「4」の場合はハッシュアルゴリズムがSHA-384を示し、「1」の場合はSHA-1ですが、SHA-384は対応していないサーバがありSHA-1はセキュリティに脆弱性があるので、SHA-256を使用するのが最も良いと思います。

*VALUE DOMAINにDNSSECの設定を登録する [#ea720b78]

#ref(https://oncologynote.com/img/06f1d6ae28_b.jpg,nolink)

VALUE DOMAINのドメイン管理画面から「ネームサーバー変更」に進み、ネームサーバー一覧が表示されているところからずっと下にスクロールすると「''DNSSECで使用する署名鍵を設定''」という欄があり署名鍵を入力する枠があります。

ここに先ほどの「''12345 13 2 13579ACE...(64字の文字列)''」を入力します。yourdomain.com 3600 IN DSの部分までは不要です。これを入力してから10分ほど待つとDNSSECが有効になります。

DNSSECの設定についてはこちらのサイトが参考になりました。

#ogp(https://eng-blog.iij.ad.jp/archives/5739#%e8%87%aa%e5%89%8d%e3%81%a7dnssec)

#description(CloudflareのCDNではDNSSECを無償で利用できます。またVALUE DOMAINもDNSSECに対応しました。設定の入力欄がわかりにくいのでここにメモしておきます。)