INTEGRITY Документация

Выражения форм

Правила пишутся на языке Cloudflare Rules language, предметно-ориентированном языке (DSL), созданном по образцу семантики Wireshark. Дополнительная информация приведена в Язык правил документация.

Чтобы начать с простого случая, ознакомьтесь ниже с тем, как выполняется сопоставление исходного IP-адреса. В этом выражении ip.src обозначает исходный IP-адрес входящего пакета, а == означает «равно»:

ip.src == 192.0.2.0

Выражения можно усложнить, объединив несколько условий с помощью логического оператора (&& означает И, || означает ИЛИ). Следующее выражение соответствует пакетам от 192.0.2.1 у которых также установлен флаг TCP PUSH или RESET:

ip.src == 192.0.2.1 && (tcp.flags.push || tcp.flags.reset)

Возможности

С помощью Cloudflare Network Firewall можно пропускать или блокировать пакеты на основе исходного или целевого IP-адреса, исходного или целевого порта, протокола, длины пакета или bit field match.

Ограничения

Механизм обработки выражений поддерживает нотацию CIDR (диапазоны IP-адресов вида 192.0.2.0/24), но только внутри наборов в фигурных скобках. Простое сравнение будет работать не так, как ожидается:

ip.src == 192.0.2.0/24  # bad
ip.src in { 192.0.2.0/24 }  # good

У выражений есть предел сложности, который легко достигается при большом количестве объединённых или вложенных условий. Пример:

(tcp.dstport == 1000 || tcp.dstport == 1001) && (tcp.dstport == 1002 || tcp.dstport == 1003) && (tcp.dstport == 1004 || tcp.dstport == 1005) && (tcp.dstport == 1006 || tcp.dstport == 1007) && (tcp.dstport == 1008 || tcp.dstport == 1009) && (tcp.dstport == 1010 || tcp.dstport == 1011) && (tcp.dstport == 1012 || tcp.dstport == 1013) && (tcp.dstport == 1014 || tcp.dstport == 1015) && (tcp.dstport == 1016 || tcp.dstport == 1017)

Если лимит достигнут, в ответе будет 400 код статуса и сообщение об ошибке ruleset exceeds complexity constraints. Разделите выражение на несколько правил и повторите попытку. Каждое правило может обрабатывать часть условий, а межсетевой экран проверяет их по порядку.