← Cloudflare One / cloudflare-one / team-and-resources / devices / cloudflare-one-client / configure
Управляемые сети
Доступность функций
| Режимы клиента | планы 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 в своей доверенной сети.
- Настройте конечную точку TLS в Zero Trust для создания управляемой сети.
- Примените соответствующий профиль устройства, когда Cloudflare One Client обнаруживает, что оно находится в вашей управляемой сети.
Требования
- Cloudflare One Client выполняет поиск управляемых сетей при изменении маршрута по умолчанию операционной системы, изменении SSID активного подключения Wi-Fi или изменении DNS-серверов интерфейса по умолчанию. Чтобы минимизировать влияние на производительность, используйте одну и ту же конечную точку 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, вы можете настроить её следующим образом:
-
Создайте 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 и его закрытый ключ. Храните эти файлы в надежном месте.
-
Настройте HTTPS-сервер в своей сети для использования этого сертификата и ключа. В примере ниже показано, как раздавать TLS-сертификат из контейнера nginx в Docker:
a. Создайте файл конфигурации nginx с именем
nginx.conf:nginx.confevents { 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.ymlservices: 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 -
Чтобы проверить, что TLS-сервер работает, выполните команду curl с устройства конечного пользователя:
curl --verbose --insecure https://<private-server-IP>:3333/Нужно передать
--insecureопцию, поскольку мы используем самоподписанный сертификат. Если устройство подключено к сети, запрос должен вернуть200код состояния.
Windows IIS
Чтобы создать конечную точку TLS с помощью Windows Internet Information Services (IIS) Manager:
-
Запустите Powershell от имени администратора.
-
Создайте самоподписанный сертификат:
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 -
Извлеките отпечаток 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команда. -
Откройте диспетчер IIS.
-
В Соединения панели щёлкните правой кнопкой мыши Сайты узел и выберите Добавить веб-сайт.
-
В Имя сайта, введите любое имя для сервера TLS (например,
Managed Network Server). -
В Физический путь, введите любой каталог, содержащий
.htmилиhtmlфайл, напримерC:\inetpub\wwwroot. Cloudflare не проверяет содержимое каталога. -
В разделе Привязка, настройте следующие поля:
- Type: https
- IP-адрес: Все неназначенные
- Порт:
443 - Имя хоста: Введите Common Name (CN) сертификата. CN сертификата в нашем примере:
office-name.example.internal. - Требовать использования Server Name Indication: Включено
- Сертификат SSL: Выберите имя своего TLS-сертификата. В нашем примере сертификат называется
Cloudflare Managed Network Certificate.
-
Чтобы проверить, что 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=DD4F4806C57A5BBAF1AA5B080F0541DA75DB468D0A1FE731310149500CCD86623. Добавьте управляемую сеть в Cloudflare One
-
В Панель управления Cloudflare ↗, перейдите в Zero Trust > Команда и ресурсы > Устройства > Профили устройств.
-
Выберите Управляемые сети и выберите Добавить новую управляемую сеть.
-
Назовите местоположение сети.
-
В Хост и порт, введите приватный IP-адрес и номер порта вашего Конечная точка TLS (например,
192.168.185.198:3333). -
(Необязательно) В SHA-256 сертификата TLS, введите отпечаток SHA-256 TLS-сертификата. Это поле нужно только для самоподписанных сертификатов. Если отпечаток TLS не указан, Cloudflare One Client проверяет сертификат по локальному хранилищу сертификатов и убеждается, что он подписан публичным удостоверяющим центром.
-
Выберите Save.
-
Добавьте следующее разрешение в свой
cloudflare_api_token↗:Zero Trust Write
-
Добавьте управляемую сеть с помощью
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. Настройте профиль устройства
-
В Панель управления Cloudflare ↗, перейдите в Zero Trust > Команда и ресурсы > Устройства > Профили устройств > Общие профили.
-
Создайте новый профиль или отредактировать существующий профиль.
-
Чтобы этот профиль применялся при каждом подключении устройства к вашей сети, добавьте следующее правило:
Селектор Оператор Значение Управляемая сеть является <NETWORK-NAME> -
Сохраните профиль.
В 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 местоположение сети:
- Подключите Cloudflare One Client.
- Отключитесь от сети и подключитесь к ней снова.
- Откройте терминал и выполните
warp-cli debug alternate-network.
Дополнительные материалы
- Профили устройств: Как создавать профили устройств, применяемые через управляемые сети, и управлять ими.
- Настройки клиента устройства: Определяет, как ведёт себя Cloudflare One Client и что могут делать пользователи.
- Руководство по устранению неполадок Cloudflare One Client: Устраняйте распространённые неполадки Cloudflare One Client.