List view
Integrations
Integrations
Applications
Applications
App-specific Handling
App-specific Handling
test
test
Â
Â
Cloudflare Integration
Prerequisites
Before configuring your account to integrate with the Lumia Security proxy, ensure the following settings in the Zero Trust section are in place and that you have received a CIDR allocation from Lumia Security.
1. Navigate to Team & Resources→Devices→Management
- Enable Install CA to system certificate store in order to propagate CF certificate to your user devices. Critical before enabling Inspect HTTPS requests with TLS decryption in section #3.2
2. Navigate to Team & Resources→Devices→Devices profiles
- Click on your profile, and click on Edit (alternatively - click on the 3 dots to open and menu and then Configure)
- Scroll down to Split Tunnels → by clicking Manage you can view your split tunnel entries and verify the following:
- If using "Exclude IPs and domains" mode:
- Ensure your private network CIDR (e.g., 172.20.0.0/16) is NOT in the exclude list
- Important: Also check for broader CIDR ranges that may include your network
- Example: If 172.16.0.0/12 is excluded, it includes ALL networks from 172.16.0.0 to 172.31.255.255, which would block 172.20.0.0/16
- Alternative: Use "Include IPs and domains" mode and add your private network CIDR to ensure traffic routing
- List all excluded CIDR ranges in your split tunnel configuration
- Check each range to confirm your network doesn't fall within it:
- Use an online CIDR calculator or subnet tool if needed
- Common overlapping ranges to watch for:
- 10.0.0.0/8 (includes all 10.x.x.x networks)
- 172.16.0.0/12 (includes 172.16.x.x through 172.31.x.x)
- 192.168.0.0/16 (includes all 192.168.x.x networks)
- Test connectivity to your private network after configuration changes
- Verify tunnel traffic is routing correctly through the expected path
⚠️ Critical: Check for CIDR Range Overlaps
Before configuring split tunnels, you must verify that your private network CIDR is not blocked by ANY existing exclude rules, including broader ranges that may encompass your specific network.
Configuration Options:
Verification Steps:
3. Navigate to Traffic policies→Traffic settings
Make sure the following is enabled:
- Allow Secure Web Gateway to proxy traffic
- Inspect HTTPS requests with TLS decryption
Setup Connection
Create Network Tunnel
- Navigate to Networks → Connectors
- Select Cloudflared
- Create new tunnel with:
- Name:
[client]-tunnel-[environment] - Click Save tunnel
- Save the token and share it with Lumia Security alongside the selected name
- Click Next
- Add 172.20.0.0/16 under the CIDR tab
Create Access Application
- Navigate to Access controls → Applications
- Click on Add Application
- Select Self-Hosted application:
- Name:
[Client] Security Access App - Session duration: According to security requirements
- Click on Add private hostname and enter 172.20.0.0/16 in the Hostname and 443 as the Port
- Click Next, and Next again and Save
- After saving the application:
- Navigate to Access controls → Applications
- Select the application you created
- Go to the Advanced settings tab
- Bypass options requests to origin — ON (enabled)
- Return 401 Response — OFF (disabled)
Verify the following:
CORS Settings:
Service Auth Behavior:
Setup Policies
1. Create Managed Domain List
This step will have to be preformed by using Cloudflare API as CF console does not support manual upload of a List from type DOMAIN containing wildcards.
You’ll need to have API Token with
Zero Trust: Edit permission.- Download Lumia’s domain list
- Create the list
- Update the list with actual file using the ID in the response from previous call
curl https://downloads.lumiasecurity.com/feed/cacff052-3517-4d9d-ba7a-96065f8cf52e/domains.list > domains.list
Replace
<account_id>curl -X POST "https://api.cloudflare.com/client/v4/accounts/<account_id>/gateway/lists" \ -H "Authorization: Bearer <token>" \ -H "Content-Type: application/json" \ --data '{ "name": "LUMIA_HOSTS", "type": "DOMAIN", "description": "Managed via API" }'
Response:
{ "result": { "id": "b3c66255-85bf-425f-8f10-32f8abbc296c", # <-- use this in the next call "name": "LUMIA_HOSTS-1", "description": "Lumia Hosts", "type": "DOMAIN", "created_at": "2025-12-31T15:58:06Z", "updated_at": "2025-12-31T15:58:06Z" }, "success": true, "errors": [], "messages": [] }
curl -X PUT "https://api.cloudflare.com/client/v4/accounts/<account_id>/gateway/lists/<list_id>" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer <token>" \ --data-binary "@domains.list"
Response:
{ "result": { "id": "2aea1f29-f829-4e17-9063-f99056365f12", "name": "LUMIA_HOSTS", "description": "Lumia Hosts", "type": "DOMAIN", "created_at": "2025-12-31T15:40:04Z", "updated_at": "2025-12-31T15:42:25Z", "count": 826 }, "success": true, "errors": [], "messages": [] }
2. Create DNS Policy
- Navigate to Traffic policies → Firewall policies
- Enter to the DNS tab
- Click on Add a policy
- On Step 1: Enter name “Lumia Host Override Policy”
- On Step 2: In Traffic section set the following condition:
- Selector: Domain
- Operator: in list
- Value: Select
LUMIA_HOSTSlist - (Optional) In Identity section: if deployment is restricted to specific users, list them here
- On Step 3: set the action with the following details:
- Action: Override
- Override Hostname: 172.20.0.242
3. Create HTTP Policy
- On the same location from the previous section (Traffic policies → Firewall policies)
- Enter to the HTTP tab
- Click on Add a policy
- On Step 1: Enter name “Allow no-TLS Validation for Access App”
- On Step 2: In Traffic section choose the following condition
- Selector: Self-hosted Access App with Private Address
- Operator: is
- Value: Present
- (Optional) In Identity section: if deployment is restricted to specific users, list them here
- On Step 3: set the action with the following details:
- Action: Allow
- Untrusted certificate action: Pass Through
- On Step 4: Click on Add a header and enter the following details:
- Custom header name: Ls-Tenant
- Custom header value: Your tenant UUID supplied by Lumia Security
This policy prevents TLS certificate validation errors when accessing private IPs
Verification
DNS Resolution Testing
# Test DNS resolution for a domain in your list nslookup chatgpt.com # Should resolve to tunnel IP
Traffic Flow Validation
# Test connection (using -k to ignore certificate warnings) curl -v -k https://chatgpt.com
Service Monitoring
- Check tunnel connection status in Cloudflare dashboard
- Monitor traffic flow through logs
Maintenance
To update the domain list, use the following API call:
curl https://api.cloudflare.com/client/v4/accounts/<account_id>/gateway/lists/<list_id> \ -X 'PUT' \ -H 'Content-Type: application/json' \ -H "Authorization: Bearer <api_token>" \ --data-binary "@<path_to_file>"
Replace the placeholders with your specific values:
- <account_id> — Your Cloudflare account ID, found in the dashboard URL or under Account Home, Overview.
- <list_id> — The unique identifier for the Gateway list created during initial setup.
- <api_token> — A Cloudflare API token with Zero Trust Edit permissions.
- <path_to_file> — Path to a JSON file containing the updated domain list (e.g., domains.json).
Troubleshooting
Connection Issues
- Verify WARP client is connected with Gateway enabled
- Double-check that no broader CIDR ranges are inadvertently excluding your specific network range
- Ensure DNS policy uses Domain selector (not Host)
- Check tunnel connector health
DNS Resolution Failures
- Confirm DNS policy is properly configured
- Verify policy priority order
- Test direct access to tunnel hostname
TLS Certificate Errors
- Verify the "Allow no-TLS Validation for Access App" policy is properly configured
- Check that private IPs are correctly defined in the Access app
Â
Â