← Cloudflare One / cloudflare-one / traffic-policies / packet-filtering / best-practices
Расширенный набор правил
Расширенный набор правил основан на Минимальный набор правил создав целевые правила для разных типов систем в вашей сети. Прежде чем создавать эти правила, необходимо создать списки IP-адресов для каждой категории.
Если вы не можете экспортировать текущие правила периметрового межсетевого экрана, попробуйте определить категории систем или групп пользователей, находящихся в ваших префиксах Magic Transit. Например:
- Конечные точки (устройства пользователей)
- Внутренние маршрутизаторы
- Веб-серверы
- Серверы, не относящиеся к вебу
Для каждого пункта, перечисленного выше, учитывайте требования к разрешенному доступу в интернет. Например, разрешите то, что необходимо для легитимного трафика, а остальное заблокируйте.
Создать списки для использования правил Cloudflare Network Firewall
Дополнительные сведения о списках см. в Использовать списки правил.
Вы также можете создать список через панель управления, в разделе Конфигурации > Lists на вашем Account Home.
Конечные точки (устройства пользователей)
Конечные устройства не работают как серверы, что означает следующее:
- Они получают трафик от стандартных распространённых портов, например
80или443: в направлении их эфемерных портов (временных портов, назначаемых ОС для исходящих подключений, обычно выше32768в современных операционных системах). - Соединения направлены наружу, а не внутрь, и поэтому не получают незапрошенных входящих TCP-подключений.
- Обычно им требуются только клиентские TCP и UDP, без необходимости во входящем ICMP.
Например, можно создать список для сочетания generic client TCP и client UDP, разрешающий внешние пинги и трассировки, а также общее правило для всех остальных протоколов и трафика.
Создайте список с именем Конечные точки и укажите список конечных точек или IP-адресов пользователей для использования в правилах.
Предлагаемые правила
ID правила: 1
Описание: Разрешает обратный трафик (ответы на исходящие запросы) на эфемерные порты, блокируя нежелательные входящие подключения. Блокирует входящий трафик только с флагом SYN (то есть SYN-ACK разрешены).
Совпадение: ip.proto eq "tcp" and ip.dst in $endpoints and tcp.dstport in {32768..60999} and not (tcp.flags.syn and not tcp.flags.ack)
Действие: Allow
ID правила: 2
Описание: Конечные точки (клиенты) будут получать трафик, предназначенный для эфемерных портов
Совпадение: ip.proto eq "udp" and ip.dst in $endpoints and udp.dstport in {32768..60999}
Действие: Allow
ID правила: 3
Описание: Разрешает трафик ICMP к IP адресам назначения в $endpoints список с типами ICMP:
- Type 0 = Echo Reply
- Type 3 = Destination Unreachable
- Type 11 = Time Exceeded
Совпадение: ip.proto eq "icmp" and ip.dst in $endpoints and (icmp.type eq 0 or icmp.type eq 3 or icmp.type eq 11)
Действие: Allow
ID правила: 10
Описание: В противном случае запретите весь трафик к IP адресам в $endpoints список
Совпадение: ip.dst in $endpoints
Действие: Block
IP-адреса внутреннего маршрутизатора/межсетевого экрана
Следуйте приведённым ниже рекомендациям по IP-адресам интерфейсов внутренних маршрутизаторов или межсетевых экранов для своих префиксов MT.
- Создайте список IP-адресов, Внутренние маршрутизаторы например, с вашими IP-адресами.
- Блокируйте ICMP, если он не требуется.
- При необходимости разрешите GRE/ESP, если устройства используют туннели GRE/IPsec через интернет.
Предлагаемые правила
ID правила: 1 Описание: Разрешите ограниченный входящий трафик ICMP, включая:
- Type 0 - Echo Reply
- Type 3 - Destination Unreachable
- Type 8 - Echo
- Type 11 - Time Exceeded
Совпадение: ip.proto eq "icmp" and ip.dst in $internal_routers and ( (icmp.type eq 0 or icmp.type eq 3) or (icmp.type eq 11) or (icmp.type eq 8) )
Действие: Allow
ID правила: 2
Описание: Заблокировать весь остальной трафик, направленный на эти IP-адреса
Совпадение: ip.dst in $internal_routers
Действие: Block
Веб-серверы
Веб-серверам требуется тщательно продумать необходимые потоки трафика. Трафик для веб-сервер функциональность требуется в дополнение к потокам трафика, где веб-сервер выступает в роли клиента.
По возможности разрешите необходимые IP-адреса и порты назначения для веб-серверов, а все остальное заблокируйте. Помимо портов для веб-трафика могут потребоваться и дополнительные службы, например NTP/DNS.
Ниже приведён пример рекомендуемых правил, но изменения следует вносить только исходя из своих конкретных требований. Например, если ваш трафик не проксируется защитой Cloudflare уровня 7 и вы ожидаете трафик из интернета к своим веб-серверам:
- Создайте список IP-адресов, веб-серверы например, для перечисления IP-адресов ваших веб-серверов.
- Разрешите входящий из интернета трафик веб-сервера.
- Разрешите трафик для потоков инфраструктурного или клиентского трафика, поступающего из интернета, например DNS и NTP.
- Заблокируйте весь остальной трафик, направленный на IP-адреса веб-сервера.
Предлагаемые правила
ID правила: 1
Описание: Разрешает входящий HTTP/S-трафик из интернета с флагом только SYN или только ACK (не SYN/ACK)
Совпадение: ip.proto eq "tcp" and tcp.srcport in {32768..60999} and ip.dst in $web_servers and tcp.dstport in {80 443} and not (tcp.flags.syn and tcp.flags.ack)
Действие: Allow
ID правила: 2
Описание: Разрешает ответы UDP для DNS и NTP на веб-серверы
Совпадение: ip.dst in $web_servers and ip.proto eq "udp" and udp.srcport in {53 123} and udp.dstport in {1024..65535}
Действие: Разрешить при необходимости, но отключить в случае атаки
ID правила: 3
Описание: Catch-all для блокировки всего остального трафика, направленного на IP-адреса веб-сервера
Совпадение: ip.dst in $web_servers
Действие: Block
Как вариант, если у вас включена защита Cloudflare Layer 7, публичные IP-адреса Cloudflare можно разрешить в качестве исходных IP-адресов для входящего трафика HTTP/HTTPS к целевым IP-адресам. По сути, эта рекомендация заменяет правило 1 из примера выше.
Предлагаемые правила для трафика, проксируемого Cloudflare
Описание: Разрешить входящий HTTP/S-трафик от Cloudflare с флагами SYN или ACK
Совпадение: ip.proto eq "tcp" and ip.dst in $web_servers and tcp.dstport in {80 443} and not (tcp.flags.syn and tcp.flags.ack) and ip.src in {173.245.48.0/20 103.21.244.0/22 103.22.200.0/22 103.31.4.0/22 141.101.64.0/18 108.162.192.0/18 190.93.240.0/20 188.114.96.0/20 197.234.240.0/22 198.41.128.0/17 162.158.0.0/15 104.16.0.0/13 104.24.0.0/14 172.64.0.0/13 131.0.72.0/22}
Действие: Allow
Серверы, не относящиеся к вебу
Ограничьте источник трафика в зависимости от того, ожидает ли сервер запросы из интернета в целом или только от конкретных пользователей.
- По возможности примените правила на основе исходного IP-адреса или портов.
- Ограничьте разрешённые порты назначения только теми, которые необходимы.
- Заблокируйте входящие SYN-пакеты на закрытые порты.
Предлагаемые правила
IP Destination Address { non-web server } and TCP dst port in \<valid ports> — PermitIP Destination Address { non-web server } and UDP dst port in \<valid ports> — PermitIP Destination Address { web server } — Block