INTEGRITY Dokumentace

Nasaďte Cloudflare One Client na bezhlavých linuxových počítačích

Tento návod vysvětluje, jak nasadit Cloudflare One Client na zařízeních s Linuxem pomocí tokenu služby a instalačního skriptu. Tento způsob nasazení je určen pro headless servery, tedy servery, které nemají přístup k prohlížeči pro přihlášení u poskytovatele identity, a pro situace, kdy chcete proces onboardingu plně automatizovat. Protože se zařízení nebudou registrovat prostřednictvím poskytovatele identity, zásady založené na identitě a protokolování nebude k dispozici.

Předpoklady

1. Vytvořit service token

Plně automatizovaná nasazení používají k registraci Cloudflare One Client ve vaší organizaci Zero Trust servisní token. Stejný token můžete použít k registraci více zařízení, nebo pro každé zařízení vygenerovat vlastní token, pokud vyžadují odlišné nastavení profilu zařízení.

Chcete-li vytvořit service token:

  1. V Cloudflare dashboard, přejděte na Zero Trust > Řízení přístupu > Přihlašovací údaje služby > Service Tokens.

  2. Vyberte Create Service Token.

  3. Pojmenujte token služby. Název vám umožní snadno identifikovat události související s tokenem v protokolech a token jednotlivě zneplatnit.

  4. Vyberte Doba platnosti Service Token. Tím se nastavuje datum vypršení platnosti tokenu.

  5. Vyberte Vygenerovat token. Zobrazí se vygenerované Client ID a Client Secret pro service token, spolu s příslušnými hlavičkami požadavků.

  6. Zkopírujte Client Secret.

  1. Vytvořte POST požadavek na Access Service Tokens koncový bod:

    Požadovaná oprávnění API tokenu

    Alespoň jeden z následujících oprávnění tokenu je povinné:
    • Access: Service Tokens Write
    Vytvořit service token
    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"
    	}'
  2. Zkopírujte client_id a client_secret hodnoty vrácené v odpovědi.

    Odpověď
    "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
    }
  1. Přidejte následující oprávnění do svého cloudflare_api_token:

    • Access: Service Tokens Write
  2. Nakonfigurujte cloudflare_zero_trust_access_service_token prostředek:

    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
    	}
    }
  3. Získejte Client ID a Client Secret tokenu služby:

    Příklad: výstup do CLI

    1. Výstup Client ID a Client Secret do souboru stavu Terraformu:
      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
      }
    2. Použijte konfiguraci:
      terraform apply
    3. Přečtěte si Client ID a Client Secret:
      terraform output -raw example_service_token_client_id
      terraform output -raw example_service_token_client_secret

    Příklad: uložení do 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
    		})
    	}

2. Nakonfigurujte oprávnění pro registraci zařízení

Oprávnění k registraci zařízení určují, kteří uživatelé a která zařízení mohou zaregistrovat WARP ve vaší organizaci Zero Trust.

Chcete-li povolit registraci zařízení pomocí service tokenu:

  1. V Cloudflare dashboard, přejděte na Zero Trust > Tým a zdroje > Zařízení. Vyberte Správa kartě.

  2. V Oprávnění k registraci zařízení, vyberte Správa.

  3. V Zásady kartě vyberte Vytvořit novou zásadu. Otevře se nová karta se stránkou pro vytvoření zásady.

  4. Pro Akce, vyberte Service Auth.

  5. Pro Selektor pole máte dvě možnosti: můžete buď povolit všechny tokeny služby (Any Access Service Token) nebo konkrétní tokeny služby (Service Token). Například:

    Akce pravidla Typ pravidla Selektor Hodnota
    Service Auth Include Service Token <TOKEN-NAME>
  6. Uložte zásadu.

  7. Vraťte se zpět na Oprávnění k registraci zařízení a přidejte nově vytvořenou zásadu ke svým oprávněním.

  8. Vyberte Save.

3. Vytvořte instalační skript

Instalaci a registraci WARP můžete automatizovat pomocí shell skriptu. Následující příklad ukazuje, jak nasadit Cloudflare One Client na Ubuntu 24.04.

  1. V terminálu vytvořte nový .sh soubor pomocí textového editoru. Například:

    vim install_warp.sh
  2. Stiskněte i přejít do režimu vkládání a přidat následující řádky:

    #!/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
  3. Pokud používáte Debian nebo RHEL / CentOS, upravte warp() funkci tak, aby nainstalovala správný Balíček WARP pro váš operační systém.

  4. Upravte hodnoty v mdm() funkce:

    1. Pro auth_client_id a auth_client_secret, nahraďte hodnoty řetězců hodnotami Client ID a Client Secret vašeho token služby.
    2. Pro organization, nahraďte your-team-name s vaší Zero Trust název týmu.
    3. (Volitelné) Přidejte nebo upravte další Parametry nasazení Cloudflare One Client podle vašich preferencí.
  5. Stiskněte esc, poté zadejte :x a stiskněte Enter a uložit a ukončit.

4. Nainstalujte WARP

Chcete-li nainstalovat Cloudflare One Client pomocí ukázkového skriptu:

  1. Nastavte skript jako spustitelný:

    chmod +x install_warp.sh
  2. Spusťte skript:

    sudo ./install_warp.sh

Cloudflare One Client je nyní nasazen s konfiguračními parametry uloženými v /var/lib/cloudflare-warp/mdm.xml. Za předpokladu, že auto_connect je nakonfigurován, Cloudflare One Client se automaticky připojí k vaší organizaci Zero Trust. Po připojení se zařízení zobrazí v Cloudflare dashboard v části Zero Trust > Tým a zdroje > Zařízení s e-mailem non_identity@<team-name>.cloudflareaccess.com.