[recovery mode] Traffic Inspector: полная перезагрузка
Привет, Хабр! Почти 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: Если есть что-то, о чем мы не сказали, пожелания по исправлению, — будем рады вашим комментариям.