Как Мы Освоили Opnsense

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

И мы не стесняемся брать деньги с клиентов, потому что на бесплатном коде мы построили действительно классную вещь — универсальный аппаратный шлюз безопасности.

Раньше у нас был коммерчески успешный брандмауэр, но для Microsoft Windows. В какой-то момент бурный поток идей захлестнул берега Windows, и возник вопрос – а что дальше? А дальше — Linux или Net/Open/Free BSD. Наши гуру собрались, покурили и решили использовать OPNsense вместо того, чтобы изобретать собственный велосипед. Эта статья поможет тем, кто хочет сделать нечто подобное.



Как мы освоили OPNsense



Почему OPNsense?

Во-первых, OPNsense — это форк открытой UTM-системы pfSense, которая считается одним из лучших решений своего класса на базе FreeBSD. Мы изучили код OPNsense и нам понравилось его качество, а также подход к реализации функционала.

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

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

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

Помимо прочего, лицензия BSD идеальна для создателей коммерческого продукта — она не содержит сопутствующих т.н.

«авторское лево» ограничений.

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

Имеющийся опыт и навыки нельзя сбрасывать со счетов ни при каких обстоятельствах.



Начало работы

Сотрудничество с командой OPNsense началось с создания русской локализации основной ветки проекта.

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

Кстати, когда мы сталкиваемся с ошибками в OPNsense, мы предлагаем исправления, улучшения и доработки продукта, которые становятся доступны всем желающим совершенно бесплатно, чтобы «торгаши, наживающиеся на свободном ПО», внесли свой вклад в развитие свободного кода.

.



Присоединение к мейнстриму

Ребята из OPNsense были готовы к сотрудничеству.

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

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

Есть моменты, с которыми нам сложно жить, но с ними приходится мириться — плюсы свободного ПО перевешивают минусы.

Если мы проведем рефакторинг всего кода, разработчики OPNsense, возможно, не смогут быстро усвоить изменения.

У них просто не хватает для этого ресурсов, поэтому в Traffic Inspector Next Generation уже доступны функции, которых пока нет в базовой версии.

OPNsense использует стандартный syslog, но мы давно перешли на syslog-ng — он позволяет, например, записывать логи в базу данных.

Система логирования влияет на многое, а объем изменений огромен.

Чтобы перенести код на OPNsense, мы попытались разбить его на несколько итераций, но процесс еще не завершен.

Второй момент связан с изменениями в веб-интерфейсе.

В OPNsense модель MVC используется не везде; устаревший код там восходит к pfSense и нас попросили перенести его на новые «рельсы».

Мы начали доработку со страницы работы с сертификатами, но когда в OPNsense оценили объем работы, необходимый для принятия нового кода в основную ветку, у них волосы встали дыбом.



Проблемы…

Хотя мы являемся официальными участниками OPNsense, это не дает нам дополнительных прав на изменение кода бесплатного продукта.

Сообщество контролирует свое собственное сельское хозяйство; сами разработчики проекта должны протестировать и принять наши изменения.

Мы можем только предложить им переделать некоторые решения, чтобы облегчить изменения.

Накопление различий с основным кодом продукта является серьезной проблемой.

Мы стараемся построить нашу работу таким образом, чтобы максимально упростить процесс обновления.

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

Объем работы сумасшедший, но с этим придется жить.

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



.

и решения

Решаем проблемы следующим образом: если есть возможность добавить функционал плагином — делаем это.

OPNsense имеет продуманный API для встраивания плагинов; он редко меняется, и разработчики уделяют достаточно внимания вопросам обратной совместимости.

Когда выйдет новая версия OPNsense, мы также поднимем новую версию Traffic Inspector Next Generation и обновим кодовую базу без лишней головной боли, хотя без головной боли обойтись вообще не получается.

Еще интересный момент: мы не отдаем всю свою работу OPNsense. Некоторые из них нужны только на российском рынке, а фирменные модули имеют лицензионные ограничения.

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

В Traffic Inspector Next Generation это делается через СМС, но местная русская кухня за границей никого не интересует. Можно упомянуть Антивирус Касперского — для него мы собрали пакет с использованием библиотек «Лаборатории Касперского».

Вы не можете интегрировать такой пакет в основную ветку.

Также есть фильтр русских ресурсов по категориям NetPolice, для которого необходима подписка на сервис, и, конечно же, вещи, связанные с сертификацией ФНС.

Такие, например, как проверка целостности системы и уведомление администраторов о ее нарушениях.

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

Помимо уже упомянутых, можно назвать модуль отчетности о трафике и единый Центр управления для работы с несколькими устройствами Traffic Inspector Next Generation. Также имеется плагин для интеграции с Microsoft Active Directory, системой ограничения доступа к сетевым ресурсам по IP и MAC-адресам и NTLM-аутентификации.

Некоторые из этих вкусностей рано или поздно появятся в OPNsense, но многих там никогда не будет.

Разностная машина

Самое главное отличие: Traffic Inspector Next Generation представляет собой аппаратно-программный комплекс, то есть коробочное решение.

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

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

Однако на него распространяется ограниченная гарантия и, конечно же, бесплатная техническая поддержка по телефону и электронной почте.

Создатели бесплатного ПО не могут протестировать все аппаратные платформы и предлагают использовать ПО на свой страх и риск.

В плане поддержки у них есть только документация и форумы, которые есть и у нас (причём на русском языке).

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

Более того, в продаже имеются конфигурации с сертификатом ФСТЭК, а OPNsense вам этого точно не предложит по объективным причинам.



Вывод: бесплатно ≠ бесплатно.

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

Большое сообщество разработчиков быстрее замечает и исправляет ошибки, а также отслеживает внесенные изменения.

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

Трудно не заметить снижение затрат: нам не нужно платить за лицензии на операционную систему, средства разработки и модули, реализующие UTM-функциональность.

Это не значит, что мы получили все совершенно бесплатно.

Разработчики команды Smart-Soft посвятили много лет созданию решений для платформы FreeBSD. Наш опыт — это значительная составляющая стоимости создания Traffic Inspector Next Generation, а также немало прямых финансовых затрат. Разработка решений на базе открытого программного обеспечения – удовольствие далеко не бесплатное, и если вы упустите этот момент, то не сможете сделать что-то достойное.

Теги: #информационная безопасность #*nix #Сетевые технологии #unix #сетевое оборудование #Системное администрирование #открытый код #nix системы #FreeBSD #сетевое администрирование #BSD

Вместе с данным постом часто просматривают: