Я работаю в центре киберзащиты DataLine и в числе прочего занимаюсь межсетевыми экранами нового поколения (NGFW): тестирую новые решения, внедряю, настраиваю, слежу за работоспособностью. 

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

С этой мыслью мы запустили тесты производительности отечественного UTM UserGate в интересном контексте: мы подняли версию UserGate на программно-аппаратном комплексе от зарубежного вендора NGFW. В статье поделюсь сценариями тестирования и покажу результаты на одном популярном устройстве. При желании такие же тесты можно прогнать на любом другом оборудовании.

Характеристики оборудования 

Мы взяли старое оборудование, на котором не было действующей лицензии. Бывает, что такие устройства лежат без дела на складе, вот и у нас так и случилось.

Сдуем пыль с нашего NGFW и посмотрим, что умеет такое оборудование без вендорского софта.  

Архитектура процессора: 2x CPU, 16x physical cores, 32x virtual cores (total).
Оперативная память: 16 Gb.
Диски: 2х1 TB HDD.
Сетевая карта: 2x10 Gbps. Есть 3 слота расширения для сетевых карт.  

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

Подготовительная работа и схема подключения 

  1. В самом начале сотрудничества мы запросили у коллег из UserGate ТТХ под виртуальные решения для тестов. Но показатели характеристик вендора посчитаны под виртуализацию на процессорах с частотой в 2GHz. В наших облаках виртуализация построена на процессорах с частотой 3.1GHz. В итоге нам удалось получить более высокие показатели на своих тестах и заодно обкатать сценарий тестирования UserGate.

  2. Затем получили у вендора специальный загрузчик для установки ОС на “неродное” оборудование. Далее взяли образ UserGate и установили его по официальной инструкции

  3. Смонтировали такую цепочку: 2 виртуальные машины, а между ними наш старый NGFW с UserGate 6.1.5.11134R на борту. 

    Схема стенда:

Характеристики виртуальных машин:

ВМ: IB-TEST-01. 
ЦП: 4 vCPU.
ОЗУ: 8GB.
Диск: 50GB SSD.
Сеть: 10Gbps.
Зона: Trusted.
Назначение: iperf server.

ВМ: IB-TEST-02. 
ЦП: 4 vCPU.
ОЗУ: 8GB.
Диск: 50GB SSD.
Сеть: 10Gbps.
Зона: Untrusted.
Назначение: iperf client.

Для генерации трафика на ВМ использовался iperf 3.7. Во время каждого теста мы отправляли максимальный трафик в многопоточном режиме с одной ВМ на другую в течение двух минут. В каждом новом тесте последовательно подключали дополнительные модули UserGate и фиксировали нагрузку на процессор и память NGFW при разных конфигурациях виртуального решения. Получилось 5 этапов тестирования. 

Как тестировали

  1. Подключили правила межсетевого экранирования. Начнем тесты только с межсетевого экрана (МЭ). Включим следующие правила:

    Результат. Сначала смотрим скорость потока:

    Результат с тестом iperf -c 10.1.1.100 -P 70 -t 120.
    Результат с тестом iperf -c 10.1.1.100 -P 70 -t 120.
    Результат с тестом iperf -c 10.1.1.100 -P 70 -w 32768 -t 120.
    Результат с тестом iperf -c 10.1.1.100 -P 70 -w 32768 -t 120.

    Теперь глянем на график производительности UserGate: нагрузка на CPU  минимальна, ~3%.

  2. Добавили IPS (систему обнаружения вторжений, СОВ). Усложним задачу для UserGate. Создадим пару профилей IPS: для Windows-систем и для Unix-систем, –  и назначим их в разные правила СОВ.

    В первом профиле отфильтруем по уровню критичности (средний, высокий, очень высокий) и укажем ОС семейства Windows.

    Во втором профиле сделаем аналогично, но для Linux ОС.

    Создадим под каждый профиль отдельное правило СОВ.

    Принудительно применяем  правила МЭ и снова запускаем iperf.

    Результат.  Первые 15–20 секунд скорость не превышает 7,5-8 Гбит/с, а загрузка ЦП UserGate подскакивает до 21%. Далее все разгоняется, а процессор по загрузке опускается до 8%.

    Вот что показывает iperf: 

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

    Применим принудительно правила МЭ и снова повторим тест с iperf.

    Результат

  4. Добавили правила веб-безопасности. Теперь задействуем стандартное правило безопасного поиска.

    Результат: ЦПУ до 19% в пике.

  5. Подключили инспекцию SSL. Тоже ориентируемся на правила по умолчанию: 

    Производительность:

    Результат.  При 120 потоках трафика:

    При 128 потоках трафика:

На всех тестах загрузка процессора не превышала 21%. Главное – не упереться в полосу пропускания сетевой карты. При желании можно добавить еще пару сетевых карт к этой модели и ускорить трафик. 

Какие трудности возникли

  1. Не завелась LCD-панель. Обычно на ней отображается статус инициализации, но мы не увидели ничего полезного.

  2. Съехала нумерация интерфейсов. Допустим, у нас есть 8 портов у сетевой карты с заданной нумерацией от 1 до 8. Когда мы установили UserGate, он сам присвоил порядковые номера для портов по возрастанию MAC-адресов. Соответственно, номера на железке и в интерфейсе UserGate не совпали. 

  3. UserGate не смог определить дисковый контроллер, который позволяет настраивать массив RAID. Из-за этого операционная система UserGate установилась только на один диск массива из двух. 

    Это самое неприятное открытие: если один диск выйдет из строя, второй не сможет обеспечить нам отказоустойчивость. Информацию сразу же передали UserGate, надеемся, скоро удастся это исправить. 

В целом же такое решение с UserGate на неродном ПАКе нисколько не уступает по производительности виртуальному UserGate. Будем рады обсудить результаты ваших экспериментов по этому сценарию.   

Комментарии (14)


  1. amarao
    14.04.2022 15:05
    +1

    А почему оно NGFW, а не PGFW? Если это третье поколение, то после появления четвёртого, оно же становится previous generation, нет?


  1. SlipKo
    14.04.2022 18:25

    Печально, что до сеих пор нет возможности посмотреть нагрузку по ядрам у UG.


    1. atsaryov
      14.04.2022 20:42

      Коллеги из UserGate говорят, что загрузка по ядрам равномерно распределяется. А посмотреть загрузку по конкретному ядру - да, такой возможности нет.


  1. Anrikigai
    14.04.2022 18:37
    +1

    Что-то я потерялся.

    С одной стороны вы обещаете накатить UG на железку. Да и потом вроде про Rufus и LCD есть упоминание.

    Но первым же пунктом хвастаетесь, как UG в вашей виртуальной среде работает быстрее ожидаемого, потому что у вас супер серверы.

    В самом начале сотрудничества мы запросили у коллег из UserGate ТТХ под виртуальные решения. Но показатели характеристик вендора посчитаны под виртуализацию на процессорах с частотой в 2GHz. В наших облаках виртуализация построена на процессорах с частотой 3.1GHz. В итоге нам удалось получить более высокие показатели на своих тестах

    И про проблемы с дисковым контроллером позабавило.

    Информацию сразу же передали вендору, надеемся, скоро удастся это исправить. 

    Сначала прифигел. Потом сообразил, что, наверное, речь не о вендоре "списанной железки", а о UG. Но червячок сомнения гложет - просить "допилить софт", чтобы появилась возможность ставить UG на выведенный из эксплуатации чужой программно-аппаратный комплекс...

    Поиграться интересно, вопросов нет. Помню детство золотое, когда на PIX ставили BSD, вроде даже Windows (ну а что, Pentium же был). Но если вы такое готовитесь массово в прод внедрять (а как иначе объяснить просьбу "допилить" UG) - выглядит несколько странно. По крайней мере пока еще.


    1. dataline Автор
      14.04.2022 19:07

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

      Про массовое внедрение такой схемы речи здесь нет, скорее, это временное решение на случай задержек с закупками новых ПАКов и т.п. Мы показали вариант для единичных специфических запросов, которые нам встречались, и поделились способом проверки UserGate на прочность.


  1. Antra
    14.04.2022 19:18
    +2

    Не подскажете по используемым профилям трафика?

    Вы реально с помощью iperf тестировали производительность IPS, URLF?

    Какие сигнатуры на UG должны были напрячься, проверяя iperf, при включении профиля "Linux"?

    Как вы настроили iperf, чтобы он доверял вашему "левому" сертификату при подключении инспекции SSL?

    В соответствии с моими ожиданиями при трафике iperf о задействовании функционала NGFW речи не идет, тупой iptables перекидывает пакетики. Производительность не должна меняться, ибо нет трафика, который надо расшифровать, проверить на кучу категорий и сигнатур IPS на разных портах и протоколах. .

    Хотя бы TRex погонять с imix, а лучше tcpreplay для реального трафика...


    1. Gonzichek
      15.04.2022 09:22

      Ну кстати да, многие даташиты не пойми как промеряны, а на живой инфре в полку валятся.


    1. Ava256
      15.04.2022 09:22
      +1

      Аналогичный вопрос.Какие такие сигнатуры должны были сработать на непонятный трафик iperf ) По факту проверялось влияние проходящего сетевого трафика на работу файервола в режиме все пропускать ) Вот если включить хотя бы ips для сетевых сервисов windows и по smb покопировать файлы с машины на машину, производительность сразу просядет ) А ещё это железкой можно гвозди забивать, тоже полезная функция, если не знаешь зачем она нужна )


    1. Qetzlcoatl
      15.04.2022 16:07
      +1

      По внутренним замерам на "сертифицированном" железе на Emix трафике:
      - включение определения приложений по L7 уменьшает пропускную способность на ~10%;
      - включение контентной фильтрации - в 2 раза;
      - включение SSL инспектирования - ещё в 2 раза;
      - включение IDPS самое "тяжёлое" - до 10 раз.
      Но все эти замеры производились на версии 5.0.
      Версия 6.1 ушла далеко в перёд, как по "чистой" производительности (всё выключено) так и по уменьшению влияния проверок на производительность. Но по ней пока нет официальных замеров.


  1. iteron_mark
    15.04.2022 09:21

    а какая аппаратная платформа использовалась для тестов?


  1. ekutumin
    15.04.2022 11:34

    Iperf - это L3/L4 трафик, поэтому использование всяких правил фильтрации IPS, URL и так далее бессмысленно. Есть бесплатные L7 генераторы трафика, как например Trex.


    1. Antra
      15.04.2022 11:59

      Ну почему бессмысленно? От задач зависит.

      Если хочется продемонстрировать красивые показатели производительности при всех включенных защитах, iperf очень даже подходит.


      1. ekutumin
        15.04.2022 12:36

        Ито верно))

        Однако все-же режим IPS инспекции = 9 Gbps, а потом добавили SSL инспекцию и получили 8.3 Gbps. В Iperf нет SSL траффика.


        1. Antra
          15.04.2022 13:01

          Я не думаю, что на UG все настолько плохо, что включение простой проверки "а не SSL ли это?" существенно роняет производительность.

          Скорее разные параметры тестирования (где-то 70 потоков, где-то 120, где-то есть -w 32768, где-то нет...). Хотя уже ничему не удивлюсь.