Перейти к содержанию

Использование Numa Edge для защиты от DDoS на границе сети#

Введение#

Ключевым понятием в работе  межсетевого экрана является соотнесение проходящих IP пакетов, имеющих одинаковые адреса и порты отправителя и получателя, в общий поток трафика, называемый соединением. Отслеживание состояния соединений позволяет существенно упростить настройку межсетевого экрана, а также увеличить его быстродействие.  Вместо того чтобы применять правила фильтрации для всего трафика, возможно ограничивать каким-либо образом только новые соединения и  разрешать уже установленные.  Классическим методом применения данного способа является разрешение  установления новых соединений только из внутренней сети, в то время как из внешней сети разрешается только прохождение пакетов для уже установленного соединения. Однако, могут возникнуть сложности если из внешней сети также возможно установление новых соединений.

В этом сценарии использования будет рассмотрен вопрос настройки правил фильтрации и межсетевого экранирования на устройстве ПАК Numa Edge FW (далее – устройство)  для самого устройства и защиты сервера, к которому необходимо организовать удаленное подключение из внешней сети. В качестве примера будет рассматриваться фильтрация входящего трафика к устройству и к внутреннему Веб-серверу (далее - сервер) компании. Для проходящего через МСЭ трафика будут выполняться различные проверки на предмет корректности. Весь трафик, помеченный как некорректный, будет заблокирован и не будет поступать на сервер. Данные действия помогут обезопасить сервер от атак типа отказ в обслуживании. Отдельно стоит обратить внимание, что в сценарии описываются примеры защиты на сетевом и транспортном уровне модели TCP/IP. Так же стоит учитывать что видов DDoS атак очень много и это лишь достаточно базовый уровень защиты с простой инфраструктурой.

ВАЖНО

ВАЖНО! В этом примере для ограничений в правилах фильтрации выбраны  абстрактные значения (количества одновременных соединений, скорость получения пакетов, общее число соединений и т.д) , для того чтобы показать методологию борьбы с определёнными типами DDoS. Реальные значения необходимо подбирать основываясь на вашем трафике, количестве одновременных пользователей веб-сервера, объемов  проходящего трафика в часы наибольшей нагрузки и т.д.

Настоятельно рекомендуется пред изучением данного сценария ознакомиться с документом  "643.АМБН.00004-01 32 01 Руководство администратора" (далее - РА), поскольку основное внимание сфокусировано на особенностях конфигурации сложных правил фильтрации и взаимодействия различных политик межсетевого экранирования между собой.

Исходные данные#

Оборудование#

  • Устройство ПАК Numa Edge FW - используется для на границе между внешней и внутренней сетью. На устройстве происходит фильтрация и журналирование паразитного трафика, осуществляется обеспечение доступа и контроль поступающего трафика к серверу расположенному внутри защищаемой сети.
  • Конфигурация Web-сервера в данном примере не рассматривается, но считается что к нему будут подключаться клиенты используя порты 443/TCP и 80/TCP.

Примечание

Функционал устройства ПАК Numa Edge FW полностью аналогичен функционалу ПАК Numa Edge VPN в части межсетевого экранирования. Поэтому возможен сценарий использования, при котором устройство ПАК Numa Edge VPN является и шлюзом удаленных подключений, и обеспечивает функционал межсетевого экрана на границе сети.  Однако, хорошей практикой является разнесение этих функциональных обязанностей между различными устройствами.

Схема подключения#

Устройство устанавливается на границе между внутренней и внешней сетью. Интерфейс eth1 подключается к внешней сети и имеет IP-адрес 1.2.3.4/24. На этом интерфейсе настраивается политика межсетевого экранирования для входящего трафика, отправляемого на внутренний Веб-сервер из внешней сети. Интерфейс eth2  подключен к внутренней сети и имеет адрес 192.168.10.254/24. IP-адрес Веб-сервера - 192.168.10.200/24. Для перенаправления трафика, поступающего из внешней сети, на Веб-сервер применяется трансляция адреса отправителя (DNAT). Общая схема обработки входящего трафика на устройстве представлена на рисунке ниже.

1

Общая схема обработки входящего трафика на устройстве

Информация

Согласно RFC 6890 для описания в документации внешних подсетей  необходимо использовать IP-адреса из следующих диапазонов: 192.0.2.0/24 (TEST-NET-1), 198.51.100.0/24 (TEST-NET-2) и 203.0.113.0/24 (TEST-NET-3). Однако, поскольку эти же диапазоны запрещены к использованию, они будут описаны в правилах фильтрации  для не маршрутизируемых подсетей.

Описание принципа работы политик межсетевого экранирования#

Настройка межсетевого экрана состоит из трех основных компонент:

  1. описание паттернов трафика в политике фильтрации;
  2. указание правил действия для трафика, попадающего под указанный фильтр в политике МСЭ;
  3. определение точки входа/выхода трафика и применение политики МСЭ.

Под паттерном трафика понимаются такие значения полей пакетов сетевого уровня и выше (согласно модели TCP/IP), по которым возможно его соотнесение с определенным правилом фильтрации. В этом примере рассматривается особенность работы межсетевого экрана для протокола IPv4.

На рисунке иерархическая схема работы политик МСЭ приведена иерархическая схема работы политик МСЭ. Каждая политика фильтрации может состоять из одного или нескольких правил фильтрации. Данные правила только маркируют трафик внутри системы, никак его не изменяя.  Каждая политика фильтрации добавляется к правилу фильтрации, к которому применяется определенное действие, например, разрешение или запрет. Набор из одного или нескольких правил МСЭ представляет собой политику МСЭ, для которой указывается место применения. В этом примере настраивается политика МСЭ для входящего трафика из внешней сети. Поэтому, согласно рисунку общая схема обработки входящего трафика на устройстве, политика будет применяться на интерфейсе eht1 для направления in.

2

Иерархическая схема работы политик МСЭ

Конфигурация устройства#

Базовая настройка Numa Edge#

Для настройки устройства необходимо перейти в конфигурационный режим с помощью команды:

1
2
3
admin@edge:~$ configure
[edit]
admin@edge#

После перехода в конфигурационный режим изменяется интерфейс приглашения для ввода, как указано на листинге выше. Все последующие примеры приведены без отображения приглашения.

Первоначально настраиваются IP-адреса на сетевых интерфейсах, согласно схеме на рисунке общая схема обработки входящего трафика на устройстве.

set interfaces ethernet eth1 description "Внешний интерфейс"
set interfaces ethernet eth1 address '1.2.3.4/24'

Далее второй интерфейс:

set interfaces ethernet eth2 description "Внутренний интерфейс"
set interfaces ethernet eth2 address '192.168.10.100/24'

Далее, необходимо обеспечить перенаправление HTTP и HTTPS трафика на сервер. Для этого настраивается правило с номером 10 для трансляции сетевых адресов назначения. В нем указывается перенаправление трафика для пакетов с адресом назначения 1.2.3.4 и портами назначения 80 и 443, для протокола TCP на адрес 192.168.10.200. В этом примере порты назначения после трансляции не изменяются. Для правил трансляции используется литеральная запись портов назначения, но возможно и использование числовой записи.

1
2
3
4
5
6
7
set service nat ipv4 rule 10 description 'Трансляция входящего HTTP/HTTPS трафика на сервер'
set service nat ipv4 rule 10 destination address '1.2.3.4'
set service nat ipv4 rule 10 destination port '80,443'
set service nat ipv4 rule 10 inbound-interface 'eth1'
set service nat ipv4 rule 10 inside-address address '192.168.10.200'
set service nat ipv4 rule 10 protocol 'tcp'
set service nat ipv4 rule 10 type 'destination'

Правило с номером 100 - правило с "маскарадом" для обычных клиентов сети:

set service nat ipv4 rule 100 outbound-interface 'eth1'
set service nat ipv4 rule 100 type 'masquerade'

Для доступа по ssh используются следующие параметры. Предполагается, что подключение осуществляется с помощью клиентского ПО из комплекта поставки:

1
2
3
4
5
6
set service ssh address 0.0.0.0 port '22'
set service ssh cipher 'kuznechik-ofb'
set service ssh hmac 'hmac-stribog-256'
set service ssh hmac 'hmac-stribog-512'
set service ssh key-exchange-algo 'ecdh-gost2012-256-cpa'
set service ssh active 'on'

Установка DNS серверов:

set system dns name-server 77.88.8.1 proto 'dns'
set system dns name-server 77.88.8.8 proto 'dns'

Установка маршрута по умолчанию:

set system gateway-address 1.2.3.200

После ввода данных настроек для их применения используется команда:

commit

Для сохранения настроек используется команда:

save

Настройка политик фильтрации#

Далее производится настройка политик фильтрации для входящего трафика. Особенностью системы конфигурации устройства является возможность настройки политик фильтрации, для последующего их применения в различных правилах политик МСЭ. Таким образом, некоторые политики, созданные в этом примере, применяются и для фильтрации входящего трафика для направления local – политики МСЭ для входящего трафика на устройство.

В политиках фильтрации трафика производится обнаружение паттернов трафика, часто используемого для реализации различных видов атак как на оборудование внутри локальной сети, так и на сам межсетевой экран, расположенный на границе. В примере используются запрещающие и разрешающие политики, это обусловлено использованием правил с ограничением скорости передачи пакетов.

Будет рассмотрена настройка устройства для защиты от следующих методов и типов атак:

  • атака с подменой на адресов на не маршрутизируемые;
  • атака через протокол TCP, где используются неверные значения MSS;
  • атаки через протокол TCP, где используются различные методы перегрузки МСЭ множественными соединениями и полусоединениями;
  • атака через UDP протокол путём перегрузки МСЭ множественной передачей пакетов;
  • атака через открытые порты;
  • атаки с подменой, амплификацией и отравлением DNS запросов;
  • атаки с перегрузкой и попытками получения доступа через SSH;
  • атаки с через ICMP протокол путём перегрузки МСЭ множественной передачей пакетов.

Некорректные адреса источника пакетов#

Создается группа адресов, указывающие на список подсетей, которые не должны использоваться в Интернете. Список этих подсетей приведен в RFC 5375 и 6890.

set groups address-group Bogon address '0.0.0.0/8'
set groups address-group Bogon address '10.0.0.0/8'
set groups address-group Bogon address '100.64.0.0/10'
set groups address-group Bogon address '127.0.0.0/8'
set groups address-group Bogon address '169.254.0.0/16'
set groups address-group Bogon address '172.16.0.0/12'
set groups address-group Bogon address '192.0.0.0/24'
set groups address-group Bogon address '192.0.2.0/24'
set groups address-group Bogon address '192.88.99.0/24'
set groups address-group Bogon address '192.168.0.0/16'
set groups address-group Bogon address '198.18.0.0/15'
set groups address-group Bogon address '198.51.100.0/24'
set groups address-group Bogon address '203.0.113.0/24'
set groups address-group Bogon address '224.0.0.0/3'
set groups address-group Bogon description 'не маршрутизируемые подсети'

Информация

Диапазон '224.0.0.0/3' включает в себя подсеть '224.0.0.0/4', описанную в RFC 1122, определенную для использования в качестве Multicast адресов, а также подсеть 240.0.0.0/4 – зарезервированную IANA и включающую в себя адрес 255.255.255.255 – Broadcast адрес.

Данный список подсетей не должен использоваться в качестве источника пакетов из внешней сети, поэтому создается политика фильтрации, в которой в качестве адреса источника указывается ранее созданная группа адресов.

1
2
3
set filter Bogon description 'Не маршрутизируемые сети не должны быть источником пакетов во внешней сети'
set filter Bogon rule 10 protocol 'all'
set filter Bogon rule 10 source address-group 'Bogon'

Защита от атак через DNS-трафик#

DNS Flood — это разновидность DDoS-атаки, нацеленная на DNS-серверы. Злоумышленники отправляют огромное количество поддельных запросов, чтобы перегрузить сервер и сделать его недоступным. Целью может быть как конкретный DNS-сервер, так и сам домен.

Подмена ответов DNS (DNS Spoofing, Cache Poisoning) — это атака, в которой злоумышленник подменяет данные в кэше DNS-сервера. Это позволяет перенаправить пользователей на вредоносные сайты вместо легитимных.

Для защиты со стороны МСЭ настроим список доверенных DNS серверов и ограничение на количество получаемых пакетов.

RFC 5358 рекомендует методы смягчения DDoS-атак на DNS, включая использование rate limiting для запросов и фильтрацию ответов на основе типа запроса и IP-адреса источника.

Для начала создадим доверенную группу адресов DNS серверов.

1
2
3
set groups address-group DNS address '77.88.8.8'
set groups address-group DNS address '77.88.8.1'
set groups address-group DNS description 'Доверенные DNS сервера'

Правила ограничивают DNS-пакеты группой DNS-серверов, помогая предотвратить большинство DNS - атак.

set filter DNS_flood_1 rule 10 protocol 'udp'
set filter DNS_flood_1 rule 10 source address-group '!DNS'
set filter DNS_flood_1 rule 10 source port '53'
set filter DNS_flood_1 description 'Ограничение на получение трафика DNS только для выбранных серверов'
set filter DNS_flood_2 rule 10 limit packet-rate burst '10'
set filter DNS_flood_2 rule 10 limit packet-rate rate '5/second'
set filter DNS_flood_2 rule 10 protocol 'udp'
set filter DNS_flood_2 rule 10 source address-group 'DNS'
set filter DNS_flood_2 rule 10 source port '53'
set filter DNS_flood_2 description 'Ограничение по скорости получения пакетов сервиса DNS'

Информация

Настройки будут разниться в зависимости от конфигурации сети, есть ли DNS сервер и какое устройство будет для этого использоваться (сам Numa Edge, либо устройство внутренней сети). В нашем случае используются только внешние сервера из списка.

Некорректные значения MSS#

В статье на сайте APNIC (Азиатско-Тихоокеанский сетевой информационный центр) под названием "TCP MSS values – what’s changed?" (Значения TCP MSS - что изменилось?) после обнаруженных уязвимостей CVE-2019-11477, CVE-2019-11478 и CVE-2019-11479 связанных с некорректной обработкой малых значений MSS в TCP пакетах рекомендуется блокировать пакеты со значением меньше 500. Для этого создается правило фильтрации, описывающее данный диапазон значений.

1
2
3
set filter UncomMSS rule 10 protocol 'tcp'
set filter UncomMSS rule 10 tcp mss '0-500'
set filter UncomMSS description 'Некорректное значение TCP MSS'

Защита от атак типа SYN-flood#

RFC 4987 содержит рекомендации по защите от SYN-flood атак, таких как использование SYN cookies и ограничение количества полусоединений. Этот документ предоставляет подробные описания различных методик смягчения атак, включая ограничения на объём очереди для SYN-запросов и частоты повторной отправки запросов для предотвращения истощения ресурсов сервера.

1
2
3
4
5
6
set filter SYN-Flood_1 rule 10 description 'Лимитирование поступающих TCP пакетов с флагом SYN'
set filter SYN-Flood_1 rule 10 limit packet-rate burst '50'
set filter SYN-Flood_1 rule 10 limit packet-rate rate '20/second'
set filter SYN-Flood_1 rule 10 log 'enable'
set filter SYN-Flood_1 rule 10 protocol 'tcp'
set filter SYN-Flood_1 rule 10 tcp flags 'SYN'

Включение в правиле log - является опциональным и описывает регистрацию в системном журнале превышения количества подключений. Поскольку атаки через TCP обычно состоят из огромного количества пакетов в секунду – нет смысла регистрировать все отбрасываемые пакеты. Использование журналирования в правиле фильтрации, а не в политике МСЭ объясняется как раз возможностью указания ограничения записей в системный журнал за единицу времени.

TCP-flood#

Запрет пакетов для новых TCP соединений с некорректным флагом#

Включение rate limiting для TCP соединений помогает снизить воздействие атак с высокой частотой соединений. Защита от TCP flood описана также в рекомендациях по конфигурации Linux и маршрутизаторов, где используются настройки QoS и ограничения соединений от одного IP-источника.

Согласно RFC 793, TCP соединения должны начитаться с отправки пакета c флагом SYN. Поэтому создается фильтр, в который попадают все пакеты с флагом, отличным от SYN и только что пришедшие на устройство.

1
2
3
4
set filter TCP-Flood_1 rule 10 protocol 'tcp'
set filter TCP-Flood_1 rule 10 state new 'enable'
set filter TCP-Flood_1 rule 10 tcp flags '!SYN'
set filter TCP-Flood_1 description 'Новые TCP пакеты без флага SYN'

Необходимо иметь в виду, что состояние соединения в МCЭ и состояние TCP-сессии между клиентом и сервером имеют принципиальные различия. Уникальность каждого пакета определяется путем соотнесения адресов и портов источника и назначения с уже существующими табличными данными. Таким образом первому поступающему в МСЭ TCP пакету (отправленного от клиента к серверу) c флагом SYN будет присвоено состояние NEW. Ответный же пакет, содержащий флаг SYN/ACK, проходящий через МСЭ переведет состояние соединения в ESTABLISHED.  При этом сервер ожидает пакет от клиента  с флагом ACK, для подтверждения установления соединения и перевода в состояние ESTABLISHED TCP сессии. Поэтому для перевода состояния соединения в МСЭ с NEW на ESTABLISHED требуется прохождение двух пакетов от клиента к серверу, в то время как для установления TCP соединения между ними требуется 3 пакета.

Ограничение новых соединений от одного адреса источника#

RFC 4987 рекомендует ограничение скорости и частоты создания новых соединений для предотвращения атаки из одного источника.

Фильтр TCP-Flood_2 основан на предположении того, что с определенного адреса источника не должно открываться большое количество TCP соединений. В этом примере используется ограничение в 30 пакетов в секунду, но данный параметр должен подбираться индивидуально, в зависимости от конфигурации сервера и ожидаемого количества подключений.

1
2
3
4
5
6
set filter TCP-Flood_2 rule 10 limit connection-rate group-by 'source-address'
set filter TCP-Flood_2 rule 10 limit connection-rate above '30/second'
set filter TCP-Flood_2 rule 10 limit connection-rate burst '50'
set filter TCP-Flood_2 rule 10 limit connection-rate source-mask '32'
set filter TCP-Flood_2 rule 10 protocol 'tcp'
set filter TCP-Flood_2 description 'Правило для ограничения количества подключений TCP'

Ограничения скорости TCP трафика#

Для контроля за поступающим трафиком TCP создадим фильтр на основе наших потребностей.

1
2
3
4
5
set filter TCP-Flood_3 rule 10 limit packet-rate burst '50'
set filter TCP-Flood_3 rule 10 limit packet-rate rate '20/second'
set filter TCP-Flood_3 rule 10 protocol 'tcp'
set filter TCP-Flood_3 rule 10 tcp flags '!SYN'
set filter TCP-Flood_3 description 'Правило для ограничения скорости TCP пакетов'

UDP-flood#

Примечание

При настройке данного правила нужно быть аккуратным, перед настройкой ограничений проанализируйте текущий UDP-трафик и придерживайтесь рекомендаций:

  • Не упускайте из виду, что ограничение скорости может привести к отбрасыванию полезного трафика (например, видеоконференций, VoIP или игрового трафика), если он превышает установленный лимит.
  • Пакеты UDP не имеют механизма подтверждения доставки, поэтому ограничение скорости может нарушить работу протоколов верхнего уровня, которые используют UDP (например, DNS, RTP).
  • Настройте отдельные ограничения для критичных служб, например, VoIP или специализированных серверов, чтобы избежать влияния на их производительность.
  • Если возможно, используйте механизмы QoS для приоритезации UDP-трафика, чтобы критические сервисы оставались доступными.

По аналогии с TCP трафиком рекомендуется воспользоваться опцией limit packet-rate для UDP трафика, в этом фильтре есть функции которые ограничивают частоту UDP-пакетов для защиты от атак с высокой частотой.

1
2
3
4
set filter UDP-flood_1 rule 10 limit packet-rate burst '1000'
set filter UDP-flood_1 rule 10 limit packet-rate rate '2000/second'
set filter UDP-flood_1 rule 10 protocol 'udp'
set filter UDP-flood_1 description 'Ограничение скорости пакетов UDP'

Неиспользуемые порты TCP, UDP#

RFC 6335 предоставляет рекомендации по назначению портов для TCP и UDP и их управлению. Это включает рекомендации по минимизации использования "зарезервированных" портов и подходы к управлению незарегистрированными портами. Рекомендуется блокировать порты, которые не используются в вашей сети, для минимизации риска атак, таких как сканирование портов или эксплуатация уязвимых сервисов.

1
2
3
set filter UnusedPorts rule 10 destination port '1024-65535'
set filter UnusedPorts rule 10 protocol 'tcp_udp'
set filter UnusedPorts description 'Блокирование неиспользуемых портов'

Атака на SSH сервис#

Важно

Здесь возможные примеры использования настроены вместе для демонстрации. К защите доступа SSH надо подходить очень аккуратно, что бы не потерять доступ при настройке.

Настройка правил в рамках защиты от DDoS

set filter SSH rule 10 destination address '1.2.3.4'
set filter SSH rule 10 destination port '22'
set filter SSH rule 10 protocol 'tcp'
set filter SSH rule 10 source address '1.2.3.40'
set filter SSH description 'Разрешающее правило для подключения'

set filter SSH-flood rule 10 destination port '22'
set filter SSH-flood rule 10 limit connections above '5'
set filter SSH-flood rule 10 limit connections group-by 'source'
set filter SSH-flood rule 10 limit connections mask '0'
set filter SSH-flood rule 10 protocol 'tcp'
set filter SSH-flood description 'Запрет более 5 подключений'

Так же при использовании правил на ограничение количества подключений рекомендуется установка таймера бездействия для пользователя, после которого сессия закроется.

1
2
3
4
admin@edge# set service ssh client-alive-timeout
Possible completions:
  <0-2147483647>
                Время ожидания активности клиента в секундах (по умолчанию 1800)

Не забывайте базовые рекомендации на смену номера порта для SSH службы при доступе к устройству, особенно из интернета. Одно из главных преимуществ смены порта и использования нестандартного порта заключается в том, что злоумышленнику труднее заметить его при случайном, автоматическом сканировании.

1
2
3
admin@edge-vpn# set service ssh address 1.2.3.4 port
Possible completions:
  <1-65535>     Номер порта (22 по умолчанию)

Ограничения ICMP трафика#

Организации и объединения занимающиеся анализом и защитой от атак, в статьях указывают на основные их типы на данный момент, как например в этом или этом источнике. Основные примеры атаки с использованием манипуляций над протокол ICMP: Ping of Death, Ping Flood, Smurf Attack.

Краткое описание атак:

  • Ping of Death — это атака, при которой злоумышленник отправляет ICMP-пакеты большого размера, что может вызвать сбои в работе системы.
  • Ping Flood — это атака, при которой злоумышленник отправляет огромное количество ICMP Echo Request (тип 8) пакетов на целевое устройство, перегружая его ресурсы.
  • Smurf Attack — это DDoS-атака, при которой злоумышленник использует широковещательные адреса сети для усиления ICMP-трафика, направленного на жертву. Атака часто использует ICMP Echo Request (тип 8).

Предложенные ниже правила обеспечивают комплексную защиту от Ping of Death , Ping Flood и Smurf Attack .

Установим фильтр по размеру пакета.

1
2
3
set filter ICMP_1 rule 10 length layer 'layer3'
set filter ICMP_1 rule 10 length value '!1-1400'
set filter ICMP_1 description 'Запрет по размеру пакета для ICMP'

Во втором фильтре установим фильтры по скорости для echo-request в 10 правиле и для всего остального трафика ICMP в 20 правиле.

1
2
3
4
5
6
7
8
set filter ICMP_2 rule 10 icmp type 'echo-request'
set filter ICMP_2 rule 10 limit packet-rate burst '1'
set filter ICMP_2 rule 10 limit packet-rate rate '10/second'
set filter ICMP_2 rule 10 protocol 'icmp'
set filter ICMP_2 rule 20 limit packet-rate burst '1'
set filter ICMP_2 rule 20 limit packet-rate rate '30/second'
set filter ICMP_2 rule 20 protocol 'icmp'
set filter ICMP_2 description 'Ограничение скорости для ICMP'

HTTP-flood#

Для защиты от HTTP flood атак применяются такие методы, как фильтрация по User-Agent, rate limiting, и использование CAPTCHA для снижения автоматических запросов. Данные рекомендации отражены в документации по защите веб-серверов и DDoS-атак (например, в рекомендациях OWASP), с помощью МСЭ можно настроить ограничение для количества подключений, ранее созданные правила так же помогут избежать отказа в обслуживании.

Правило 10 указывает ограничение для одного пользователя (для одного адреса отправителя):

1
2
3
4
5
6
7
set filter HTTP-flood rule 10 destination port 'http,https'
set filter HTTP-flood rule 10 limit connection-rate group-by 'source-address'
set filter HTTP-flood rule 10 limit connection-rate above '10/second'
set filter HTTP-flood rule 10 limit connection-rate burst '20'
set filter HTTP-flood rule 10 limit connection-rate source-mask '32'
set filter HTTP-flood rule 10 protocol 'tcp'
set filter HTTP-flood description 'Правило на ограничение количества подключений по HTTP портам'
Правило 20 описывает глобальное ограничение на количество соединений к веб-серверу:
1
2
3
4
5
6
set filter HTTP-flood rule 20 destination port '80,443'
set filter HTTP-flood rule 20 limit connection-rate group-by 'source-address'
set filter HTTP-flood rule 20 limit connection-rate above '30'
set filter HTTP-flood rule 20 limit connection-rate burst '50'
set filter HTTP-flood rule 20 limit connection-rate source-mask '0'
set filter HTTP-flood rule 20 protocol 'tcp'

Открытие портов HTTP и HTTPS#

Последнее правило фильтрации используется для явного разрешения прохождения пакетов на сервер для протоколов HTTP и HTTPS.

1
2
3
4
set filter WEB-SERV rule 10 destination address '192.168.10.200'
set filter WEB-SERV rule 10 destination port '80,443'
set filter WEB-SERV rule 10 protocol 'tcp_udp'
set filter WEB-SERV description 'Разрешающие правила для HTTP/HTTPS портов'

Настройка политики межсетевого экранирования#

Для фильтрации трафика создаются политики межсетевого экранирования с названиями WAN-IN, WAN-LOCAL в них перечисляются все политики фильтрации, которые были описаны ранее.

Данная последовательность правил реализует цепочку проверок, направленную на очистку паразитного трафика и разрешения установления корректных соединений с сервером.

Все правила применяются во возрастанию, в политике используется следующая нумерация правил для WAN-IN:

  • 100-170 правила с шагом 10 описывают правила для блокирования и регулирования скорости трафика;
  • 500 - в целом разрешает входящий трафик на сервер.

Все правила применяются во возрастанию, в политике используется следующая нумерация правил для WAN-LOCAL:

  • 100-210 правила с шагом в 10 так же описывают правила для блокирования и регулирования скорости трафика к МСЭ;
  • 500 - в целом разрешает входящий SSH трафик на сервер.

Использование шага 10 в правилах позволит, в случае необходимости, добавить дополнительные правила между уже описанными.

Использование номера 500 для разрешающего правила позволяет визуально отделить его от остальных правил, которые нацелены на защиту от потенциальных атак.

Для всех пакетов, не попавших под цепочку проверок в политике WAN-LOCAL установлено действие drop, в политике WAN-IN установлено действие accept.

set policy firewall WAN-IN rule 100 action 'drop'
set policy firewall WAN-IN rule 100 match filter 'Bogon'
set policy firewall WAN-IN rule 110 action 'drop'
set policy firewall WAN-IN rule 110 match filter 'UncomMSS'
set policy firewall WAN-IN rule 120 action 'accept'
set policy firewall WAN-IN rule 120 match filter 'SYN-Flood_1'
set policy firewall WAN-IN rule 130 action 'drop'
set policy firewall WAN-IN rule 130 match filter 'TCP-Flood_1'
set policy firewall WAN-IN rule 140 action 'drop'
set policy firewall WAN-IN rule 140 match filter 'TCP-Flood_2'
set policy firewall WAN-IN rule 150 action 'accept'
set policy firewall WAN-IN rule 150 match filter 'TCP-Flood_3'
set policy firewall WAN-IN rule 160 action 'accept'
set policy firewall WAN-IN rule 160 match filter 'UDP-flood_1'
set policy firewall WAN-IN rule 170 action 'drop'
set policy firewall WAN-IN rule 170 match filter 'HTTP-flood'
set policy firewall WAN-IN rule 500 action 'accept'
set policy firewall WAN-IN rule 500 match filter 'WEB-SERV'
set policy firewall WAN-IN default-action 'accept'

set policy firewall WAN-LOCAL rule 100 action 'drop'
set policy firewall WAN-LOCAL rule 100 match filter 'SSH-flood'
set policy firewall WAN-LOCAL rule 110 action 'drop'
set policy firewall WAN-LOCAL rule 110 match filter 'Bogon'
set policy firewall WAN-LOCAL rule 120 action 'drop'
set policy firewall WAN-LOCAL rule 120 match filter 'DNS_flood_1'
set policy firewall WAN-LOCAL rule 130 action 'accept'
set policy firewall WAN-LOCAL rule 130 match filter 'DNS_flood_2'
set policy firewall WAN-LOCAL rule 140 action 'drop'
set policy firewall WAN-LOCAL rule 140 match filter 'UncomMSS'
set policy firewall WAN-LOCAL rule 150 action 'drop'
set policy firewall WAN-LOCAL rule 150 match filter 'UnusedPorts'
set policy firewall WAN-LOCAL rule 160 action 'drop'
set policy firewall WAN-LOCAL rule 160 match filter 'SSH-flood'
set policy firewall WAN-LOCAL rule 170 action 'accept'
set policy firewall WAN-LOCAL rule 170 match filter 'SYN-Flood_1'
set policy firewall WAN-LOCAL rule 180 action 'drop'
set policy firewall WAN-LOCAL rule 180 match filter 'TCP-Flood_1'
set policy firewall WAN-LOCAL rule 190 action 'accept'
set policy firewall WAN-LOCAL rule 190 match filter 'UDP-flood_1'
set policy firewall WAN-LOCAL rule 200 action 'drop'
set policy firewall WAN-LOCAL rule 200 match filter 'ICMP_1'
set policy firewall WAN-LOCAL rule 210 action 'accept'
set policy firewall WAN-LOCAL rule 210 match filter 'ICMP_2'
set policy firewall WAN-LOCAL rule 500 action 'accept'
set policy firewall WAN-LOCAL rule 500 match filter 'SSH'
set policy firewall WAN-LOCAL default-action 'drop'

Применение политики МСЭ на интерфейс#

Созданная политика МСЭ применяется для входящего трафика из внешней сети.

set interfaces ethernet eth1 policy in firewall 'WAN-IN'
set interfaces ethernet eth1 policy local firewall 'WAN-LOCAL'