Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

管理対象ネットワーク

最終更新 Markdown で表示Agent セットアップ

機能の利用可否

クライアントモード Zero Trust プラン
すべてのモード すべてのプラン
システム 利用可否 最小クライアントバージョン
Windows 2025.1.861.0
macOS 2025.1.861.0
Linux 2025.1.861.0
iOS 1.0
Android 1.0
ChromeOS 1.0

Cloudflare One Client(旧称 WARP)では、デバイスがオフィスなどの既知のネットワーク所在地に接続したときに、特定の デバイスプロファイル とデバイスクライアント設定を選択的に適用できます。デバイスがどのネットワーク上にあるかを判定するため、Cloudflare One Client はそのネットワーク上でホストする TLS エンドポイントに接続し、証明書を検証します。証明書が一致すると、デバイスは管理対象ネットワーク上にあり、対応する デバイスプロファイル を受け取ります(そのネットワーク用にプロファイルを設定している場合)。

このページでは、次の内容を説明します。

  • 信頼できるネットワーク上に TLS エンドポイントを作成する。
  • Zero Trust で TLS エンドポイントを設定し、管理対象ネットワークを用意する。
  • Cloudflare One Client が管理対象ネットワーク上だと判定したときに、適切なデバイスプロファイルを適用する。

要件

  • Cloudflare One Client は、オペレーティングシステムのデフォルトルートが変わったとき、接続中の Wi-Fi の SSID が変わったとき、またはデフォルトインターフェイスの DNS サーバーが変わったときに、管理対象ネットワークをスキャンします。性能への影響を抑えるため、所在地ごとに別の設定プロファイルが必要な場合を除き、複数拠点で同じ TLS エンドポイントを再利用してください。
  • デバイスが同時に到達できる管理対象ネットワークは 1 つだけにしてください。複数の管理対象ネットワークが設定されていて到達できる場合、どの設定プロファイルが適用されるかを判定する方法はありません。

管理対象ネットワークの検出ロジック

管理対象ネットワークを設定すると、Cloudflare One Client は TLS エンドポイントを使って、デバイスがそのネットワーク上にあるかを判定します。

正しいデバイスプロファイルが適用されるまでの時間は、TLS エンドポイントの応答速度に依存します。

TLS エンドポイントが 5 秒でタイムアウトすると、Cloudflare One Client はデバイスが管理対象ネットワーク上にないと判断し、デフォルトのデバイスプロファイルを適用します。検出の再試行は、タイムアウト以外のエラーが発生した場合にだけ行われます。タイムアウトすると、再試行なしでデフォルトのデバイスプロファイルにフォールバックします。

1. TLS エンドポイントを選ぶ

TLS エンドポイントは、TLS 証明書を提供するネットワーク上のホストです。TLS エンドポイントはネットワーク所在地のビーコンのように働きます。デバイスがネットワークに接続すると、そのデバイス上の Cloudflare One Client が TLS エンドポイントを検出し、TLS 証明書を SHA-256 フィンガープリント(指定している場合)またはローカルの証明書ストアと照合し、公開認証局の署名であるかを確認します。

TLS 証明書は、ネットワーク上の任意のデバイスでホストできます。ただし、その所在地の外にいるユーザーからはエンドポイントに到達できない必要があります。Cloudflare One Client は、ユーザーが Cloudflare Tunnel 経由でこのエンドポイントに接続できないよう、管理対象ネットワークのエンドポイントをすべてのデバイスプロファイルから自動的に除外します。リモートユーザーがアクセスする必要のない、オフィス内のプリンターなどのホストを選ぶことをおすすめします。

新しい TLS エンドポイントを作成する

ネットワーク上に TLS エンドポイントがまだない場合は、次の手順で用意できます。

  1. TLS 証明書を生成します。

    openssl req -x509 -newkey rsa:4096 -sha256 -days 3650 -nodes -keyout key.pem -out cert.pem -subj "/CN=example.com" -addext "subjectAltName=DNS:example.com"

    このコマンドは PEM 形式の証明書と秘密鍵を出力します。これらのファイルは安全な場所に保管してください。

  2. ネットワーク上の HTTPS サーバーが、この証明書と鍵を使うよう設定します。次の例は、Docker の nginx コンテナから TLS 証明書を提供する方法です。

    a. nginx.conf という nginx 設定ファイルを作成します。

    nginx.conftxt
    events {
    worker_connections  1024;
    }
    
    http {
    		server {
    			listen              443 ssl;
    			ssl_certificate     /certs/cert.pem;
    			ssl_certificate_key /certs/key.pem;
    			location / {
    						return 200;
    			}
    		}
    }

    必要に応じて、/certs/cert.pem/certs/key.pem を証明書と鍵の場所に置き換えます。

    b. Docker Compose ファイルに nginx イメージを追加します。

    docker-compose.ymlyml
    services:
    	nginx:
    		image: nginx:latest
    		ports:
    			- 3333:443
    		volumes:
    			- ./nginx.conf:/etc/nginx/nginx.conf:ro
    			- ./certs:/certs:ro

    必要に応じて、./nginx.conf./certs を nginx 設定ファイルと証明書の場所に置き換えます。

    c. サーバーを起動します。

    docker compose up -d
  3. TLS サーバーが動作していることを確認するには、エンドユーザーのデバイスから curl コマンドを実行します。

    curl --verbose --insecure https://<private-server-IP>:3333/

    自己署名証明書を使っているため、--insecure オプションが必要です。デバイスがネットワークに接続していれば、リクエストは 200 ステータスコードを返す必要があります。

Windows IIS

Windows Internet Information Services(IIS)Manager で TLS エンドポイントを作成するには:

  1. 管理者として PowerShell を実行します。

  2. 自己署名証明書を生成します。

    New-SelfSignedCertificate -CertStoreLocation Cert:\LocalMachine\My -DnsName "office-name.example.internal" -FriendlyName "Cloudflare Managed Network Certificate" -NotAfter (Get-Date).AddYears(10)
    	PSParentPath: Microsoft.PowerShell.Security\Certificate::LocalMachine\My
    
    Thumbprint                                Subject
    ----------                                -------
    0660C4FCD15F69C49BD080FEEA4136B3D302B41B  CN=office-name.example.internal
  3. 証明書の SHA-256 フィンガープリントを抽出します。

    [System.BitConverter]::ToString([System.Security.Cryptography.SHA256]::Create().ComputeHash((Get-ChildItem Cert:\LocalMachine\My | Where-Object { $_.FriendlyName -eq "Cloudflare Managed Network Certificate" }).RawData)) -replace "-", ""
    DD4F4806C57A5BBAF1AA5B080F0541DA75DB468D0A1FE731310149500CCD8662

    SHA-256 フィンガープリントは、Zero Trust に管理対象ネットワークを追加 するときに必要です。New-SelfSignedCertificate コマンドが生成するデフォルトの SHA-1 サムプリントは使わないでください。

  4. IIS Manager を開きます。

  5. Connections ペインで Sites ノードを右クリックし、Add Website を選択します。

  6. Site name に、TLS サーバーの任意の名前を入力します(例: Managed Network Server)。

  7. Physical path に、.htm または html ファイルを含む任意のディレクトリを入力します(例: C:\inetpub\wwwroot)。Cloudflare はディレクトリ内のコンテンツを検証しません。

  8. Binding で、次のフィールドを設定します。

    • Type: https
    • IP address: All Unassigned
    • Port: 443
    • Host name: 証明書の Common Name(CN)を入力します。例の証明書の CN は office-name.example.internal です。
    • Require Server Name Indication: Enabled
    • SSL certificate: TLS 証明書の名前を選択します。例の証明書名は Cloudflare Managed Network Certificate です。
  9. TLS サーバーが動作していることを確認するには、エンドユーザーのデバイスから curl コマンドを実行します。

    curl --verbose --insecure --resolve office-name.example.internal:443:<private-server-IP> https://office-name.example.internal

    自己署名証明書を使っているため、--insecure オプションが必要です。--resolve オプションを使うと、サーバーのプライベート IP に接続しつつ、SNI と証明書検証のためにホスト名をサーバーへ渡せます。デバイスがネットワークに接続していれば、リクエストはディレクトリのデフォルトホームページ(C:\inetpub\wwwroot\iisstart.htm)を返す必要があります。

対応している暗号スイート

Cloudflare One Client は Rustls を使って TLS 接続を確立します。TLS エンドポイントが、Rustls が対応している暗号スイート のいずれかを受け入れることを確認してください。

2. SHA-256 フィンガープリントを抽出する

SHA-256 フィンガープリントは、TLS エンドポイントが自己署名証明書を使う場合にだけ必要です。

ローカル証明書の SHA-256 フィンガープリントを取得する手順は次のとおりです。

openssl x509 -noout -fingerprint -sha256 -inform pem -in cert.pem | tr -d :

出力は次のようになります。

SHA256 Fingerprint=DD4F4806C57A5BBAF1AA5B080F0541DA75DB468D0A1FE731310149500CCD8662

接続をテストし、リモートサーバーの SHA-256 フィンガープリントを取得する手順は次のとおりです。

openssl s_client -connect <private-server-IP>:443 < /dev/null 2> /dev/null | openssl x509 -noout -fingerprint -sha256 | tr -d :

出力は次のようになります。

SHA256 Fingerprint=DD4F4806C57A5BBAF1AA5B080F0541DA75DB468D0A1FE731310149500CCD8662

3. Cloudflare One に管理対象ネットワークを追加する

  1. Cloudflare ダッシュボード で、Zero Trust > Team & Resources > Devices > Device profiles に移動します。

  2. Managed networks を選択し、Add new managed network を選択します。

  3. ネットワーク所在地に名前を付けます。

  4. Host and Port に、TLS エンドポイント のプライベート IP アドレスとポート番号を入力します(例: 192.168.185.198:3333)。

  5. (任意)TLS Cert SHA-256 に、TLS 証明書の SHA-256 フィンガープリント を入力します。このフィールドは自己署名証明書の場合にだけ必要です。TLS フィンガープリントを指定しない場合、Cloudflare One Client はローカルの証明書ストアと照合し、公開認証局の署名であるかを確認します。

  6. Save を選択します。

  1. cloudflare_api_token に次の権限を追加します。

    • Zero Trust Write
  2. cloudflare_zero_trust_device_managed_network リソースで管理対象ネットワークを追加します。

    resource "cloudflare_zero_trust_device_managed_networks" "office" {
    	account_id = var.cloudflare_account_id
    	name       = "Office managed network"
    	type       = "tls"
    	config = {
    		tls_sockaddr = "192.168.185.198:3333"
    		sha256       = "DD4F4806C57A5BBAF1AA5B080F0541DA75DB468D0A1FE731310149500CCD8662"
    	}
    }

TLS エンドポイントをプライベート IP アドレスで指定した場合、Cloudflare One Client はすべてのデバイスプロファイルからそのエンドポイントを自動的に除外します。この除外により、リモートユーザーは任意のポートで WARP トンネル経由にエンドポイントへアクセスできません。TLS エンドポイントをプライベート IP ではなくホスト名で指定した場合、Cloudflare One Client は自動では除外しません。

4. デバイスプロファイルを設定する

  1. Cloudflare ダッシュボード で、Zero Trust > Team & Resources > Devices > Device profiles > General profiles に移動します。

  2. 新しいプロファイル を作成するか、既存のプロファイルを編集します。

  3. デバイスがネットワークに接続したときにこのプロファイルを適用するには、次のルールを追加します。

    セレクター 演算子
    Managed network is <NETWORK-NAME>
  4. プロファイルを保存します。

cloudflare_zero_trust_device_custom_profile で、network セレクターを使った match 式を設定します。次のデバイスプロファイルは、特定の管理対象ネットワークに接続しているすべてのデバイスに一致します。

resource "cloudflare_zero_trust_device_custom_profile" "office" {
	account_id            = var.cloudflare_account_id
	name                  = "Office"
	description           = "Devices connected to the office network"
	precedence            = 1
	service_mode_v2       = {mode = "warp"}

	match = trimspace(replace(<<-EOT
		network == "${cloudflare_zero_trust_device_managed_networks.office.name}"
	EOT
	, "\n", " "))
}

管理対象ネットワークが有効になりました。組織内のデバイスがネットワークに接続するたび(デバイスの起動時や Wi-Fi ネットワークの変更時など)、Cloudflare One Client はネットワーク所在地を判定し、対応する設定プロファイルを適用します。

5. 管理対象ネットワークを確認する

Cloudflare One Client がネットワーク所在地を検出しているかを確認するには:

  1. Cloudflare One Client を接続します。
  2. ネットワークを切断して再接続します。
  3. ターミナルを開き、warp-cli debug alternate-network を実行します。

関連リソース

役に立ちましたか?