Привет, Хабр! Почти 12 лет назад мы, компания Смарт-Софт, выпустили первую версию своего флагманского продукта Traffic Inspector. За это время он превратился из обычного прокси-сервера в универсальный шлюз безопасности, сочетающий в себе функционал прокси, почтового, антиспам, веб серверов со служебными модулями Phishing Blocker, RBL, RAS Dialer, плагином фильтрации контента NetPolice, продвинутой системой биллинга, прошедшей сертификацию ССС и ФСТЭК, и возможностью учёта разных типов трафика (IMAP, SMTP, POP, NAT и прокси).

Как и в любом серьезном продукте, в Traffic Inspector с течением эволюции наблюдались недостатки. Сегодня мы резюмируем работу над ошибками, которая была проведена специалистами нашей компании за последние пару лет.



Низкая стабильность Traffic Inspector


Центральный компонент Traffic Inspector – сетевой драйвер, отвечающий за непосредственное снятие данных о трафике и их передачу в службу программы. Код драйвера выполняется в kernel mode, и любые ошибки здесь чреваты «падением в синий экран», принудительной перезагрузкой и потерей всех несохраненных данных. Для клиентов важно, чтобы с программой подобного класса (интернет-шлюз) можно было работать по принципу «поставил – настроил – забыл». Был проанализирован код и сообщения об ошибках, проблема низкой стабильности драйвера была успешно решена в начале 2014 – «синие экраны» теперь редкое явление.


Остальные скриншоты приложения

Александр Ямашкин, руководитель департамента разработки, о работе драйвера:

Известно, что чем ниже уровень эталонной модели (OSI), на котором реализуется защита, тем она прозрачнее для приложений. Однако, при снижении этого уровня уменьшается набор доступных механизмов и выше «цена ошибки». Для гарантированного анализа всех пакетов, проходящих через сетевые интерфейсы, выбран NDIS, относящийся к канальному уровню, но ценой ошибки был BSOD. Мы потратили много времени, анализируя ошибки, для того, чтобы с большой долей уверенности говорить о том, что в данный момент проблемы с драйвером возможны только при конфликте с драйверами сторонних разработчиков.

Низкая производительность Traffic Inspector


64-битные процессоры появились еще в 2003 году. При этом в Smart-Soft служба Traffic Inspector оставалась 32-битой еще долгие десять лет, что часто являлось причиной недовольства программой среди системных администраторов. 32-битные платформы и ПО имеют ряд существенных ограничений: поддержка не более 4 ТБ места на жестком диске, поддержка не более 3 ГБ оперативки и не более 2 ГБ для user space приложения. Прокси-сервер Traffic Inspector (реализованный как часть службы) рассчитан на активное использование доступной памяти. 32-битная версия службы зачастую быстро «съедала» ограниченные ресурсы памяти, упиралась в потолок памяти, программа не могла открыть в системе более 4096 потоков, система под нагрузкой подвисала и прокси начинал сильно тормозить. Важнейшее усовершенствование программы – релиз 64-битной версии службы, вышедший в конце 2013 года. В новой версии существует как x86, так и x64 версии и пользователь сам определяет, какую ставить. О былых проблемах с памятью можно забыть, а прокси теперь с легкостью обрабатывает до 1000 одновременных HTTP-запросов.

Александр Ямашкин о внедрении работы на 64-битных платформах:

Сейчас существует как 32-битные, так и 64-битные версии программы, и пользователь сам определяет, какую ставить (на данный момент 70-80% установок приходится на 64-битную). Использование последней снимает ограничения, накладываемые операционной системой на объем памяти в 2 Гб, которая может быть выделена процессу, а следовательно отсутствуют ошибки, возникающие при невозможности выделить процессу очередной блок памяти.

Медленный веб-портал и отчетность в Traffic Inspector


Веб-портал Traffic Inspector обеспечивает генерацию отчетов функционирования сети и прочих аспектов сетевой статистики. Многие клиенты приобретали Traffic Inspector именно для этого – сбора статистических данных и составления отчетов. Можно было понять их разочарование, когда процесс формирования даже простенького отчета мог затянуться на долгое время. Данную проблему удалось побороть путем перевода веб-портала на PHP и сопутствующие технологии.

Александр Ямашкин о переводе портала на PHP:

До версии 3.0.1 портал был написан на С# c использованием .Net Framework. Кроме смены интерпретатора, была реализована служба подготовки отчетов, в которую была вынесена вся логика формирования отчетов. На портал сейчас легла только одна функция – GUI.

Кроме ускорения работы портала было введено распределение баз данных, хранение данных за большой период времени:

При необходимости хранения данных за большой интервал мы рекомендовали использование СУБД сторонних разработчиков. Но даже с ними периодически возникали проблемы. Представьте объем сложностей при обслуживании БД размером в 1.5 ТБ в MS SQL, при том что 90% этих данных не используется. Поэтому в 3.0.2 был реализован механизм деления БД, когда по завершению периода (месяц / квартал / полугодие / год – задается администратором) БД, в том числе SQLite, отключается от оперативной работы и используется только при запросе отчетов за указанный период.



Простота использования Traffic Inspector


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

Заметно изменился интерфейс Traffic Inspector. Теперь пользоваться различными элементами программы стало проще и удобнее. В новой структуре консольного дерева элементы расположены более логично и удобно. Полностью переработано содержание страничек для основных узлов консольного дерева (Объекты, Учет трафика, Пользователи и группы, Правила, Сервисы, Настройки). Как результат, администратор программы Traffic Inspector получает простой и удобный контроль над всеми возможностями программы, исчерпывающую информацию о ее настройках и ссылки для решения основных задач администрирования. Новая система добавления пользователей и ряд визардов максимально упрощают первоначальную настройку программы.

Александр Ямашкин о новой системе добавления пользователей:

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

Новое в Traffic Inspector 3.0.2


Последние изменения в программе прокомментирует руководитель департамента разработки Александр Ямашкин:

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

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

Дальнейшие планы по изменению Traffic Inspector


Об этом расскажет Александр Ямашкин и Вайдас Дамошявичюс, технический директор и партнер компании Смарт-Софт.

Александр Ямашкин:

Очень хочется сделать процесс создания правил доступа к информационным ресурсам предельно простым и понятным как искушенному, так и начинающему администратору.

Вайдас Дамошявичюс:

Сейчас мы активно исследуем технологические решения для классификаций пакетов на седьмом уровне (Layer 7) — ищем то, что могли бы интегрировать в Traffic Inspector. После успешной интеграции нашим пользователям мы представим новый функционал. Когда это будет? Тогда, когда мы сами будем довольны результатами интеграции, так как для себя ставим высокие качественные показатели. Мы также не забыли про отчёты — хотим их усовершенствовать и сделать не просто отчётами, а набором аналитических средств, которые помогут системным администраторам отслеживать и следить за аномалиями в сети.

Заключение


Компания Смарт-Софт учла недостатки своего ПО и провела работу по устранению. Программа перебралась на 64-битную платформу, значительно повысив производительность отдельных компонентов. Многочисленные исправления и дополнения коснулись большинства аспектов работы программы. Новый Traffic Inspector – многофункциональный интернет-шлюз нового поколения с современным функционалом, но в тоже время понятным каждому пользователю интерфейсом.

PS: Если есть что-то, о чем мы не сказали, пожелания по исправлению, – будем рады вашим комментариям.

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


  1. STZ
    03.04.2015 14:31
    +2

    При интеграции с AD, Работает ли прозрачная авторизация в IE? Без необходимости установки доп программ на стороне клиента и внесения каких либо изменений (NTLMv2) в случае Windows 7 и выше.


    1. Smart_Soft Автор
      03.04.2015 14:41

      Да, работает всегда, если прописан прокси.


  1. HidX
    03.04.2015 15:08
    +1

    Можно ли шарить внутренние ресурсы во внешнюю сеть защищая их авторизацией Traffic Inspector? (К примеру в TMG есть такой функционал)


    1. Smart_Soft Автор
      03.04.2015 15:31
      +1

      Можно настроить проброс соответствующих портов (через мастер публикаций) и в правиле внешнего сетевого экрана указать для каких IP адресов будет реализован доступ. Или настроить VPN серевер на сервере с Traffic Inspector, после чего добавить пользователя, который будет авторизовываться в программе.


  1. m0n9oose
    03.04.2015 15:20
    -1

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


    1. Smart_Soft Автор
      03.04.2015 17:16

      Если Вы о клиентском агенте, то это и сейчас маленькое синее плавающее окошко, в котором подсчитывается трафик, можете смело использовать его старые версии, они по-прежнему совместимы с новым Traffic Inspector.


  1. galvanom
    03.04.2015 15:33
    +2

    32-битные платформы и ПО имеют ряд существенных ограничений: поддержка не более 4 ГБ места на жестком диске

    Это вы о чем? Если про размер файла, то это скорее ограничение файловой системы.


    1. Smart_Soft Автор
      03.04.2015 16:45
      +1

      Конечно, имелось ввиду ограничение 4 ТБ, а не ГБ, спасибо за помощь в устранении опечатки.


  1. r00tGER
    03.04.2015 15:58
    +6

    Отличная была программа для своего времени.

    А потом она просто стала не нужна.


  1. nikitosk
    03.04.2015 16:07

    Привет из 2003 :)


  1. yosemity
    03.04.2015 16:45
    +7

    Даже Керио и МС поняли, что шлюз под windows — плохая идея. Первые перешли на Linux, а вторые просто закрыли это направление. Был бы номер, если бы МС выпустила TMG на базе Linux :)


    1. Smart_Soft Автор
      03.04.2015 17:16
      +1

      Windows действительно сильно уступает Linux в вопросах маршрутизации. Именно поэтому перспективные разработки Traffic Inspector также будут под Linux. Но есть и обратная сторона медали в отечественном гос секторе, а также в секторе малого и среднего бизнеса практически повсеместно используется Windows и это далеко не всегда пережитки коммунизма и доисторической эпохи. Просто найти сисадмина, который профессионально будет обслуживать сервера на Linux за ту зарплату, которую там обычно предлагают (особенно в российской глубинке) не так-то просто. Вот и сидят на Windows, которая просто проще в базовой настройке с «0». А тот же гос сектор, так это и вовсе «темный лес» с кучей законов, которые не так-то и просто соблюдать с Linux-шлюзами.


      1. yosemity
        03.04.2015 17:28
        +1

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

        По поводу госсектора у меня нет данных, но повода недоверять вам нет. Даже не сомневаюсь, что там все может быть печально. А если учесть необходимость сертифицирования ПО, то становится совсем грустно.


      1. TimsTims
        03.04.2015 21:54

        К слову о госсекторе — а сертификация у вас есть? Т.е. вполне себе официальный firewall?


        1. Smart_Soft Автор
          04.04.2015 10:58

          Сетевой экран сертифицирован ФСТЭК РФ, имеется также сертификат Минсвязи РФ.


  1. Darka
    03.04.2015 16:45
    +1

    Когда она уже научится нетфлоу принимать и считать?


    1. ximaera
      04.04.2015 15:03

      Если она хочет Layer 7 анализировать, то, видимо, никогда %-)


    1. Smart_Soft Автор
      04.04.2015 17:30
      +1

      Может кто-то не знает, но и NetFlow и SMNP было реализовано еще 5 лет назад. но т.к. мы не получили никаких отзывов при тестировании, весь этот функционал был отключен и скрыт.


  1. Neuronix
    03.04.2015 17:50
    +3

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


    1. realscorp
      04.04.2015 07:50
      +3

      Ну использовать винсервер как vpn — почему бы и нет? Не для всех сценариев, но для road-warrior — вполне, особенно с DirectAccess.


  1. Ivan_83
    03.04.2015 19:57
    +7

    Поздравляют, но надо было лет на 10 раньше!

    «32-битные платформы и ПО имеют ряд существенных ограничений: поддержка не более 4 ТБ места на жестком диске» —
    сомнительно.

    «поддержка не более 3 ГБ оперативки и не более 2 ГБ для user space приложения.» — Можно приложениям давать до 3 гб.

    «32-битная версия службы зачастую быстро «съедала» ограниченные ресурсы памяти, упиралась в потолок памяти, программа не могла открыть в системе более 4096 потоков» — Полный ахтунг!
    Учитесь программировать.

    «О былых проблемах с памятью можно забыть, а прокси теперь с легкостью обрабатывает до 1000 одновременных HTTP-запросов.»
    Достижение года 2005 на линуксах, поздравляю! :)

    «Многие клиенты, впервые столкнувшиеся с программой Traffic Inspector, часто говорили о большой сложности в ее освоении и непонятном интерфейсе.» — пусть нанимают специалистов :)

    Наваяли бы свой аналог микротика на базе фри/линуха уже давно, и сил бы потребовалось меньше, и работало бы намного лучше.
    Нынче поляну с DPI уже заняли, наши соотечественники тоже там есть со своим софтом под линукс, оно у них ещё по спискам РКН работает.


  1. EuroElessar
    03.04.2015 23:37
    +5

    32-битная версия <...> программа не могла открыть в системе более 4096 потоков <...>
    Важнейшее усовершенствование программы – релиз 64-битной версии службы <...> прокси теперь с легкостью обрабатывает до 1000 одновременных HTTP-запросов.

    Как вы этого добились, если не секрет? Nginx и мои собственные проекты, показывают, что 4 потоков достаточно для обработки нескольких сотен тысяч запросов в секунду. У вас же на 1000 запросов — более 4000 потоков. Я ни за что не поверю, что в Windows настолько не оптимальная сетевая подсистема.


    1. ValdikSS
      04.04.2015 13:20
      +4

      Вот действительно. 1000 соединений — вообще ничто для прокси, просто барби-сайз. А 4000 потоков, ну, не знаю, они, наверное, fork используют на каждое соединение до сих пор, если в 2015 году пишут о поддержке 64-бит.


    1. v0rdych
      04.04.2015 22:13
      +1

      Ну если с bsod'ами 10 лет боролись, то чему удивляться. Чем хорош был TI так это эккаунтингом, конечно. В 2004 даже купили в универ, эксплуатировал его. Но после 2008-9 (в наших краях) года с повсеместной широкополосностью даже не знаю кому бы он мог понадобиться :-) А вот со спутниковым инетом как-то его настраивал в 2007 году — все проклял. Так и не понял, то ли роутинг в винде криво отрабатывал, то ли TI все ломал…


  1. Spewow
    04.04.2015 09:30
    +1

    Есть ли возможность блокировать в трафике исполняемые файлы по сигнатуре?
    Есть ли возможность разбора https трафика для наложений правил фильтрации?
    Есть ли возможность разбора smtp трафика, для удаления нежелательных почтовых вложений?


    1. Smart_Soft Автор
      04.04.2015 15:02
      -2

      1) Исполняемые файлы можно блокировать по расширению.
      2) Глубокий анализ HTTPS пакетов пока в разработке. IP-правила будут работать и для HTTPS.
      3) Если речь идет о спаме или вирусных вложениях, то есть возможность блокировки на почтовом шлюзе.


      1. Spewow
        04.04.2015 18:04
        +1

        1. Надо по сигнатуре. По расширению не эффективно. tmg умеет например.
        Применение — для отрубания подкачки левой боевой нагрузки.

        3. Вычищать определенные почтовые вложения по расширению и вставлять alert об этом прямо в письмо. tmg опять же умеет.
        В идеале добавить так-же распаковку вложений популярных архиваторов и поиск и там «запрещенных файлов».
        Применение — для отсекания всяких js и exe троянов в архивах.


        1. Smart_Soft Автор
          06.04.2015 10:44

          Что подразумевается под «левой боевой нагрузкой» в данном контексте?


          1. Spewow
            10.04.2015 11:46

            Дроппер подкачивающий вредоносный софт. Софт — боевая нагрузка.


  1. ximaera
    04.04.2015 14:57
    +1

    Сейчас мы активно исследуем технологические решения для классификаций пакетов на седьмом уровне (Layer 7)

    Это оксюморон. Пакет — это тип данных на OSI Layer 3 и не более. На L4 вы оперируете сегментами, а начиная с L5 — потоками данных.


    1. Smart_Soft Автор
      05.04.2015 11:57
      -2

      «классификаций пакетов на седьмом уровне» — Layer 7 Packet Classification, L7 Packet Classification, Deep Packet Inspection, Layer 7 Visibility — и еще дюжина разных названий. Мы называем «классификация пакетов на седьмом уровне», чтобы было понятно, что мы хотим блокировать или видеть сетевую активность аппликаций, таких как Skype, WhatsApp, Dropbox и т.д.

      Layer 7 filtering or shaping is identifying traffic at layer 7 (Application Layer) of the OSI model. Instead of shaping/filtering based on the port and source/destination, a stream is identified based on its contents. This is also sometimes called deep packet inspection since it works by looking into the contents of the packets not just the headers.


  1. digger
    04.04.2015 15:09

    Для владельцев старых версий TI с синими экранами планируются какие-то интересные предложения по переходу на новую, помимо полной оплаты покупки новой версии с копеечной скидкой?


    1. Smart_Soft Автор
      04.04.2015 15:29

      Да, конечно. У нас регулярно проходят акции для владельцев старых версий Trafic Inspector (Lite, Pro, HomeNet) со скидкой до 50%. Для читателей Хабра — даем скидку 35% на обновление Traffic Inspector до последней версии, при миграции с аналогичных решений — 50%: код купона «habr2015» действителен до 15 апреля.


      1. Anghei
        06.04.2015 22:04

        Вам бы это в корень статьи вынести, а не в конец комментариев — авось кто-нибудь да заинтересуется


  1. ipswitch
    05.04.2015 11:24

    Адов StarForce ProActive убрали?


    1. Smart_Soft Автор
      06.04.2015 08:12
      -1

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


      1. StirolXXX
        06.04.2015 16:12

        VmProtect?


        1. Smart_Soft Автор
          07.04.2015 08:40

          Можете написать пример, где в сравнении с StarForce он будет эффективнее?