← Cloudflare One / cloudflare-one / traffic-policies / network-policies
Распространённые политики
Следующие политики обычно используются для защиты сетевого трафика. Сетевые политики оцениваются по порядку сверху вниз, и применяется первая подходящая политика. Располагайте более конкретные политики Allow выше более общих политик Block.
Базовый набор рекомендуемых политик см. в Защитите свой интернет-трафик и SaaS-приложения.
См. страница политик Network для полного списка других селекторов, операторов и действий.
Заблокировать несанкционированные приложения
Чтобы снизить риск теневой ИТ, некоторые организации предпочитают ограничивать доступ своих пользователей к определённым веб-инструментам и приложениям. Например, следующая политика блокирует известные инструменты ИИ:
| Селектор | Оператор | Значение | Действие |
|---|---|---|---|
| Приложение | in | Искусственный интеллект | Block |
В следующих примерах API filters: ["l4"] означает, что это сетевая политика (уровень 4).
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/gateway/rules" \
--request POST \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"name": "Block unauthorized applications",
"description": "Block access to unauthorized AI applications",
"enabled": true,
"action": "block",
"filters": [
"l4"
],
"traffic": "any(app.type.ids[*] in {25})",
"identity": "",
"device_posture": ""
}'Проверить личность пользователя
Настройте доступ для каждого пользователя или группы, добавив условия на основе идентификации в ваши политики.
| Селектор | Оператор | Значение | Логика | Действие |
|---|---|---|---|---|
| Приложение | in | Salesforce | И | Block |
| User Group Names | in | Подрядчики |
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/gateway/rules" \
--request POST \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"name": "Check user identity",
"description": "Block access to Salesforce by temporary employees and contractors",
"enabled": true,
"action": "block",
"filters": [
"l4"
],
"traffic": "any(app.ids[*] in {606})",
"identity": "any(identity.groups.name[*] in {\"Contractors\"})",
"device_posture": ""
}'Требовать проверку состояния устройства
Требуйте, чтобы на устройствах было установлено определённое программное обеспечение или соблюдались другие параметры конфигурации. Инструкции по включению проверки состояния устройства см. в раздел состояния устройства. Например, вы можете использовать список серийные номера устройств чтобы пользователи могли получить доступ к приложению только при подключении с помощью Cloudflare One Client с корпоративного устройства:
В следующем примере можно использовать список серийные номера устройств чтобы пользователи могли получить доступ к приложению только при подключении с помощью Cloudflare One Client с корпоративного устройства:
| Селектор | Оператор | Значение | Логика | Действие |
|---|---|---|---|---|
| SNI Domain | является | internalapp.com |
И | Block |
| Пройденные проверки состояния устройства | not in | Серийные номера устройств |
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/gateway/rules" \
--request POST \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"name": "All-NET-ApplicationAccess-Allow",
"description": "Ensure access to the application comes from authorized WARP clients",
"precedence": 70,
"enabled": false,
"action": "block",
"filters": [
"l4"
],
"traffic": "any(net.sni.domains[*] == \"internalapp.com\")",
"device_posture": "not(any(device_posture.checks.passed[*] in {\"<DEVICE_SERIAL_NUMBERS_LIST_UUID>\"}))"
}'Чтобы получить UUID проверок состояния устройства, используйте List device posture rules конечная точка.
resource "cloudflare_zero_trust_gateway_policy" "all_net_applicationaccess_allow" {
account_id = var.cloudflare_account_id
name = "All-NET-ApplicationAccess-Allow"
description = "Ensure access to the application comes from authorized WARP clients"
precedence = 70
enabled = false
action = "block"
filters = ["l4"]
traffic = "any(net.sni.domains[*] == \"internalapp.com\")"
posture = "not(any(device_posture.checks.passed[*] in {\"${"$"}${cloudflare_zero_trust_list.allowed_devices_sn_list.id}\"}))"
}Требовать ограничение длительности сеанса
Чтобы требовать от пользователей повторной аутентификации по истечении определенного времени, настройте Сессии Cloudflare One Client.
Разрешить только утверждённый трафик
Ограничьте доступ пользователей только конкретными сайтами или приложениями, настроенными в вашем Политики HTTP. Этот шаблон использует две политики: политику Allow, разрешающую трафик HTTP/HTTPS, и следующую за ней политику Block, запрещающую все остальное. Разместите политику Allow выше политики Block, чтобы соответствующий трафик разрешался раньше, чем сработает общая блокировка.
1. Разрешите трафик HTTP и HTTPS
| Селектор | Оператор | Значение | Логика | Действие |
|---|---|---|---|---|
| Обнаруженный протокол | является | TLS | И | Allow |
| Порт назначения | in | 80, 443 |
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/gateway/rules" \
--request POST \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"name": "Allow HTTP and HTTPS traffic",
"description": "Restrict traffic to HTTP and HTTPS traffic",
"enabled": true,
"action": "allow",
"filters": [
"l4"
],
"traffic": "net.detected_protocol == \"tls\" and net.dst.port in {80 443}",
"identity": "",
"device_posture": ""
}'2. Заблокируйте весь остальной трафик
| Селектор | Оператор | Значение | Действие |
|---|---|---|---|
| Протокол | in | TCP, UDP | Block |
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/gateway/rules" \
--request POST \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"name": "Block all other traffic",
"description": "Block all other traffic that is not HTTP or HTTPS",
"enabled": true,
"action": "block",
"filters": [
"l4"
],
"traffic": "net.protocol in {\"tcp\" \"udp\"}",
"identity": "",
"device_posture": ""
}'Фильтруйте HTTPS-трафик при проверке на всех портах
Если ваша организация по умолчанию блокирует трафик с помощью политики Network и вы хотите проверять HTTP-трафик на всех портах, чтобы фильтровать HTTP- и TLS-трафик, его необходимо явно разрешить.
| Селектор | Оператор | Значение | Логика | Действие |
|---|---|---|---|---|
| Обнаруженный протокол | является | TLS | Или | Allow |
| Обнаруженный протокол | является | HTTP |
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/gateway/rules" \
--request POST \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"name": "Allow on inspect all ports",
"description": "Filter HTTPS traffic when using inspect all ports",
"enabled": true,
"action": "allow",
"filters": [
"l4"
],
"traffic": "net.detected_protocol == \"tls\" or net.detected_protocol == \"http\"",
"identity": "",
"device_posture": ""
}'Ограничьте доступ к приватной сети только для пользователей прокси-конечных точек
При использовании конечных точек прокси по умолчанию все устройства, добавленные к конечной точке прокси, получают доступ к внутренним приложениям и сервисам, подключенным через Cloudflare Tunnel. Чтобы ограничить доступ и добавить дополнительный уровень защиты, создайте следующие политики.
Конечные точки прокси исходного IP
При использовании конечные точки прокси с исходным IP, ограничьте доступ только для пользователей, подключающихся через конечную точку прокси с определённых исходных IP-адресов.
1. Разрешите трафик proxy endpoint с определённых исходных IP-адресов
| Селектор | Оператор | Значение | Логика | Действие |
|---|---|---|---|---|
| Proxy Endpoint | in | Proxy Endpoint | И | Allow |
| Исходный IP | in | 203.0.113.0/24 |
И | |
| IP-адрес назначения | in | 10.0.0.0/8 |
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/gateway/rules" \
--request POST \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"name": "Allow proxy endpoint traffic from specific source IPs",
"description": "Allow traffic from proxy endpoint users with specific source IPs to reach private network",
"enabled": true,
"action": "allow",
"filters": [
"l4"
],
"traffic": "net.proxy_endpoint.ids[*] in {\"<PROXY_ENDPOINT_ID>\"} and net.src.ip in {203.0.113.0/24} and net.dst.ip in {10.0.0.0/8}",
"identity": "",
"device_posture": ""
}'Замените <PROXY_ENDPOINT_ID> с ID вашей конечной точки прокси.
2. Заблокируйте весь остальной трафик к приватной сети через конечную точку прокси
| Селектор | Оператор | Значение | Логика | Действие |
|---|---|---|---|---|
| Proxy Endpoint | in | Proxy Endpoint | И | Block |
| IP-адрес назначения | in | 10.0.0.0/8 |
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/gateway/rules" \
--request POST \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"name": "Block all other proxy endpoint traffic",
"description": "Block any other proxy endpoint traffic from accessing the private network",
"enabled": true,
"action": "block",
"filters": [
"l4"
],
"traffic": "net.proxy_endpoint.ids[*] in {\"<PROXY_ENDPOINT_ID>\"} and net.dst.ip in {10.0.0.0/8}",
"identity": "",
"device_posture": ""
}'Замените <PROXY_ENDPOINT_ID> с ID вашей конечной точки прокси.
Конечные точки прокси авторизации
При использовании конечные точки прокси авторизации, добавьте дополнительный уровень защиты, ограничив доступ только пользователям, подключающимся с определенных IP-адресов источника. Это предотвращает несанкционированный доступ, даже если учетные данные пользователя скомпрометированы.
1. Разрешите трафик proxy endpoint с определённых исходных IP-адресов
| Селектор | Оператор | Значение | Логика | Действие |
|---|---|---|---|---|
| Proxy Endpoint | in | Proxy Endpoint | И | Allow |
| Исходный IP | in | 203.0.113.0/24 |
И | |
| IP-адрес назначения | in | 10.0.0.0/8 |
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/gateway/rules" \
--request POST \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"name": "Allow authorized proxy endpoint traffic from specific source IPs",
"description": "Allow traffic from authorization proxy endpoint users with specific source IPs to reach private network",
"enabled": true,
"action": "allow",
"filters": [
"l4"
],
"traffic": "net.proxy_endpoint.ids[*] in {\"<PROXY_ENDPOINT_ID>\"} and net.src.ip in {203.0.113.0/24} and net.dst.ip in {10.0.0.0/8}",
"identity": "",
"device_posture": ""
}'Замените <PROXY_ENDPOINT_ID> с ID вашей конечной точки прокси.
2. Заблокируйте весь остальной трафик к приватной сети через конечную точку прокси
| Селектор | Оператор | Значение | Логика | Действие |
|---|---|---|---|---|
| Proxy Endpoint | in | Proxy Endpoint | И | Block |
| IP-адрес назначения | in | 10.0.0.0/8 |
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/gateway/rules" \
--request POST \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"name": "Block all other authorized proxy endpoint traffic",
"description": "Block any other authorization proxy endpoint traffic from accessing the private network",
"enabled": true,
"action": "block",
"filters": [
"l4"
],
"traffic": "net.proxy_endpoint.ids[*] in {\"<PROXY_ENDPOINT_ID>\"} and net.dst.ip in {10.0.0.0/8}",
"identity": "",
"device_posture": ""
}'Замените <PROXY_ENDPOINT_ID> с ID вашей конечной точки прокси.
Ограничьте доступ к приватным сетям
Ограничьте доступ к ресурсам, подключённым через Cloudflare Tunnel.
Следующий пример состоит из двух политик: первая разрешает определённым пользователям доступ к вашему приложению, а вторая блокирует весь остальной трафик.
1. Разрешите доступ сотрудникам компании
| Селектор | Оператор | Значение | Логика | Действие |
|---|---|---|---|---|
| IP-адрес назначения | in | 10.0.0.0/8 |
И | Allow |
| User Email | matches regex | .*@example.com |
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/gateway/rules" \
--request POST \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"name": "Allow company employees",
"description": "Allow any users with an organization email to reach the application",
"enabled": true,
"action": "allow",
"filters": [
"l4"
],
"traffic": "net.dst.ip in {10.0.0.0/8}",
"identity": "identity.email matches \".*@example.com\"",
"device_posture": ""
}'2. Заблокируйте всех остальных
| Селектор | Оператор | Значение | Действие |
|---|---|---|---|
| IP-адрес назначения | in | 10.0.0.0/8 |
Block |
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/gateway/rules" \
--request POST \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"name": "Block everyone else",
"description": "Block any other users from accessing the application",
"enabled": true,
"action": "block",
"filters": [
"l4"
],
"traffic": "net.dst.ip in {10.0.0.0/8}",
"identity": "",
"device_posture": ""
}'Переопределение IP-адреса
Переопределение трафика, направленного на определённый IP-адрес, другим IP-адресом.
| Селектор | Оператор | Значение | Логика | Действие |
|---|---|---|---|---|
| IP-адрес назначения | in | 203.0.113.17 |
И | Переопределение сети |
| Порт назначения | является | 80 |
| Переопределение IP | Переопределение порта |
|---|---|
1.1.1.1 |
80 |
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/gateway/rules" \
--request POST \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"name": "Override example.com with 1.1.1.1",
"description": "Override a site'\''s IP address with another IP",
"enabled": true,
"action": "l4_override",
"filters": [
"l4"
],
"traffic": "net.dst.ip in {203.0.113.17} and net.dst.port == 80",
"identity": "",
"device_posture": "",
"rule_settings": {
"l4override": {
"ip": "1.1.1.1",
"port": 80
},
"override_host": "",
"override_ips": null
}
}'