← Cloudflare One / cloudflare-one / tutorials
Разверните Cloudflare One Client на headless-машинах Linux
В этом руководстве описано, как развернуть Cloudflare One Client на устройствах Linux с помощью токена службы и скрипта установки. Этот сценарий развёртывания предназначен для серверов без графического интерфейса (то есть серверов, у которых нет доступа к браузеру для входа через поставщика идентификации), а также для случаев, когда нужно полностью автоматизировать процесс подключения. Поскольку устройства не будут регистрироваться через поставщика идентификации, политики на основе идентификации и журналирование будет недоступно.
Предварительные требования
1. Создайте токен службы
Полностью автоматизированные развертывания используют токен службы для регистрации Cloudflare One Client в организации Zero Trust. Вы можете использовать один и тот же токен для регистрации нескольких устройств или создать уникальный токен для каждого устройства, если для них требуются разные настройки профиля устройства.
Чтобы создать токен службы:
-
В Панель управления Cloudflare ↗, перейдите в Zero Trust > Контроль доступа > Учетные данные службы > Service Tokens.
-
Выберите Create Service Token.
-
Назовите токен службы. Название позволит легко находить в журналах события, связанные с этим токеном, и отзывать его отдельно.
-
Выберите Service Token Duration. Это устанавливает дату истечения срока действия токена.
-
Выберите Создать токен. Появятся сгенерированные Client ID и Client Secret для токена службы, а также соответствующие заголовки запроса.
-
Скопируйте Client Secret.
-
Сделайте
POSTзапрос к Access Service Tokens конечная точка:
Хотя бы одно из следующих права доступа токена требуется:Необходимые разрешения API-токена
Access: Service Tokens Write
Создать токен службыcurl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/access/service_tokens" \ --request POST \ --header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \ --json '{ "name": "CI/CD token", "duration": "8760h" }' -
Скопируйте
client_idиclient_secretзначения, возвращаемые в ответе.Ответ"result": { "client_id": "88bf3b6d86161464f6509f7219099e57.access", "client_secret": "bdd31cbc4dec990953e39163fbbb194c93313ca9f0a6e420346af9d326b1d2a5", "created_at": "2025-09-25T22:26:26Z", "expires_at": "2026-09-25T22:26:26Z", "id": "3537a672-e4d8-4d89-aab9-26cb622918a1", "name": "CI/CD token", "updated_at": "2025-09-25T22:26:26Z", "duration": "8760h", "client_secret_version": 1 }
-
Добавьте следующее разрешение в свой
cloudflare_api_token↗:Access: Service Tokens Write
-
Настройте
cloudflare_zero_trust_access_service_token↗ ресурс:resource "cloudflare_zero_trust_access_service_token" "example_service_token" { account_id = var.cloudflare_account_id name = "Example service token" duration = "8760h" lifecycle { create_before_destroy = true } } -
Получите Client ID и Client Secret токена службы:
Пример: вывод в CLI
- Выведите Client ID и Client Secret в файл состояния Terraform:
output "example_service_token_client_id" { value = cloudflare_zero_trust_access_service_token.example_service_token.client_id } output "example_service_token_client_secret" { value = cloudflare_zero_trust_access_service_token.example_service_token.client_secret sensitive = true } - Примените конфигурацию:
terraform apply - Считайте Client ID и Client Secret:
terraform output -raw example_service_token_client_idterraform output -raw example_service_token_client_secret
Пример: хранение в HashiCorp Vault
resource "vault_generic_secret" "example_service_token" { path = "kv/cloudflare/example_service_token" data_json = jsonencode({ "CLIENT_ID" = cloudflare_access_service_token.example_service_token.client_id "CLIENT_SECRET" = cloudflare_access_service_token.example_service_token.client_secret }) } - Выведите Client ID и Client Secret в файл состояния Terraform:
2. Настройте разрешения на регистрацию устройств
Права на регистрацию устройств определяют, какие пользователи и устройства могут регистрировать WARP в вашей организации Zero Trust.
Чтобы разрешить регистрацию устройств с помощью токена службы:
-
В Панель управления Cloudflare ↗, перейдите в Zero Trust > Команда и ресурсы > Устройства. Выберите Управление на вкладке.
-
В Права на регистрацию устройств, выберите Управление.
-
В Политики вкладке выберите Создать новую политику. Откроется новая вкладка со страницей создания политики.
-
Для Действие, выберите Service Auth.
-
Для Селектор поле у вас есть два варианта: можно либо разрешить все токены службы (
Any Access Service Token) или конкретные токены службы (Service Token). Например:Rule Action Тип правила Селектор Значение Service Auth Включить Service Token <TOKEN-NAME> -
Сохраните политику.
-
Вернитесь на Права на регистрацию устройств и добавьте только что созданную политику в ваши разрешения.
-
Выберите Save.
3. Создайте скрипт установки
Для автоматизации установки и регистрации WARP можно использовать shell-скрипт. В следующем примере показано, как развернуть Cloudflare One Client на Ubuntu 24.04.
-
В терминале создайте новый
.shфайл в текстовом редакторе. Например:vim install_warp.sh -
Нажмите
iчтобы перейти в режим вставки и добавить следующие строки:#!/bin/bash set -e # Download and install the Cloudflare One Client function warp() { curl -fsSL https://pkg.cloudflareclient.com/pubkey.gpg | sudo gpg --yes --dearmor --output /usr/share/keyrings/cloudflare-warp-archive-keyring.gpg echo "deb [signed-by=/usr/share/keyrings/cloudflare-warp-archive-keyring.gpg] https://pkg.cloudflareclient.com/ $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/cloudflare-client.list sudo apt-get update --assume-yes sudo apt-get install --assume-yes cloudflare-warp } # Create an MDM file with your Cloudflare One Client deployment parameters function mdm() { sudo touch /var/lib/cloudflare-warp/mdm.xml cat > /var/lib/cloudflare-warp/mdm.xml << "EOF" <dict> <key>auth_client_id</key> <string>88bf3b6d86161464f6509f7219099e57.access</string> <key>auth_client_secret</key> <string>cfast_EqN8f9vx3sKOSY4mwCMCbZYb02L4OvfAkacLAqTZ63a435a7</string> <key>auto_connect</key> <integer>1</integer> <key>onboarding</key> <false/> <key>organization</key> <string>your-team-name</string> <key>service_mode</key> <string>warp</string> </dict> EOF } #main program warp mdm -
Если вы используете Debian или RHEL/CentOS, измените
warp()функцию так, чтобы она устанавливала правильный Пакет WARP ↗ для вашей ОС. -
Измените значения в
mdm()функция:- Для
auth_client_idиauth_client_secret, замените строковые значения на Client ID и Client Secret вашего токен службы. - Для
organization, заменитеyour-team-nameс вашим Zero Trust название команды. - (Необязательно) Добавьте или измените другие Параметры развертывания Cloudflare One Client согласно вашим настройкам.
- Для
-
Нажмите
esc, затем введите:xи нажмитеEnterи сохраните и выйдите.
4. Установите WARP
Чтобы установить Cloudflare One Client с помощью примера скрипта:
-
Сделайте скрипт исполняемым:
chmod +x install_warp.sh -
Запустите скрипт:
sudo ./install_warp.sh
Теперь Cloudflare One Client развёрнут с параметрами конфигурации, сохранёнными в /var/lib/cloudflare-warp/mdm.xml. Предположим, что auto_connect настроено, Cloudflare One Client автоматически подключится к вашей организации Zero Trust. После подключения устройство появится в разделе Панель управления Cloudflare ↗ в разделе Zero Trust > Команда и ресурсы > Устройства с адресом электронной почты non_identity@<team-name>.cloudflareaccess.com.