← Cloudflare Network Firewall / cloudflare-network-firewall / best-practices
Расширенный набор правил
Если вы не можете экспортировать текущие правила периметрового межсетевого экрана, попробуйте определить категории систем или групп пользователей, находящихся в ваших префиксах Magic Transit. Например:
- Конечные точки (устройства пользователей)
- Внутренние маршрутизаторы
- Веб-серверы
- Серверы, не относящиеся к вебу
Для каждого пункта, перечисленного выше, учитывайте требования к разрешенному доступу в интернет. Например, разрешите то, что необходимо для легитимного трафика, а остальное заблокируйте.
Создайте списки для использования в правилах Cloudflare Network Firewall
Дополнительные сведения о списках см. в Использовать списки правил.
Вы также можете создать список через панель управления, в разделе Конфигурации > Lists на вашем Account Home.
Конечные точки (устройства пользователей)
Конечные устройства не работают как серверы, что означает следующее:
- Они получают трафик от стандартных распространённых портов, например
80или443, в сторону их эфемерных портов, выше32768в современных операционных системах (начиная с1025в более старых Windows Server 2003 и Windows XP). - Соединения направлены наружу, а не внутрь, поэтому не принимают пакеты TCP SYN или ACK.
- Обычно им требуются только клиентские 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:
- Тип 0 = Эхо-ответ
- Тип 3 = Узел назначения недостижим
- Тип 11 = Превышено время
Совпадение: 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, включая:
- Тип 0 - Эхо-ответ
- Тип 3 - Узел назначения недостижим
- Тип 8 - Эхо
- Тип 11 - Превышено время
Совпадение: 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-адресов для входящего HTTP/HTTPS-трафика на IP-адреса назначения можно разрешить публичные IP-адреса Cloudflare. По сути, эта рекомендация заменяет Правило 1 из примера выше.
Список IP-адресов Cloudflare см. в IP-адреса Cloudflare ↗.
Предлагаемые правила для трафика, проксируемого 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