← Cloudflare One / cloudflare-one / traffic-policies / http-policies
Распространённые политики
Следующие политики обычно используются для защиты HTTP-трафика. HTTP-политики оцениваются по порядку сверху вниз, и применяется первая подходящая политика, за исключением Do Not Inspect политики, которые всегда оцениваются первыми.
Базовый набор рекомендуемых политик см. в Защитите свой интернет-трафик и SaaS-приложения.
См. Страница политик HTTP для полного списка других селекторов, операторов и действий.
Заблокировать сайты
Блокируйте попытки обращения к сайтам по имени хоста или пути URL. В зависимости от структуры сайта могут потребоваться разные подходы.
Заблокировать сайты по имени хоста
Заблокируйте все поддомены, использующие данный хост.
| Селектор | Оператор | Значение | Действие |
|---|---|---|---|
| Host | matches regex | .*example\.com |
Block |
В следующих примерах API filters: ["http"] означает, что это HTTP-политика (уровень 7).
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/gateway/rules" \
--request POST \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"name": "Block sites by hostname",
"description": "Block all subdomains that use a specific hostname",
"enabled": true,
"action": "block",
"filters": [
"http"
],
"traffic": "http.request.host matches \".*example.com\"",
"identity": "",
"device_posture": ""
}'Заблокировать сайты по URL-адресу
Заблокируйте часть сайта, не блокируя его полностью. Например, можно заблокировать конкретный сабреддит, например reddit.com/r/gaming, не блокируя reddit.com.
| Селектор | Оператор | Значение | Действие |
|---|---|---|---|
| URL | matches regex | /r/gaming |
Block |
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/gateway/rules" \
--request POST \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"name": "Block sites by URL",
"description": "Block specific parts of a site without blocking the hostname",
"enabled": true,
"action": "block",
"filters": [
"http"
],
"traffic": "http.request.uri matches \"/r/gaming\"",
"identity": "",
"device_posture": ""
}'Заблокировать категории контента
Заблокируйте категории контента, которые противоречат политике допустимого использования вашей организации.
| Селектор | Оператор | Значение | Действие |
|---|---|---|---|
| Content Categories | in | Сомнительный контент, Риски безопасности, Разное, Adult Themes, Азартные игры | Block |
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/gateway/rules" \
--request POST \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"name": "All-HTTP-ContentCategories-Blocklist",
"description": "Block access to questionable content and potential security risks",
"precedence": 40,
"enabled": true,
"action": "block",
"filters": [
"http"
],
"traffic": "any(http.request.uri.content_category[*] in {17 85 87 102 157 135 138 180 162 32 169 177 128 15 115 119 124 141 161 2 67 125 133 99})",
"identity": "",
"device_posture": ""
}'resource "cloudflare_zero_trust_gateway_policy" "block_unauthorized_apps" {
account_id = var.cloudflare_account_id
name = "All-HTTP-ContentCategories-Blocklist"
description = "Block access to questionable content and potential security risks"
precedence = 40
enabled = true
action = "block"
filters = ["http"]
traffic = "any(http.request.uri.content_category[*] in {17 85 87 102 157 135 138 180 162 32 169 177 128 15 115 119 124 141 161 2 67 125 133 99})"
identity = ""
device_posture = ""
}Заблокировать несанкционированные приложения
Чтобы снизить риск теневой ИТ, некоторые организации предпочитают ограничивать доступ своих пользователей к определённым веб-инструментам и приложениям. Например, следующая политика блокирует известные инструменты ИИ:
| Селектор | Оператор | Значение | Действие |
|---|---|---|---|
| Приложение | in | Искусственный интеллект | Block |
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/gateway/rules" \
--request POST \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"name": "All-HTTP-Application-Blocklist",
"description": "Limit access to shadow IT by blocking web-based tools and applications",
"precedence": 60,
"enabled": true,
"action": "block",
"filters": [
"http"
],
"traffic": "any(app.type.ids[*] in {25})",
"identity": "",
"device_posture": ""
}'resource "cloudflare_zero_trust_gateway_policy" "all_http_application_blocklist" {
account_id = var.cloudflare_account_id
name = "All-HTTP-Application-Blocklist"
description = "Limit access to shadow IT by blocking web-based tools and applications"
precedence = 60
enabled = true
action = "block"
filters = ["http"]
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": [
"http"
],
"traffic": "any(app.ids[] in {606})",
"identity": "any(identity.groups.name[] in {\"Contractors\"})",
"device_posture": ""
}'Пропускать проверку для групп приложений
Некоторые клиентские приложения, например Zoom или сервисы Apple, используют закрепление сертификатов. Такие приложения проверяют, что подключаются напрямую к собственным серверам, и отклоняют сертификат проверки TLS от Gateway. Чтобы избежать ошибок подключения, добавьте для этих приложений политику Do Not Inspect HTTP.
Gateway сначала оценивает политики Do Not Inspect, независимо от их позиции в списке политик. Cloudflare рекомендует переместить политики Do Not Inspect в начало списка, чтобы избежать путаницы.
| Селектор | Оператор | Значение | Действие |
|---|---|---|---|
| Приложение | in | Do Not Inspect | Do Not Inspect |
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/gateway/rules" \
--request POST \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"name": "Bypass incompatible applications",
"description": "Skip TLS decryption for applications that are incompatible with Gateway",
"enabled": true,
"action": "off",
"filters": [
"http"
],
"traffic": "any(app.type.ids[*] in {16})",
"identity": "",
"device_posture": ""
}'Проверить состояние устройства
Требуйте, чтобы на устройствах было установлено определённое программное обеспечение или соблюдались другие параметры конфигурации. Инструкции по настройке проверки состояния устройства см. в Требовать проверку состояния устройства.
Принудительно применяйте минимальную версию ОС
Выполните Проверка версии ОС чтобы убедиться, что пользователи используют версию не ниже минимально необходимой.
| Селектор | Оператор | Значение | Действие |
|---|---|---|---|
| Пройденные проверки состояния устройства | in | Минимальная версия ОС | Allow |
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/gateway/rules" \
--request POST \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"name": "Require OS version",
"description": "Perform an OS version check for minimum version",
"enabled": true,
"action": "allow",
"filters": [
"http"
],
"traffic": "",
"identity": "",
"device_posture": "any(device_posture.checks.passed[*] in {\"<POSTURE_CHECK_UUID>\"})"
}'Чтобы получить UUID проверок состояния устройства, используйте List device posture rules конечная точка.
Проверить наличие определённого файла
Выполните проверка файла чтобы убедиться, что у пользователей на устройстве есть определённый файл.
Поскольку путь к файлу отличается для каждой операционной системы, вы можете настроить проверку файла для каждой системы отдельно и использовать Или логический оператор, чтобы требовалось прохождение только одной из проверок.
| Селектор | Оператор | Значение | Логика | Действие |
|---|---|---|---|---|
| Пройденные проверки состояния устройства | in | macOS File Check | Или | Allow |
| Пройденные проверки состояния устройства | in | Linux File Check |
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/gateway/rules" \
--request POST \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"name": "Check for specific file",
"description": "Ensure users have a specific file on their device regardless of operating system",
"enabled": true,
"action": "allow",
"filters": [
"http"
],
"traffic": "",
"identity": "",
"device_posture": "any(device_posture.checks.passed[] in {\"<POSTURE_CHECK_1_UUID>\"}) or any(device_posture.checks.passed[] in {\"<POSTURE_CHECK_2_UUID>\"})"
}'Чтобы получить UUID проверок состояния устройства, используйте List device posture rules конечная точка.
Требовать ограничение длительности сеанса
Требовать повторной аутентификации пользователей по истечении определённого времени.
Изолировать сайты с высоким риском в удалённом браузере
Если вы используете Дополнение Browser Isolation, см. наш список распространённые политики изоляции.
Не проверять самоподписанные сертификаты
При обращении к исходным серверам с сертификатами, не подписанными публичным центром сертификации, необходимо исключить их из расшифровки TLS.
| Селектор | Оператор | Значение | Действие |
|---|---|---|---|
| Домен | in | internal.example.com |
Do Not Inspect |
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/gateway/rules" \
--request POST \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"name": "Bypass internal site inspection",
"description": "Bypass TLS decryption for internal sites with self-signed certificates",
"enabled": true,
"action": "off",
"filters": [
"http"
],
"traffic": "any(http.request.domains[*] in {\"internal.example.com\"})",
"identity": "",
"device_posture": ""
}'Заблокировать типы файлов
Блокируйте отправку или загрузку файлов в зависимости от их типа.
| Селектор | Оператор | Значение | Логика | Действие |
|---|---|---|---|---|
| Upload File Types | in | Документ Microsoft Office Word (docx) | И | Block |
| Download File Types | in | PDF (pdf) |
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/gateway/rules" \
--request POST \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"name": "Block file types",
"description": "Block the upload or download of files based on their type",
"enabled": true,
"action": "block",
"filters": [
"http"
],
"traffic": "any(http.upload.file.types[*] in {\"docx\"}) and any(http.download.file.types[*] in {\"pdf\"})",
"identity": "",
"device_posture": ""
}'Дополнительные сведения о поддерживаемых типах файлов см. в Download and Upload File Types.
Изолировать или блокировать приложения теневого IT
Изолировать приложения теневого IT, обнаруженные Библиотека приложений которые еще не проверены или сейчас проверяются, и блокируйте приложения, не одобренные вашей организацией.
Дополнительные сведения о проверке приложений Shadow IT см. в Проверить приложения.
1. Изолируйте непроверенные приложения или приложения, находящиеся на проверке
Изолировать приложения, если их статус одобрения Не проверено или На проверке.
| Селектор | Оператор | Значение | Логика | Действие |
|---|---|---|---|---|
| Статус приложения | является | Не проверено | Или | Изолировать |
| Статус приложения | является | На проверке |
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/gateway/rules" \
--request POST \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"name": "Isolate unreviewed or in review application status",
"description": "Isolate Shadow IT applications that have not been reviewed or are in review in the Application Library",
"enabled": true,
"action": "isolate",
"filters": [
"http"
],
"traffic": "any(app.statuses[*] == \"unreviewed\") or any(app.statuses[*] == \"in review\")",
"identity": "",
"device_posture": ""
}'2. Заблокируйте неодобренные приложения
Блокировать приложения, если их статус одобрения Не утверждено.
| Селектор | Оператор | Значение | Действие |
|---|---|---|---|
| Статус приложения | является | Не утверждено | Block |
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/gateway/rules" \
--request POST \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"name": "Block unapproved application status",
"description": "Block Shadow IT applications that have been marked as unapproved in the Application Library",
"enabled": true,
"action": "block",
"filters": [
"http"
],
"traffic": "any(app.statuses[*] == \"unapproved\")",
"identity": "",
"device_posture": ""
}'Заблокировать сервисы Google
Чтобы включить проверку Gateway для трафика Google Drive, необходимо Добавьте сертификат Cloudflare в Google Drive.
Заблокировать загрузки из Google Drive
Заблокируйте загрузку файлов из Google Drive.
| Селектор | Оператор | Значение | Логика | Действие |
|---|---|---|---|---|
| Приложение | in | Google Drive | И | Block |
| URL Path & Query | matches regex | .*(e=download|export).* |
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/gateway/rules" \
--request POST \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"name": "Block Google Drive downloads",
"description": "Block file downloads from Google Drive",
"enabled": true,
"action": "block",
"filters": [
"http"
],
"traffic": "any(app.ids[] in {554}) and http.request.uri.path_and_query matches \".(e=download|export).*\"",
"identity": "",
"device_posture": ""
}'Заблокировать отправку файлов в Google Drive
Заблокируйте отправку файлов в Google Drive.
| Селектор | Оператор | Значение | Логика | Действие |
|---|---|---|---|---|
| Приложение | in | Google Drive | И | Block |
| Upload Mime Type | matches regex | .* |
И | |
| Host | не является | drivefrontend-pa.clients6.google.com |
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/gateway/rules" \
--request POST \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"name": "Block Google Drive uploads",
"description": "Block file uploads to Google Drive",
"enabled": true,
"action": "block",
"filters": [
"http"
],
"traffic": "any(app.ids[] in {554}) and http.upload.mime matches \".\" and not(http.request.host == \"drivefrontend-pa.clients6.google.com\")",
"identity": "",
"device_posture": ""
}'Заблокировать загрузки из Gmail
Заблокируйте загрузку файлов из Gmail.
| Селектор | Оператор | Значение | Логика | Действие |
|---|---|---|---|---|
| Host | является | mail-attachment.googleusercontent.com |
И | Block |
| URL Path & Query | является | /attachment/u/0 |
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/gateway/rules" \
--request POST \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"name": "Block Gmail downloads",
"description": "Block file downloads from Gmail",
"enabled": true,
"action": "block",
"filters": [
"http"
],
"traffic": "http.request.host == \"mail-attachment.googleusercontent.com\" and http.request.uri.path_and_query matches \"/attachment/u/0\"",
"identity": "",
"device_posture": ""
}'Заблокировать прокси Google Translate
Заблокируйте использование Google Translate для перевода целых веб-страниц.
При переводе веб-сайта Google Translate проксирует веб-страницы с помощью translate.goog домен. Ваши пользователи смогут использовать этот сервис, чтобы обойти другие политики Gateway. Если вы заблокируете translate.goog, пользователи всё равно смогут пользоваться остальными функциями Google Translate.
| Селектор | Оператор | Значение | Действие |
|---|---|---|---|
| Домен | matches regex | ^(.+\.)?translate\.goog$ |
Block |
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/gateway/rules" \
--request POST \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"name": "Block Google Translate for websites",
"description": "Block use of Google Translate to translate entire webpages",
"enabled": true,
"action": "block",
"filters": [
"http"
],
"traffic": "any(http.request.domains[*] matches \"^(.+\\.)?translate\\.goog$\")",
"identity": "",
"device_posture": ""
}'Фильтруйте трафик WebSocket
Gateway не проверяет и не регистрирует WebSocket ↗ трафик. Вместо этого Gateway будет логировать только детали HTTP, использованные для установления соединения WebSocket, а также информация о сетевых сессиях. Чтобы отфильтровать трафик WebSocket, создайте политику с 101 Код ответа HTTP.
| Селектор | Оператор | Значение | Действие |
|---|---|---|---|
| Ответ HTTP | является | 101 SWITCHING_PROTOCOLS | Allow |
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/gateway/rules" \
--request POST \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"name": "Filter WebSocket",
"description": "Filter WebSocket traffic with HTTP response code 101",
"enabled": true,
"action": "allow",
"filters": [
"http"
],
"traffic": "http.response.status_code == 101",
"identity": "",
"device_posture": ""
}'