INTEGRITY Документация

Настройка DNSSEC с несколькими подписывающими сторонами (multi-signer)

На этой странице объясняется, как включить multi-signer DNSSEC в Cloudflare с помощью модель 2 как описано в RFC 8901.

Перед началом работы

Учтите:

1. Настройте зону Cloudflare

Cloudflare в роли Primary (полная настройка)

Если вы используете Cloudflare в качестве основного (primary) DNS-провайдера, то есть управляете своими DNS-записями в Cloudflare, выполните следующее:

  1. На панели управления Cloudflare перейдите к разделу Настройки DNS страницу.

    Перейдите в Настройки ↗
  2. Выберите Включить DNSSEC и Подтверждение.

  1. Также включите Multi-signer DNSSEC и Multi-provider DNS.
  2. Перейдите в DNS-записи странице и создайте следующие записи в корне зоны (то есть используйте @ в записи Название поле):
    • Запись DNSKEY ключами подписи зоны (ZSK) вашего внешнего провайдера (или нескольких провайдеров).
    • Одна запись NS с серверами имён вашего внешнего провайдера.
  1. Используйте эндпоинт «Edit DNSSEC Status» чтобы включить DNSSEC и активировать multi-signer DNSSEC для вашей зоны. Установите status к active и dnssec_multi_signer к true, как в следующем примере.

Необходимые разрешения API-токена

Хотя бы одно из следующих права доступа токена требуется:
  • DNS Write
Edit DNSSEC Status
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/dnssec" \
	--request PATCH \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"status": "active",
		"dnssec_multi_signer": true
	}'
  1. Добавьте ZSK внешнего провайдера (или нескольких провайдеров) в Cloudflare, создав запись DNSKEY в своей зоне.

Необходимые разрешения API-токена

Хотя бы одно из следующих права доступа токена требуется:
  • DNS Write
Create DNS Record
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/dns_records" \
	--request POST \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"type": "DNSKEY",
		"name": "<ZONE_NAME>",
		"data": {
				"flags": 256,
				"protocol": 3,
				"algorithm": 13,
				"public_key": "<PUBLIC_KEY>"
		},
		"ttl": 3600
	}'
  1. Добавьте серверы имён внешнего провайдера (или нескольких провайдеров) в виде записей NS в апексе зоны.

Необходимые разрешения API-токена

Хотя бы одно из следующих права доступа токена требуется:
  • DNS Write
Create DNS Record
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/dns_records" \
	--request POST \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"type": "NS",
		"name": "<ZONE_NAME>",
		"content": "<NS_DOMAIN>",
		"ttl": 86400
	}'
  1. Включите использование серверов имён, добавленных на предыдущем шаге, с помощью запроса API ниже.

Необходимые разрешения API-токена

Хотя бы одно из следующих права доступа токена требуется:
  • Zone DNS Settings Write
  • DNS Write
Обновление настроек DNS
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/dns_settings" \
	--request PATCH \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"multi_provider": true
	}'

Cloudflare в роли Secondary

Если вы используете Cloudflare в качестве вторичного (secondary) DNS-провайдера, выполните следующее:

  1. На панели управления Cloudflare перейдите к разделу Настройки DNS страницу.

    Перейдите в Настройки ↗
  2. Для DNSSEC с Secondary DNS выбрать Live signing.

  1. Также включите Multi-signer DNSSEC.
  2. Добавьте ключ (или ключи) подписи зоны (ZSK) внешнего провайдера (или нескольких провайдеров) в запись DNSKEY у основного DNS-провайдера. Эта запись должна быть успешно передана в Cloudflare.
  3. Добавьте серверы имён внешнего провайдера (или нескольких провайдеров) в виде записей NS в апексе зоны у основного DNS-провайдера. Эти записи должны быть успешно переданы в Cloudflare.
  1. Используйте эндпоинт «Edit DNSSEC Status» чтобы включить DNSSEC и активировать multi-signer DNSSEC для вашей зоны. Установите status к active и dnssec_multi_signer к true, как в следующем примере.

Необходимые разрешения API-токена

Хотя бы одно из следующих права доступа токена требуется:
  • DNS Write
Edit DNSSEC Status
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/dnssec" \
	--request PATCH \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"status": "active",
		"dnssec_multi_signer": true
	}'
  1. Добавьте ZSK внешнего провайдера (или нескольких провайдеров) в запись DNSKEY у основного DNS-провайдера. Эта запись должна быть успешно передана в Cloudflare.

  2. Добавьте серверы имён внешнего провайдера (или нескольких провайдеров) в виде записей NS в апексе зоны у основного DNS-провайдера. Эти записи должны быть успешно переданы в Cloudflare.

2. Настройте внешнего провайдера

  1. Получите ZSK Cloudflare через API или запросом к одному из назначенных серверов имён Cloudflare.

Пример API:

curl "https://api.cloudflare.com/client/v4/zones/{zone_id}/dnssec/zsk" \
--header "X-Auth-Email: <EMAIL>" \
--header "X-Auth-Key: <API_KEY>"

Пример запроса из командной строки:

$ dig <ZONE_NAME> dnskey @<CLOUDFLARE_NAMESERVER> +noall +answer | grep 256
  1. Добавьте ZSK Cloudflare, полученный на предыдущем шаге, в набор записей DNSKEY внешнего провайдера (или нескольких провайдеров).
  2. Добавьте серверы имён Cloudflare в набор записей NS у внешнего провайдера (или нескольких провайдеров).

3. Настройте регистратора

  1. Добавьте у регистратора записи DS, по одной для каждого провайдера. Вашу запись DS Cloudflare можно найти на Настройки DNS странице в разделе Запись DS.

  2. Обновите настройки серверов имён у вашего регистратора, включив в них серверы имён всех провайдеров, которые вы будете использовать в конфигурации multi-signer DNSSEC.