2
0

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 1 year has passed since last update.

CloudflareAdvent Calendar 2022

Day 15

Cloudflare Zero Trust で Zoom IP レンジの Split Tunnel エントリを追加する

Last updated at Posted at 2023-04-28

Zoom の推奨確認

Zoom によると VPN 利用時は、以下の通信に対して VPN を通らないように Split Tunnel のリストに追加することが推奨されています。

When VPN services are used, to optimize the traffic flow Zoom recommends enabling Split Tunneling with the following:

Cloudflare Zero Trust で Split Tunnel エントリを追加するには?

上記の IP リストを見ると、300 以上の IP レンジを登録する必要があります。

% curl -s https://assets.zoom.us/docs/ipranges/ZoomMeetings.txt | grep -c '' 
310

ただ 2023年4月28日現在では、Cloudflare Zero Trust ダッシュボードからバルクでインポートする処理は見当たらないため、API から追加する方法が効率的です。

image.png

Split Tunnel エントリ追加 API

PATCH メソッドがないため、PUT メソッドによる上書きが必要です。

Split Tunnel のデフォルトエントリ を含めて、PUT するのが以下のコマンドになります。

返答として、大量のエントリと "success":true が返ってきていれば OK です。

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

curl -s https://assets.zoom.us/docs/ipranges/ZoomMeetings.txt | jq -Rs '[ split("\n")[] | select(length > 0) | split(",") | {address: .[0]} ] | . + [{"address":"10.0.0.0/8"},{"address":"100.64.0.0/10"},{"address":"169.254.0.0/16"},{"address":"172.16.0.0/12"},{"address":"192.0.0.0/24"},{"address":"192.168.0.0/16"},{"address":"224.0.0.0/24"},{"address":"240.0.0.0/4"},{"address":"255.255.255.255/32"},{"address":"fe80::/10"},{"address":"fd00::/8"},{"address":"ff01::/16"},{"address":"ff02::/16"},{"address":"ff03::/16"},{"address":"ff04::/16"},{"address":"ff05::/16"}]' | \
curl -X PUT https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/devices/policy/exclude \
     -H "X-Auth-Email: $EMAIL" \
     -H "X-Auth-Key: $APIKEY" \
     -H "Content-Type: application/json" \
     --data @-

API 操作が完了すると、エントリの数が 326(デフォルトエントリ 16 + Zoom IP レンジ 310)になっていることが確認できます。

image.png

プロファイル指定

先ほどの例はデフォルトプロファイルに対しての設定になります。

image.png

デフォルトプロファイル以外にも、プロファイルがある場合には

image.png

以下の API からプロファイルの ID を取得し、

% curl -sX GET https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/devices/policies \
     -H "X-Auth-Email: $EMAIL" \
     -H "X-Auth-Key: $APIKEY" \
     -H "Content-Type: application/json" | jq -r '.result|map(. |= {policy_id, enabled, name, match, precedence, default}) |.[]'
{
  "policy_id": "f4475b76-1f90-489d-872a-f500a385cbdc",
  "enabled": true,
  "name": "Office User",
  "match": "network in {\"Tokyo Office Network\"}",
  "precedence": 1000,
  "default": false
}
{
  "policy_id": null,
  "enabled": true,
  "name": null,
  "match": null,
  "precedence": null,
  "default": true
}

ID を指定してエントリ追加のコマンドを実施すれば、個別のプロファイルにも対応できます

export POLICY_ID='f4475b76-1f90-489d-872a-f500a385cbdc'

curl -s https://assets.zoom.us/docs/ipranges/ZoomMeetings.txt | jq -Rs '[ split("\n")[] | select(length > 0) | split(",") | {address: .[0]} ] | . + [{"address":"10.0.0.0/8"},{"address":"100.64.0.0/10"},{"address":"169.254.0.0/16"},{"address":"172.16.0.0/12"},{"address":"192.0.0.0/24"},{"address":"192.168.0.0/16"},{"address":"224.0.0.0/24"},{"address":"240.0.0.0/4"},{"address":"255.255.255.255/32"},{"address":"fe80::/10"},{"address":"fd00::/8"},{"address":"ff01::/16"},{"address":"ff02::/16"},{"address":"ff03::/16"},{"address":"ff04::/16"},{"address":"ff05::/16"}]' | \
curl -X PUT https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/devices/policy/$POLICY_ID/exclude \
     -H "X-Auth-Email: $EMAIL" \
     -H "X-Auth-Key: $APIKEY" \
     -H "Content-Type: application/json" \
     --data @-

【参考】Cloudflare Zero Trust の Split Tunnel のデフォルトエントリ

こちらになります。

2
0
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
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?