1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Cloudflare Gateway の DNS ポリシーを確認する

Last updated at Posted at 2021-09-06

Cloudflare Gateway とは

Cloudflare Gateway | セキュアなWebゲートウェイ & DNSフィルタリング | Cloudflare

Cloudflare の DNS を利用して名前解決するだけでなく、 DNS / HTTP ポリシーを設定することで DNS フィルタリングやセキュア Web ゲートウェイとして機能するサービスです。

どのように機能するか

アカウント内に「Location」を設定することができますが、DNS クエリが

  • DNS over HTTPS (DoH) / DNS over TLS (DoT) の場合、「Location」ごとに払い出されるユニークなホスト名
  • Normal DNS over IPv4 の場合、自分で登録したユニークな送信元 IPv4 アドレス
    • 自宅用回線の通信で用いられるグローバル IP は共有されているので、どなたかが登録していると登録できない場合があります
  • Normal DNS over IPv6 の場合、「Location」ごとに払い出されるユニークな宛先 IPv6 アドレス

でどのアカウントのポリシーが適用されるかが判断されます。

Locations · Cloudflare for Teams documentationimage.png

テスト設定

以下のような簡単な設定で DNS クエリがブロックされることを確認します。

image-20210906230325788

以下の例では「youtube.com」と付くものはブロックします。(正規表現は regex101 などのサイトで確認できます。)

image-20210906230435320

DNS over IPv4

以下のコマンドで登録 IP と、DNS クエリのソース IP が確認できます。

export EMAIL='YOUR_EMAIL'
export APIKEY='YOUR_APIKEY'
export ACCOUNT_ID='YOUR_ACCOUNT_ID'

% curl -s -X GET "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/gateway/locations" \
-H "X-Auth-Email: $EMAIL" \
-H "X-Auth-Key: $APIKEY" \
-H "Content-Type: application/json" | jq -r '.result[] | select (.name == "Nuro") | .networks[0].network'
YOUR_IPV4/32

% dig -4 @172.64.36.1 whoami.cloudflare ch txt +short | sed "s/\"//g"
YOUR_IPV4

「172.64.36.1」「172.64.36.2」への問い合わせでブロックされることが確認できます。

% dig -4 @172.64.36.1 www.youtube.com A +short
0.0.0.0

DNS over IPv6

以下のコマンドで自アカウント専用の宛先 IPv6 が確認できます。

export EMAIL='YOUR_EMAIL'
export APIKEY='YOUR_APIKEY'
export ACCOUNT_ID='YOUR_ACCOUNT_ID'

MY_IPV6=$(curl -s -X GET "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/gateway/locations" \
-H "X-Auth-Email: $EMAIL" \
-H "X-Auth-Key: $APIKEY" \
-H "Content-Type: application/json" | jq -r '.result[] | select (.name == "Nuro") | .ip')
echo $MY_IPV6

自アカウント専用の宛先 IPv6 への問い合わせでブロックされることが確認できます。

% dig -6 @$MY_IPV6 www.youtube.com A +short
0.0.0.0

DNS over HTTPS (DoH)

以下のコマンドで自アカウント専用のユニークホスト名が確認できます。

export EMAIL='YOUR_EMAIL'
export APIKEY='YOUR_APIKEY'
export ACCOUNT_ID='YOUR_ACCOUNT_ID'

MY_DOH_SUBDOMAIN=$(curl -s -X GET "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/gateway/locations" \
-H "X-Auth-Email: $EMAIL" \
-H "X-Auth-Key: $APIKEY" \
-H "Content-Type: application/json" | jq -r '.result[] | select (.name == "Nuro") | .doh_subdomain')
echo $MY_DOH_SUBDOMAIN

自アカウント専用のユニークホスト名への問い合わせでブロックされることが確認できます。

% curl -s -H 'accept: application/dns-json' \
'https://'$MY_DOH_SUBDOMAIN'.cloudflare-gateway.com/dns-query?name=www.youtube.com&type=A' | jq
{
  "Status": 0,
  "TC": false,
  "RD": true,
  "RA": true,
  "AD": false,
  "CD": false,
  "Question": [
    {
      "name": "www.youtube.com",
      "type": 1
    }
  ],
  "Answer": [
    {
      "name": "www.youtube.com",
      "type": 1,
      "TTL": 60,
      "data": "0.0.0.0"
    }
  ]
}

DNS over TLS (DoT)

以下のコマンドで自アカウント専用のユニークホスト名が確認できます。

export EMAIL='YOUR_EMAIL'
export APIKEY='YOUR_APIKEY'
export ACCOUNT_ID='YOUR_ACCOUNT_ID'

MY_DOH_SUBDOMAIN=$(curl -s -X GET "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/gateway/locations" \
-H "X-Auth-Email: $EMAIL" \
-H "X-Auth-Key: $APIKEY" \
-H "Content-Type: application/json" | jq -r '.result[] | select (.name == "Nuro") | .doh_subdomain')
# echo $MY_DOH_SUBDOMAIN

自アカウント専用のユニークホスト名への問い合わせでブロックされることが確認できます。

% kdig @$MY_DOH_SUBDOMAIN.cloudflare-gateway.com +tls-ca +tls-host=cloudflare-gateway.com +tls-sni=$MY_DOH_SUBDOMAIN.cloudflare-gateway.com www.youtube.com A +short
0.0.0.0

参考

参考:Block Page 有効時

こちらの Block Page を有効にすると、0.0.0.0 ではなく 162.159.36.12 のような Block Page の IP アドレスが応答されます。

Block page · Cloudflare for Teams docs
Pasted_Image_1_20_22__12_19.png

% dig @172.64.36.1 example.net A +short   
162.159.36.12
1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?