Здравствуйте, хабровчане! Пока холивары на тему, аморально или нет использовать бесплатные платформы для создания коммерческих продуктов, не утихают, мы потихоньку это сделали.
И мы не стесняемся брать деньги с клиентов, потому что на бесплатном коде мы построили действительно классную вещь — универсальный аппаратный шлюз безопасности.
Раньше у нас был коммерчески успешный брандмауэр, но для Microsoft Windows. В какой-то момент бурный поток идей захлестнул берега Windows, и возник вопрос – а что дальше? А дальше — Linux или Net/Open/Free BSD. Наши гуру собрались, покурили и решили использовать 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
-
Совместимость С Блокчейном: Небольшая Помощь
19 Oct, 24 -
Parse.com Снижает Цены
19 Oct, 24