Open source, собственная инфраструктура и экспертиза: как мы сделали аналог зарубежных межсетевых экранов

crhaevymetbhtapqowcpy28dkx8.jpeg


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

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

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


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

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


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

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

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


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


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


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


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


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

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


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

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


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

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


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

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

bzfawwszclg6nm52qbv6gzd-q4m.png


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


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

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

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

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


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

5miruxksuuqebkelzw1whz9c9lm.png


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

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

rrgeqfsgqqvulmxc-zbbejnew-w.png

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

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

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


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

y0yztlbksvq7yh5fmtccqnct5ms.png


В данной схеме каждый из выделенных серверов находится в одном 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-трафика


sougvbusthj19vdzdt0fzjrbqtw.png


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

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


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


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

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

42-za4xqzeakllmivshbsj2u_os.gif


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

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


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

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


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

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

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

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


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

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


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

eaah5zfki7npsy30oqtaj5larqw.png


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

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


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

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

o6uhnwgqs-kj188dntxiyk9xkt0.png


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


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

3gzcmftb1gbjosqtw5apnyka6mk.png


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

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


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

qx4gmkxwrkr12lneszj5-emkmfm.png

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

Описанную инсталляцию мы упаковали в новый межсетевой экран 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!

© Habrahabr.ru