You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: src/content/docs/cloudflare-one/connections/connect-devices/warp/configure-warp/warp-settings/captive-portals.mdx
+16-17Lines changed: 16 additions & 17 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,7 +3,6 @@ pcx_content_type: concept
3
3
title: Captive portal detection
4
4
sidebar:
5
5
order: 3
6
-
7
6
---
8
7
9
8
Captive portals are used by public Wi-Fi networks (such as airports, coffee shops, and hotels) to make a user agree to their Terms of Service or provide payment before allowing access to the Internet. When a user connects to the Wi-Fi, the captive portal blocks all HTTPS traffic until the user completes a captive portal login flow in their browser. This prevents the WARP client from connecting to Cloudflare. At the same time, WARP creates [firewall rules](/cloudflare-one/connections/connect-devices/warp/configure-warp/route-traffic/warp-architecture/#ip-traffic) on the device to send all traffic to Cloudflare. The user is therefore unable to access the captive portal login screen unless they temporarily disable WARP.
@@ -14,22 +13,22 @@ To allow users to connect through a captive portal, administrators can configure
14
13
15
14
### No user interaction required
16
15
17
-
* Enable [Captive portal detection](/cloudflare-one/connections/connect-devices/warp/configure-warp/warp-settings/#captive-portal-detection). This allows WARP to temporarily turn off when it detects a captive portal on the network. For more details, refer to [how captive portal detection works](#how-captive-portal-detection-works) and its [limitations](#limitations).
18
-
* Set [Device tunnel protocol](/cloudflare-one/connections/connect-devices/warp/configure-warp/warp-settings/#device-tunnel-protocol) to **MASQUE**. When using MASQUE, WARP traffic will look like standard HTTPS traffic and is therefore less likely to be blocked by captive portals.
16
+
- Enable [Captive portal detection](/cloudflare-one/connections/connect-devices/warp/configure-warp/warp-settings/#captive-portal-detection). This allows WARP to temporarily turn off when it detects a captive portal on the network. For more details, refer to [how captive portal detection works](#how-captive-portal-detection-works) and its [limitations](#limitations).
17
+
- Set [Device tunnel protocol](/cloudflare-one/connections/connect-devices/warp/configure-warp/warp-settings/#device-tunnel-protocol) to **MASQUE**. When using MASQUE, WARP traffic will look like standard HTTPS traffic and is therefore less likely to be blocked by captive portals.
19
18
20
19
### User interaction required
21
20
22
-
* Enable [Lock WARP switch](/cloudflare-one/connections/connect-devices/warp/configure-warp/warp-settings/#lock-warp-switch) and enable [Admin override](/cloudflare-one/connections/connect-devices/warp/configure-warp/warp-settings/#admin-override). Users can contact the IT administrator for a one-time code that allows them to manually turn off WARP and connect to a portal.
23
-
* For employees who travel, disable [Lock WARP switch](/cloudflare-one/connections/connect-devices/warp/configure-warp/warp-settings/#lock-warp-switch) and set an [Auto connect](/cloudflare-one/connections/connect-devices/warp/configure-warp/warp-settings/#auto-connect) duration. This allows the user to manually turn off WARP without contacting IT.
21
+
- Enable [Lock WARP switch](/cloudflare-one/connections/connect-devices/warp/configure-warp/warp-settings/#lock-warp-switch) and enable [Admin override](/cloudflare-one/connections/connect-devices/warp/configure-warp/warp-settings/#admin-override). Users can contact the IT administrator for a one-time code that allows them to manually turn off WARP and connect to a portal.
22
+
- For employees who travel, disable [Lock WARP switch](/cloudflare-one/connections/connect-devices/warp/configure-warp/warp-settings/#lock-warp-switch) and set an [Auto connect](/cloudflare-one/connections/connect-devices/warp/configure-warp/warp-settings/#auto-connect) duration. This allows the user to manually turn off WARP without contacting IT.
24
23
25
24
## How captive portal detection works
26
25
27
26
If WARP cannot establish a connection to Cloudflare, it will:
28
27
29
28
1. Temporarily open the [system firewall](/cloudflare-one/connections/connect-devices/warp/configure-warp/route-traffic/warp-architecture/#ip-traffic) so that the device can send traffic outside of the WARP tunnel. The firewall only allows the following traffic:
30
29
31
-
* HTTP/HTTPS on TCP ports `80`, `443`, `8080`, and `8443`
32
-
* DNS on UDP port `53`
30
+
- HTTP/HTTPS on TCP ports `80`, `443`, `8080`, and `8443`
31
+
- DNS on UDP port `53`
33
32
34
33
2. Send a series of requests to the [captive portal test URLs](/cloudflare-one/connections/connect-devices/warp/deployment/firewall/#captive-portal). If the HTTPS request is intercepted, WARP assumes the network is behind a captive portal.
35
34
@@ -42,18 +41,18 @@ flowchart TB
42
41
accTitle: Captive portal detection
43
42
44
43
45
-
A[Send DNS request] --Succeed--> B[Send HTTPS request]--Fail--> C[Send HTTP request] --Succeed--> D[Captive portal detected]--Receive HTTP redirect-->I[Redirect to captive portal login]
46
-
A --Fail--> F(CF_NO_NETWORK error)
47
-
C --Fail--> F
48
-
B --Succeed--> G[No captive portal]--> H[Retry connection to Cloudflare]
44
+
A[Send DNS request] --Succeed--> B[Send HTTPS request]--Fail--> C[Send HTTP request] --Succeed--> D[Captive portal detected]--Receive HTTP redirect-->I[Redirect to captive portal login]
45
+
A --Fail--> F(CF_NO_NETWORK error)
46
+
C --Fail--> F
47
+
B --Succeed--> G[No captive portal]--> H[Retry connection to Cloudflare]
49
48
```
50
49
51
50
## Limitations
52
51
53
-
* Due to [how captive portal detection works](#how-captive-portal-detection-works), it may be possible for an employee to spoof a captive portal in order to turn off WARP.
54
-
* Some captive portals, particularly those on airlines, may be slow to respond and exceed the captive portal detection timeout. Users will likely see a [CF\_CAPTIVE\_PORTAL\_TIMED\_OUT](/cloudflare-one/connections/connect-devices/warp/troubleshooting/client-errors/#cf_captive_portal_timed_out) error when they try to connect.
55
-
* WARP may not be able to detect multi-stage captive portals, which redirect the user to different networks during the login process. Users will need to manually turn off WARP to get through the captive portal.
56
-
* Some public Wi-Fi networks are incompatible with running WARP:
52
+
- Due to [how captive portal detection works](#how-captive-portal-detection-works), it may be possible for an employee to spoof a captive portal in order to turn off WARP.
53
+
- Some captive portals, particularly those on airlines, may be slow to respond and exceed the captive portal detection timeout. Users will likely see a [CF_CAPTIVE_PORTAL_TIMED_OUT](/cloudflare-one/connections/connect-devices/warp/troubleshooting/client-errors/#cf_captive_portal_timed_out) error when they try to connect.
54
+
- WARP may not be able to detect multi-stage captive portals, which redirect the user to different networks during the login process. Users will need to manually turn off WARP to get through the captive portal.
55
+
- Some public Wi-Fi networks are incompatible with running WARP:
57
56
58
-
* Captive portals that intercept all DNS traffic will block WARP's [DoH connection](/cloudflare-one/connections/connect-devices/warp/configure-warp/route-traffic/warp-architecture/#overview). Users will likely see a [CF\_NO\_NETWORK](/cloudflare-one/connections/connect-devices/warp/troubleshooting/client-errors/#cf_no_network) error after they login to the captive portal.
59
-
* Captive portals that only allow HTTPS traffic will block WARP's [Wireguard UDP connection](/cloudflare-one/connections/connect-devices/warp/configure-warp/route-traffic/warp-architecture/#overview). Users will likely see a [CF\_HAPPY\_EYEBALLS\_MITM\_FAILURE](/cloudflare-one/connections/connect-devices/warp/troubleshooting/client-errors/#cf_happy_eyeballs_failure) error after they login to the captive portal.
57
+
- Captive portals that intercept all DNS traffic will block WARP's [DoH connection](/cloudflare-one/connections/connect-devices/warp/configure-warp/route-traffic/warp-architecture/#overview). Users will likely see a [CF_NO_NETWORK](/cloudflare-one/connections/connect-devices/warp/troubleshooting/client-errors/#cf_no_network) error after they login to the captive portal.
58
+
- Captive portals that only allow HTTPS traffic will block WARP's [Wireguard UDP connection](/cloudflare-one/connections/connect-devices/warp/configure-warp/route-traffic/warp-architecture/#overview). Users will likely see a [CF_HAPPY_EYEBALLS_MITM_FAILURE](/cloudflare-one/connections/connect-devices/warp/troubleshooting/client-errors/#cf_happy_eyeballs_failure) error after they login to the captive portal.
Copy file name to clipboardExpand all lines: src/content/docs/cloudflare-one/policies/gateway/order-of-enforcement.mdx
+1-2Lines changed: 1 addition & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,10 +3,9 @@ pcx_content_type: concept
3
3
title: Order of enforcement
4
4
sidebar:
5
5
order: 12
6
-
7
6
---
8
7
9
-
import { Render } from"~/components"
8
+
import { Render } from"~/components";
10
9
11
10
With Cloudflare Gateway, you can [enable and configure](/cloudflare-one/policies/gateway/initial-setup/) any combination of DNS, network, and HTTP policies.
http2-->http3["Allow, Block, Do Not Scan policies"]
47
46
end
48
47
49
-
http1--Do Not Inspect-->network0
48
+
http1-- "Do Not Inspect" -->network0
50
49
http3-->network0
51
50
network0[/"Network connections"/]-->network1
52
51
@@ -62,8 +61,8 @@ flowchart TB
62
61
end
63
62
64
63
%% Finish
65
-
network1--Egress with Cloudflare IP-->internet([Internet])
66
-
egress1--Egress with dedicated IP-->internet
64
+
network1-- "Egress with Cloudflare IP" -->internet([Internet])
65
+
egress1-- "Egress with dedicated IP" -->internet
67
66
```
68
67
69
68
## Priority between policy builders
@@ -103,7 +102,7 @@ When DNS queries are received, Gateway evaluates policies with pre-resolution se
103
102
| 1 | Resolved Country IP Geolocation | is | United States | Allow |
104
103
| 2 | Domain | is |`example.com`| Block |
105
104
106
-
Despite an explicit Allow policy ordered first, policy 2 takes precedence because the *Domain* selector is evaluated before DNS resolution.
105
+
Despite an explicit Allow policy ordered first, policy 2 takes precedence because the _Domain_ selector is evaluated before DNS resolution.
107
106
108
107
If a policy contains both pre-resolution and post-resolution selectors, Gateway will evaluate the entire policy after DNS resolution. For information on when each selector is evaluated, refer to the [list of DNS selectors](/cloudflare-one/policies/gateway/dns-policies/#selectors).
109
108
@@ -123,7 +122,7 @@ This order of enforcement allows Gateway to first determine whether decryption s
123
122
124
123
:::note
125
124
126
-
The only exception is if you are using [Clientless Web Isolation](/cloudflare-one/policies/browser-isolation/setup/clientless-browser-isolation/) — all sites within the clientless remote browser are implicitly isolated even if they match a Do Not Inspect policy.
125
+
The only exception is if you are using [Clientless Web Isolation](/cloudflare-one/policies/browser-isolation/setup/clientless-browser-isolation/) — all sites within the clientless remote browser are implicitly isolated even if they match a Do Not Inspect policy.
127
126
:::
128
127
129
128
Next, Gateway checks decrypted traffic against your Isolate policies. When a user makes a request which triggers an Isolate policy, the request will be rerouted to a [remote browser](/cloudflare-one/policies/browser-isolation/).
@@ -132,29 +131,33 @@ Lastly, Gateway evaluates all Allow, Block, and Do Not Scan policies. These poli
132
131
133
132
### Order of precedence
134
133
135
-
<Renderfile="gateway/order-of-precedence"product="cloudflare-one"params={{ one: "DNS, network, or HTTP" }} />
134
+
<Render
135
+
file="gateway/order-of-precedence"
136
+
product="cloudflare-one"
137
+
params={{ one: "DNS, network, or HTTP" }}
138
+
/>
136
139
137
140
:::caution[Terraform precedence limitation]
138
141
139
-
To avoid conflicts, Terraform applies a hash calculation to precedences. For example, a precedence of `1000` may become `1000901`. This can cause errors when reordering policies. To avoid this issue, manually set the precedence of your policies via the [Cloudflare API](/api/operations/zero-trust-gateway-rules-update-zero-trust-gateway-rule).
142
+
To avoid conflicts, Terraform applies a hash calculation to precedences. For example, a precedence of `1000` may become `1000901`. This can cause errors when reordering policies. To avoid this issue, manually set the precedence of your policies via the [Cloudflare API](/api/operations/zero-trust-gateway-rules-update-zero-trust-gateway-rule).
140
143
:::
141
144
142
145
## Example
143
146
144
147
Suppose you have a list of policies arranged in the following order of precedence:
145
148
146
-
* DNS policies: <Renderfile="gateway/order-of-precedence-dns"product="cloudflare-one" />
147
-
* HTTP policies:
148
-
| Precedence | Selector | Operator | Value | Action|
149
+
- DNS policies: <Renderfile="gateway/order-of-precedence-dns"product="cloudflare-one" />
0 commit comments