Как мы оседлали OPNsense

3556

Пока не стихают холивары на тему, аморально или нет использовать бесплатные платформы для создания коммерческих продуктов, мы тихой сапой сделали это. И не стесняемся брать с клиентов деньги, потому что запилили на базе свободного кода реально классную штуку — универсальный аппаратный шлюз безопасности. Раньше у нас был коммерчески успешный межсетевой экран, но для Microsoft 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 это делается через SMS, но за рубежом локальная российская кухня никому не интересна.

    Можно упомянуть антивирус Касперского — для него у нас собран пакет с использованием библиотек «Лаборатории Касперского». В основную ветку такой пакет не интегрируешь. Есть ещё российский фильтр ресурсов по категориям 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, да и прямых финансовых затрат здесь тоже немало. Разработка решений на базе СПО — удовольствие далеко не бесплатное и если этот момент упустить, сделать что-то достойное не получится.


      Первоначально размещено: https://habrahabr.ru/company/smart_soft/blog/350964/


      Протестировать Traffic Inspector Next Generation в своей сети. 

      Бесплатно в течение 30 дней.

      Попробовать бесплатно
      Назад
      Далее
      Рекомендуем почитать Смотреть все

      История внедрения в «Московском городском Гольф Клубе»

      Теги: Traffic Inspector Next Generation, бизнес, кейс компании, SMS-идентификация, HoReCa, Wi-Fi авторизация

      Как организовать фильтрацию интернета в образовательном учреждении

      Теги: Информационная безопасность в образовательном учреждении, Traffic Inspector Next Generation, Контентная фильтрация

      На вкус и цвет UTM/NGFW есть: как выбрать защитное решение и не прогадать

      Теги: Сравнение UTM/NGFW, Traffic Inspector Next Generation

      Попробуйте бесплатно в течение 30 дней

      Traffic Inspector Next Generation подойдет и вашему бизнесу вне зависимости от его размеров. Убедитесь!
      Меню навигации
      Бесплатный звонок по России 8 800 511-05-81
      Сообщение отправлено
      Спасибо за заявку! Мы свяжемся с вами в ближайшее время.
      ОК
      Бесплатное 30-дневное тестирование
      TRAFFIC INSPECTOR NEXT GENERATION
      Вы получите
      полнофункциональный комплекс, сможете изучить удобный интерфейс и попробовать все средства защиты, такие как:
      Файрвол
      Антивирус
      Фильтрация трафика
      IDS/IPS
      и многое другое.
      Тестовое оборудование всегда есть на складе и мы предоставим его в кратчайшие сроки. Детали расскажет наш специалист — просто оставьте заявку!
      Бесплатное 30-дневное тестирование
      TRAFFIC INSPECTOR NEXT GENERATION
      Сообщение отправлено
      Благодарим за заказ! Менеджер свяжется с вами в ближайшее время.
      ОК
      Оформление заказа
      TRAFFIC INSPECTOR NEXT GENERATION
      Выберите устройство
      S100
      S500
      M1000
      L1000+
      Enterprise
      FSTEC
      Укажите количество
      Стоимость будет рассчитана специально для вас
      Оформление заказа
      TRAFFIC INSPECTOR NEXT GENERATION
      Сообщение отправлено
      Благодарим за заказ модуля! Менеджер свяжется с вами в ближайшее время.
      ОК
      Оформление заказа
      TRAFFIC INSPECTOR NEXT GENERATION
      Выберите модули
      Traffic Inspector Next Generation Anti-Virus powered by Kaspersky
      NetPolice для Traffic Inspector Next Generation
      Оформление заказа
      TRAFFIC INSPECTOR NEXT GENERATION
      Сообщение отправлено
      Спасибо за ваше обращение! Менеджер свяжется с вами в ближайшее время.
      ОК
      Заказ звонка
      TRAFFIC INSPECTOR NEXT GENERATION
      Заказ звонка
      TRAFFIC INSPECTOR NEXT GENERATION
      Сообщение отправлено
      Спасибо за ваш вопрос! Менеджер свяжется с вами в ближайшее время.
      ОК
      Задайте вопрос
      TRAFFIC INSPECTOR NEXT GENERATION
      Задайте вопрос
      TRAFFIC INSPECTOR NEXT GENERATION
      Сообщение отправлено
      Добро пожаловать в программу White Label! Мы свяжемся с вами в ближайшее время.
      ОК
      WHITE LABEL
      партнерская программа
      WHITE LABEL
      партнерская программа