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

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

Почему решили делать свой межсетевой экран


Selectel предлагает в аренду МЭ нескольких известных производителей, но некоторое время назад встал вопрос о поиске замены. Предпосылок было несколько:

  • высокая стоимость решений — в последнее время цена поднялась в несколько раз,
  • порой избыточная для конкретного инстанса производительность, за которую приходится переплачивать,
  • недостаток гибкости в используемых компонентах,
  • зависимость получения обновлений сигнатур (например, для IPS) от подписок вендора, невозможность добавить свои,
  • проблема с оперативной заменой оборудования при выходе из строя (при недостаточном объеме ЗИП либо при необходимости ожидать отправки и возврата оборудования вендору).

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

В ходе анализа существующих на рынке вариантов мы решили протестировать связку: open source-решение + выделенный сервер (далее — МЭ).

Почему выбрали open source-решение?


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

Почему выделенный сервер?


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

Выбор платформы для тестирования


Нам нужно было протестировать несколько серверных сборок, чтобы определиться, на какой решение лучше «приживется». Платформу выбирали по нескольким критериям.

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


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

Наличие аппаратной поддержки шифрования процессором


У используемого ПО есть поддержка аппаратного ускорения шифрования, поэтому было решено брать в тест только процессоры с таким функционалом.

Стоимость платформы


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

МЭ по умолчанию имеет два интерфейса 1GE RJ45. Этого достаточно для настройки межсетевого экранирования сервисов с общей пропускной способностью сети в 1 Гбит/c. Если нужно разбить пропускную способность для разных серых сетей, то МЭ позволяет сделать это с помощью traffic shaping.


Тестирование на выделенном сервере


Тестирование проводили с помощью двух инструментов — iPerf3 и TRex traffic generator.

iPerf3 — пожалуй, самый популярный генератор TCP/UDP-трафика. С его помощью можно измерить максимальную пропускную способность сети при различных вариантах трафика: TCP/UDP, кастомные размеры пакетов, количество потоков и т.д. Дополнительную информацию о продукте можно найти здесь.

TRex — отличный open source-генератор трафика уровней L3-L7, позволяющий генерировать в том числе IMIX-трафик. Подробнее об инструменте можно почитать здесь.

Тестирование с помощью iPerf3


Для тестирования мы собрали следующий стенд:


Как видно из схемы, на два выделенных сервера мы установили pfSense 2.6. Между ними подняли VPN-туннели (IPSec и openVPN). За одним из МЭ в серой сети развернули сервер с iPerf3, доступ к которому был настроен как через port-forwarding (для тестирования производительности по открытому каналу), так и через VPN-туннель. В межсетевом экране можно установить пакет iPerf3 и проводить замеры из веб-интерфейса или консоли.

В процессе тестирования также сравнили скорости в VPN-туннелях с использованием расширенного набора инструкций процессора (AES-NI) и без.

Результаты тестирования для TCP при 128 потоках.

Как видно из графика, включение аппаратного ускорения шифрования дает увеличение пропускной способности в VPN-туннеле примерно в 1,5—2 раза, что весьма существенно. Полученные результаты, в том числе замеры в VPN-туннелях, близки к пропускной способности интерфейса. Причем загрузка CPU сервера в тестах была до 30%, а объем используемой оперативной памяти сборки не превышал 4%.

Тестирование с помощью TRex


Под TRex собрали следующую схему:


В данной схеме каждый из выделенных серверов находится в одном VLAN с соответствующим интерфейсом второго сервера. Алгоритм прохождения трафика следующий:

  1. TRex с клиентской части генерирует трафик с src-адресами из сети 16.0.0.0/8 и dst-адресами из сети 48.0.0.0/8 и отправляет его из igb0 на igb0 МЭ.
  2. МЭ получает этот трафик, обрабатывает его в соответствии с правилами FW и отправляет на адрес интерфейса igb1 TRex (так как предварительно на МЭ был добавлен маршрут в сеть 48.0.0.0/8 через 192.168.110.2)
  3. TRex получает трафик на своей серверной части (dst 48.0.0.0/8) и сравнивает отправленный трафик (скорость, количество пакетов) с полученным.

В результате получаем объективные результаты нагрузочного тестирования МЭ при использовании IMIX-трафика. Стоит отметить, что в рамках теста дополнительно включался Snort, при этом ожидаемо увеличивалась нагрузка на CPU и объем использованной RAM. Просадок в трафике и увеличения ошибок обработки трафика при этом не наблюдалось.

В условии атак с помощью http-трафика при включенной блокировке Snort объем возвращающихся пакетов на TRex плавно уменьшался. Значит, IPS под нагрузкой работает корректно.

Результаты тестирования IMIX-трафика



-c — количество аппаратных потоков для использования на пару интерфейсов
-m — множитель скорости. TRex умножит скорость CPS каждого шаблона на указанное значение
-d — продолжительность теста в секундах
flows — количество потоков
clients — количество IP-адресов источников трафика
servers — количество IP-адресов получателей трафика
PPs — пакетов в секунду
Tx — отправляемый трафик
Rx — принимаемый трафик
CPU usage МЭ — процент использования CPU
RAM usage МЭ — процент использования RAM

Как это все администрировать


Первоначальная настройка


После выбора платформы приступаем к установке и настройке межсетевого экрана.

Установка из ISO-образа не сложнее установки любой ОС. Необходимо подключить ISO-образ к серверу и выбрать порядок загрузки с носителя.


Более подробное описание установки можно найти по ссылке.

Дополнительная настройка


После первоначальной настройки получаем готовый к работе МЭ. Теперь можно использовать его функционал для создания по-настоящему эффективного и удобного firewall. Так, например, можно:

  • экспортировать и импортировать конфигурацию,
  • разграничивать доступ пользователям МЭ,
  • настраивать различные варианты VPN.

Экспорт, импорт конфигурации. Межсетевой экран позволяет экспортировать и импортировать файлы конфигурации. Файл конфигурации — это xml-файл, который можно экспортировать в зашифрованном виде.

Разграничение доступа. МЭ позволяет гибко настраивать разграничение прав доступа. Это может быть полезно при разделении ответственности за настройку решения между сотрудниками — например, отделов ИТ и ИБ.

VPN. МЭ из коробки имеет возможность создавать VPN с использованием IPSec и OpenVPN.

Подробные инструкции по настройке можно найти в базе знаний Selectel.

Сценарии использования


Рассмотрим несколько сценариев использования межсетевого экрана на выделенном сервере.

Защита выделенных серверов


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


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

Использование в качестве VPN-шлюза для удаленных ресурсов


Иногда за межсетевым экраном находятся ресурсы, которые не следует публиковать в открытый доступ. Но к ним нужно обеспечить доступ с других площадок или для удаленных пользователей. В таком случае МЭ может быть использован как VPN-шлюз — для Site-to-Site-туннелей и/или для Client Access VPN.

Гибкая настройка протоколов шифрования и хэширования для IPSec позволяют построить туннель с различными устройствами. А с помощью разграничения доступа к туннелируемым серым сетям по определенным портам можно избежать избыточной сетевой доступности в VPN-туннелях.


Сегментирование сетей в выделенных серверах


При реализации схемы с несколькими серверами, предназначенными для разных задач, лучшим вариантом будет сегментация сетей. Для этой задачи также отлично подойдет МЭ с возможностью настройки нескольких IP-адресов на LAN-интерфейсе.


В таком сценарии можно очень гибко настраивать межсетевое экранирование между сетями/отдельными хостами, таким образом организовав DMZ (демилитаризованную зону). Также у МЭ есть возможность использовать QinQ, если требуется разделение на уровне L2.

Использование в качестве FW для нескольких услуг


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

Пример дизайна для выхода сети публичного облака в интернет через МЭ.

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

Нам удалось воплотить самую необходимую функциональность в недорогом и надежном аппаратном исполнении.

Что умеет межсетевой экран Selectel


Маршрутизация и NAT


Настройка статической и динамической маршрутизации, политико-ориентированная маршрутизация (Policy-based routing), блокировка немаршрутизуемых адресов.

Сетевые сервисы


Ограничение полосы пропускания, настройка DHCP (server, relay), NTP, SNMP, GRE, GIF, DNS (forwarder, resolver).

Межсетевой экран


Фильтрация трафика, сегментирование сетей с помощью виртуальных IP, фильтрация по URL-адресам, создание групп (IP, портов, URL), возможность запускать правила на определенный промежуток времени или составлять расписания работы правил.

VPN


IPSec (Site-to-Site, client access), OpenVPN (Server, Client).

Диагностика и восстановление


Просмотр таблицы ARP, активных сетевых сокетов, контроль утилизации CPU, количества трафика и статистика на интерфейсах. Возможность снятия дампа трафика, проверка соединения TCP-порта, DNS Lookup, использование инструментов ping, traceroute. Возможность сохранения и восстановления конфигурации, просмотр загрузки интерфейсов.

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

Selectel отвечает за сервисное обслуживание, подключение к локальной сети выделенных серверов и интернету, настройку маршрутов для выхода в интернет. Сюда же входят все преимущества размещения в дата-центре уровня Tier III – бесперебойное электропитание оборудования и микроклимат.

В следующей статье расскажем о настройках дополнительных функций межсетевого экрана, таких как агрегация интерфейсов, сборка кластера, IDPS, потоковый антивирус. Также поделимся результатами тестирования с интерфейсами на 10 Гбит/c!

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


  1. Mnemonic0
    10.06.2022 13:45
    +11

    А при чём тут аналог зарубежных межсетевых экранов и Pfsense? Или лицензия Apache2 позволяет, делаем свой форк, меняем лого и получаем зарубежный аналог?

    А ннет, сел, перечитал статью:

    Hidden text

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

    Т.е. взяли pfsense, поставили на свои виртуалки, научили своих админов какие кнопочки нажимать (применительно к собственной инфраструктуре) и назвали "собственный сетевой экран"


    1. lodz
      10.06.2022 14:00
      +1

      Ну что-то вы совсем уж обесцениваете работу с open source. Это все-таки не тетрис на мобилку поставить.


      1. Darka
        10.06.2022 14:04
        -1

        Ну на самом деле с этим и эникей справится.


      1. Mnemonic0
        10.06.2022 14:20
        +2

        Да, не тетрис, но опишите потенциального покупателя данной услуги?

        Хороший сетевик - врядли: Cisco VM100, Mikrotik CHR, Palo Alto Virtual NG FW и много чего другого

        Рядовой пользователь - хомячок, купивший ресурсы в облаке. Врядли даже задумывается о фаерволе.

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

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

        Как по мне позиционирование должно быть на уровне:

        • мы заботимся о наших клиентах

        • поскольку лицензий нет, предоставим opensource

        • есть куча мануалов (и вот тут надо подумать, как аккуратно перевести на следующий пункт)

        • при помощи нашего саппорта за небольшую денюжку мы вам поможем

        Но заявлять о том, что это аналог зарубежных межсетевых экранов - неправильно, т.к. это и есть зарубежный межсетевой экран, пусть и доступный по лицензии Apache 2.0


        1. lodz
          10.06.2022 14:53
          +3

          А почему тогда коробочные решения находят так много покупателей, если мануалов много?(

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


        1. is113 Автор
          10.06.2022 15:29
          +3

          Спасибо за комментарий.

          Давайте по порядку:
          - Хороший сетевик будет брать другое решение.
          Да, но в текущей ситуации покупка лицензий может быть невозможна либо очень затруднена, то же самое про поддержку от вендора. К тому же, как показано в сценариях использования, предлагаемое решение можно использовать на железном сервере, что в случае использования виртуального FW, вынуждало бы разворачивать гипервизор на выделенном сервере для разворачивания одной VM, если потребуется защищать сервисы, развернутые на выделенных серверах (усложнение сетевой схемы).
          - Рядовой пользователь.
          Для очень маленькой инфраструктуры настроек хостового межсетевого экрана может быть достаточно, но при появлении доп сетевых сервисов - лучше делать что-то отдельное.
          - Какой-то опытный пользователь.
          Цель статьи - не очередной мануал по pfsense)

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


        1. reci
          11.06.2022 23:51

          Все озвученные претензии легко решаются требованием на уровне законодательства приобретать лицензии исключительно на ПО из реестра Рос-что-нибудь-там.


  1. net_racoon
    10.06.2022 14:25
    +4

    А Pfsense точно NGFW?


    1. Mnemonic0
      10.06.2022 14:34

      Нет, но нигде и речи о NGFW небыло


      1. net_racoon
        10.06.2022 14:55
        +2

        В статье нет, а вот если по ссылке перейти...


        1. Shaman_RSHU
          10.06.2022 16:31
          +3

          Да какая разница... NGFW.. пакетный фильтр.. всё равно кто-нибудь, да купит, главное красиво оформить :)


  1. resetsa
    10.06.2022 21:49
    +4

    Молодцы конечно, но заголовок больно желтушный.
    «Как мы настроили pfsense» звучит более верно.


  1. vagon333
    11.06.2022 05:33

    Как с поддержкой плагинов pfSense (PFS) после кастомизации?
    Ведь, ценность PFS не столько в нем самом, сколько в доп. плагинах.
    Если за ширмой PFS, плагины PFS, то зачем переходить на ваше решение?

    У PFS большое community, можно получить бесплатную или платную поддержку.
    Ваше решение - vendor lock-in на продукт, который вполне может остаться на базе PFS 2.6.

    В чем ценность для народа, кроме наличия у Selectel допиленного под свои нужды PFS за деньги?


  1. werter_l
    11.06.2022 17:08

    У pfsense и форк имеется - opnsense.

    То есть вы просто развернули у себя pfsense, подняли на нем ovpn, ipsec и продаете на этой основе vpn-сервис. Также установили squid и squidguard + suricata\snort как idps.

    А что, так можно было? (с)

    P.s. У pfsense еще и wireguard есть отдельным пакетом. Можете и его "продавать")

    P.p.s. Цикл заметок по работе с pfsense, proxmox etc https://forum.netgate.com/topic/163435/proxmox-ceph-zfs-pfsense-и-все-все-все-часть-2/


    1. SerjV
      11.06.2022 18:14

      У pfsense и форк имеется - opnsense.

      ...так и до Смарт-софта один шаг остался ) Правда, у него только ПАКи, насколько помню, для виртуалок не дают.

      но вопрос "почему из двух именно pfsense" - остаётся открытым.


  1. werter_l
    11.06.2022 17:53

    И как у вас в тестах ovpn и ipsec в скорости сравнялись практически?

    Я к тому, что ipsec в ядре, ovpn в user space.