INTEGRITY Dokumentace

DNS over HTTPS (DoH)

S Cloudflare Gateway můžete filtrovat požadavky DNS over HTTPS (DoH) pomocí Umístění DNS nebo podle uživatele, aniž by bylo nutné instalovat Cloudflare One Client na vašich zařízeních.

Zásady založené na umístění vyžadují, abyste DNS požadavky odesílali na endpoint DoH specifický pro danou lokalitu, zatímco zásady založené na identitě vyžadují, aby požadavky obsahovaly token DoH specifický pro uživatele.

Filtrovat požadavky DoH podle lokality

Zásady založené na umístění vyžadují, abyste DNS dotazy odesílali na jedinečný DoH endpoint přiřazenou lokalitě:

https://<YOUR_DOH_SUBDOMAIN>.cloudflare-gateway.com/dns-query

Předpoklady

Získejte pro svou lokalitu DoH subdoména.

Nakonfigurujte prohlížeč pro DoH

Prohlížeče lze nakonfigurovat tak, aby používaly libovolný endpoint DNS over HTTPS (DoH). Pokud se rozhodnete nakonfigurovat DoH přímo v prohlížeči, musíte jako svůj endpoint DoH zvolit umístění Gateway DNS, jinak v daném prohlížeči nebude docházet k filtrování DNS.

Mozilla Firefox

  1. Ve Firefoxu přejděte do Nastavení.
  2. V Privacy & Security, přejděte na DNS over HTTPS.
  3. V části Povolte zabezpečené DNS pomocí, vyberte Maximální ochrana.
  4. V Zvolte poskytovatele, vyberte Custom.
  5. Do pole zadejte https://<YOUR_DOH_SUBDOMAIN>.cloudflare-gateway.com/dns-query.

Firefox je nyní nakonfigurován tak, aby používal váš DoH endpoint. Další informace o konfiguraci nastavení DoH ve Firefoxu najdete v Dokumentace Mozilly.

Google Chrome

  1. V Chromu přejděte na Nastavení > Ochrana soukromí a zabezpečení > Security.
  2. Přejděte dolů a zapněte Použít zabezpečené DNS.
  3. Vyberte S vlastním.
  4. V Zadejte vlastního poskytovatele pole zadejte https://<YOUR_DOH_SUBDOMAIN>.cloudflare-gateway.com/dns-query.

Přečtěte si více o povolení DNS přes HTTPS v Chromu.

Microsoft Edge

  1. V Microsoft Edge přejděte do Nastavení.
  2. Vyberte Privacy, Search, and Services, a přejděte dolů na Security.
  3. Zapněte Použít zabezpečené DNS.
  4. Vyberte Vybrat poskytovatele služby.
  5. V Zadejte vlastního poskytovatele pole zadejte https://<YOUR_DOH_SUBDOMAIN>.cloudflare-gateway.com/dns-query.

Brave

  1. V prohlížeči Brave přejděte na Nastavení > Zabezpečení a soukromí > Security.
  2. Zapněte Použít zabezpečené DNS.
  3. Vyberte S vlastním.
  4. V Zadejte vlastního poskytovatele pole zadejte https://<YOUR_DOH_SUBDOMAIN>.cloudflare-gateway.com/dns-query.

Safari

Safari v současné době nepodporuje DNS over HTTPS.

Vaše DNS dotazy se nyní budou odesílat do Gateway k filtrování. Chcete-li tyto požadavky filtrovat, vytvořte zásadu DNS pomocí DNS lokalita selektor.

Nakonfigurujte operační systém pro DoH

Windows 11

  1. Získejte A a AAAA hodnoty záznamu přidružené k vašemu DoH endpointu pro danou lokalitu.

    1. Spusťte následující příkaz pro získání vašeho A hodnoty záznamu:
    nslookup -type=A <your-subdomain>.cloudflare-gateway.com
    1. Získejte svůj AAAA hodnoty záznamu.
    nslookup -type=AAAA <your-subdomain>.cloudflare-gateway.com
    1. Zkopírujte výsledné IP adresy.
  2. Přidejte adresy do svého seznamu známých DoH serverů.

    1. Spusťte následující příkaz pro každou adresu:
    Add-DnsClientDohServerAddress -ServerAddress <IP-address> -DohTemplate https://<your-subdomain>.cloudflare-gateway.com/dns-query -AllowFallbackToUdp $False -AutoUpgrade $False
    1. Ověřte, že byly adresy přidány.
    Get-DnsClientDohServerAddress
  3. Ve Windows přejděte do Nastavení > Network & internet > vaše aktivní internetové připojení. Tato možnost může být buď Ethernet nebo Wi-Fi.

  4. V části Přiřazení DNS serveru, vyberte Úprava.

  5. V rozbalovací nabídce zvolte Ruční.

  6. Povolit IPv4.

  7. V Preferred DNS a Alternativní DNS, zadejte adresy IPv4 ze svého A příkaz pro záznam. Nastavte DNS over HTTPS na Zapnuto (automatická šablona).

  8. Povolit IPv6.

  9. V Preferred DNS a Alternativní DNS, zadejte adresy IPv6 ze svého AAAA příkaz pro záznam. Nastavte DNS over HTTPS na Zapnuto (automatická šablona).

Windows Server 2022

Získejte A a AAAA hodnoty záznamu přidružené k vašemu DoH endpointu pro danou lokalitu.

  1. Spusťte následující příkaz pro získání vašeho A hodnoty záznamu:
nslookup -type=A <your-subdomain>.cloudflare-gateway.com
  1. Získejte svůj AAAA hodnoty záznamu.
nslookup -type=AAAA <your-subdomain>.cloudflare-gateway.com
  1. Zkopírujte výsledné IP adresy.
  2. Přidejte adresy do seznamu známých serverů DoH.
  3. Konfigurace klienta Windows Server nebo nastavit zásadu skupiny (Group Policy) k použití DoH.

Další informace najdete v tématu Průvodce Microsoftu k DoH pro Windows Server 2022 a novější.

Použít obecný DoH endpoint

Požadavky DoH můžete odesílat na obecný endpoint Cloudflare DoH, dns.cloudflare-gateway.com. Chcete-li ve svém požadavku určit lokalitu, zahrňte hlavičku s názvem cf-dns-location s hodnotou subdomény DoH vaší lokality. Například:

GET /dns-query?name=example.com&type=A HTTP/2
Host: dns.cloudflare-gateway.com
cf-dns-location: 9y65g5srsm
Accept: application/dns-message

Filtrovat požadavky DoH podle uživatele

Aby bylo možné filtrovat dotazy DoH podle identity uživatele, musí každý dotaz obsahovat autentizační token specifický pro daného uživatele. Pokud má jeden uživatel více zařízení a chcete uplatňovat zásady specifické pro jednotlivá zařízení, musíte každé zařízení namapovat na jiný e-mail.

V současné době lze ověřovací tokeny generovat pouze přes API. Tento příkaz můžete spustit interaktivní skript Python který automatizuje postup nastavení, nebo postupujte podle níže popsaných kroků.

1. Vytvořte service token pro účet

Každý účet Cloudflare může mít pouze jeden aktivní Access token služby autorizován pro DNS over HTTPS (DoH) najednou.

curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/access/service_tokens" \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--header "Content-Type: application/json" \
--data '{"name":"ACME Corporation service token"}'

Uložte token služby client_id, client_secret, a id.

Ukázková odpověď

{
	"result": {
		"client_id": "88bf3b6d86161464f6509f7219099e57.access",
		"client_secret": "cfast_EqN8f9vx3sKOSY4mwCMCbZYb02L4OvfAkacLAqTZ63a435a7",
		"created_at": "2022-06-09T01:59:17Z",
		"enabled": true,
		"expires_at": "2023-06-09T01:59:17Z",
		"id": "f174e90a-fafe-4643-bbbc-4a0ed4fc8415",
		"name": "ACME Corporation service token",
		"updated_at": "2022-06-09T01:59:17Z"
	},
	"success": true,
	"errors": [],
	"messages": []
}

2. Povolte funkci DoH pro token služby

curl --request PUT \
"https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/access/organizations/doh/$SERVICE_TOKEN_ID" \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"

Pokud se zobrazí access.api.error.service_token_not_found chybu, zkontrolujte, zda $SERVICE_TOKEN_ID je hodnota id a ne client_id.

Ukázková odpověď

{
	"result": {
		"client_id": "88bf3b6d86161464f6509f7219099e57.access",
		"created_at": "2022-06-09T01:59:17Z",
		"expires_at": "2023-06-09T01:59:17Z",
		"id": "f174e90a-fafe-4643-bbbc-4a0ed4fc8415",
		"name": "ACME Corporation service token",
		"updated_at": "2022-06-09T01:59:17Z",
		"duration": "8760h"
	},
	"success": true,
	"errors": [],
	"messages": []
}

3. Vytvořte uživatele

Vytvořte nového uživatele a volitelně ho přidejte do skupiny.

curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/access/users" \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--header "Content-Type: application/json" \
--data '{
  "name": "John Doe",
  "email": "[email protected]",
  "custom": {"groups":[{"id": "02fk6b3p3majl10", "email": "[email protected]", "name": "Finance"}]}
}'

Uložte uživatele id vrácená v odpovědi.

Ukázková odpověď

{
	"result": {
		"id": "54d425de-7a78-4186-9975-d43c88ee7899",
		"created_at": "2022-03-16T21:18:39.93598Z",
		"updated_at": "2022-05-17T23:50:39.598345Z",
		"uid": "54d425de-7a78-4186-9975-d43c88ee7899",
		"name": "John Doe",
		"email": "[email protected]",
		"custom": {
			"groups": [
				{
					"email": "[email protected]",
					"id": "02fk6b3p3majl10",
					"name": "Finance"
				}
			]
		}
	},
	"success": true,
	"errors": [],
	"messages": []
}

4. Vygenerujte token DoH pro uživatele

Vyžádejte token DoH pro uživatele pomocí service tokenu k ověření do vašeho doména týmu.

curl "https://<TEAM_NAME>.cloudflareaccess.com/cdn-cgi/access/doh-token?account-id=<ACCOUNT_ID>&user-id=<USER_ID>&auth-domain=<TEAM_NAME>.cloudflareaccess.com" \
--header "Cf-Access-Client-Id: <CLIENT_ID>" \
--header "Cf-Access-Client-Secret: <CLIENT_SECRET>"

Odpověď obsahuje jedinečný token DoH přiřazený uživateli. Platnost tohoto tokenu vyprší za 24 hodin. Doporučujeme nastavit obnovovací tok pro token DoH místo generování nového tokenu pro každý DoH dotaz.

Ukázková odpověď

{
	"token": "y2khbGciOiJSUzI1NiIsImtpZCI6ImJlZjVkYjg4ZTEwMjk3ZDEwNzhkMmEyYjE0MjMxZTljYTQwMjQ2NjAwOTQzNmJhOTQwOGJkODY3ZmI4OWFiOGQifQ.eyJ0eXBlIjoiZG9oIiwiYXVkIjoiY2xvdWRmbGFyZS1nYXRld2F5LmNvbSIsImlhdCI6MTY1NDc1MTg3NSwiZXhwIjoxNjU0ODM4Mjc1LCJhY2NvdW50LWlkIjoiMTA4MDM0OGIyZGYzYmQwN2QxZmI1MjM3Y2Q1ZDU5M2EiLCJ1c2VyLWlkIjoiNTRkNDI1ZGUtN2E3OC00MTg2LTk5NzUtZDQzYzg4ZWU3ODk5In0.I5p4WsH2dPhQ8vwy84zF05PsoBHCsUSXAaMpNhEH36oFZ3tXcs9ksLz7OzpZ_x3HxUfO3n57LlpAF1VehaBt2i94XCkvSgtHpYcwd_qZydLp-BGtcyfU1LbdXQC3m6zxKcIWu5VySi8I-J25UYlpyJhYgZ4DQUZIpqbSSt6WcVRKvA7OBa7xjkTux4OcqWAViO_ZS-GLwl-fqhvolmiwk37seBD3YuV1zG06VeWXfrMkZ5MbhooHD1DZDBHOZpTtmN8MbeKeI4tlY1mb_O3-jE-um6F9Hrl4NQm89MKFzsum-_Rywi5m4PTSlDza7fjdJs7RzFgJd3VWgzG-jgyQKw"
}

5. Odešlete ověřený dotaz DoH

Odesílá dotazy DoH resolveru na https://<ACCOUNT_ID>.cloudflare-gateway.com/dns-query, nezapomeňte zahrnout DoH token uživatele do CF-Authorization hlavička.

curl --silent "https://<ACCOUNT_ID>.cloudflare-gateway.com/dns-query?name=example.com" \
--header "accept: application/dns-json" \
--header "CF-Authorization: <USER_DOH_TOKEN>" | jq

Pokud je web blokován a máte zapnuto blokovací stránka pro zásadu, dotaz vrátí 162.159.36.12 (IP adresa blokovací stránky Gateway). Pokud je blokovací stránka zakázána, odpověď bude 0.0.0.0.

Ukázková odpověď

{
	"Status": 0,
	"TC": false,
	"RD": true,
	"RA": true,
	"AD": false,
	"CD": false,
	"Question": [
		{
			"name": "example.com",
			"type": 1
		}
	],
	"Answer": [
		{
			"name": "example.com",
			"type": 1,
			"TTL": 60,
			"data": "162.159.36.12"
		}
	]
}

Můžete ověřit, že byl požadavek přiřazen ke správnému e-mailu uživatele, a to kontrolou svého Protokoly DNS Gateway. Chcete-li tyto požadavky filtrovat, sestavte zásadu DNS pomocí kteréhokoli z Gateway selektory založené na identitě.