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

Управляемые сети

Доступность функций

Режимы клиента планы 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, которую вы разместили в этой сети, и проверяет её сертификат. Если сертификат совпадает, устройство считается находящимся в управляемой сети и получает соответствующий профиль устройства (если такой настроен для этой сети).

На этой странице вы узнаете, как:

Требования

Логика обнаружения управляемой сети

Когда вы настраиваете управляемую сеть, Cloudflare One Client использует конечную точку TLS, чтобы определить, находится ли устройство в этой сети.

Время применения правильного профиля устройства зависит от того, насколько быстро отвечает конечная точка TLS.

Если для конечной точки TLS истекает время ожидания через 5 секунд, Cloudflare One Client определяет, что устройство не находится в управляемой сети, и применяет профиль устройства по умолчанию. Cloudflare One Client повторяет попытку обнаружения только в случае ошибки, отличной от тайм-аута. При тайм-ауте происходит переход к профилю устройства по умолчанию без дальнейших повторных попыток.

1. Выберите конечную точку 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-сервер в своей сети для использования этого сертификата и ключа. В примере ниже показано, как раздавать TLS-сертификат из контейнера nginx в Docker:

    a. Создайте файл конфигурации nginx с именем nginx.conf:

    nginx.conf
    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. Добавьте образ nginx в файл Docker Compose:

    docker-compose.yml
    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

Чтобы создать конечную точку TLS с помощью Windows Internet Information Services (IIS) Manager:

  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. Не используйте отпечаток SHA-1 по умолчанию, сгенерированный New-SelfSignedCertificate команда.

  4. Откройте диспетчер IIS.

  5. В Соединения панели щёлкните правой кнопкой мыши Сайты узел и выберите Добавить веб-сайт.

  6. В Имя сайта, введите любое имя для сервера TLS (например, Managed Network Server).

  7. В Физический путь, введите любой каталог, содержащий .htm или html файл, например C:\inetpub\wwwroot. Cloudflare не проверяет содержимое каталога.

  8. В разделе Привязка, настройте следующие поля:

    • Type: https
    • IP-адрес: Все неназначенные
    • Порт: 443
    • Имя хоста: Введите Common Name (CN) сертификата. CN сертификата в нашем примере: office-name.example.internal.
    • Требовать использования Server Name Indication: Включено
    • Сертификат SSL: Выберите имя своего 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 устанавливает TLS-соединение с использованием Rustls. Убедитесь, что ваша конечная точка 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 > Команда и ресурсы > Устройства > Профили устройств.

  2. Выберите Управляемые сети и выберите Добавить новую управляемую сеть.

  3. Назовите местоположение сети.

  4. В Хост и порт, введите приватный IP-адрес и номер порта вашего Конечная точка TLS (например, 192.168.185.198:3333).

  5. (Необязательно) В SHA-256 сертификата TLS, введите отпечаток SHA-256 TLS-сертификата. Это поле нужно только для самоподписанных сертификатов. Если отпечаток 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"
    	}
    }

Cloudflare One Client автоматически исключит конечную точку TLS из всех профилей устройств, если она указана как приватный IP-адрес. Это исключение не позволяет удалённым пользователям обращаться к этой конечной точке через туннель WARP на любом порту. Если конечная точка TLS указана в виде имени хоста, а не приватного IP-адреса, Cloudflare One Client не будет исключать её автоматически.

4. Настройте профиль устройства

  1. В Панель управления Cloudflare, перейдите в Zero Trust > Команда и ресурсы > Устройства > Профили устройств > Общие профили.

  2. Создайте новый профиль или отредактировать существующий профиль.

  3. Чтобы этот профиль применялся при каждом подключении устройства к вашей сети, добавьте следующее правило:

    Селектор Оператор Значение
    Управляемая сеть является <NETWORK-NAME>
  4. Сохраните профиль.

В cloudflare_zero_trust_device_custom_profile, настройте match выражение с использованием network селектор. Например, следующий профиль устройства будет соответствовать всем устройствам, подключённым к определённой управляемой сети:

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.