Когда к нам в К2Тех пришла крупная энергетическая компания с задачей по замене Microsoft Teams на российское решение, мы сразу поняли, что это будет не рядовой рутинный проект. Заказчик — высокотехнологичная корпорация с очень специфичными требованиями, а ещё штатом продвинутых айтишников, которые знают, чего хотят, и не собираются идти на компромиссы.
Так как Microsoft в 2022 году объявил о прекращении своей деятельности в России, для многих компаний это стало серьёзным ударом. Хотя системы вроде Teams, Zoom и Skype for Business продолжали работать, их будущее стало крайне неопределённым, с рисками отключения в любой момент. Это затронуло и нашего заказчика — крупную энергетическую компанию. Им нужно было оперативно перевести всю экосистему унифицированных коммуникаций на российские решения. Причём речь шла не только о видеоконференциях, но и обо всей инфраструктуре UC (Unified Communications): чатах, календарях, интеграции с Outlook — всё это требовало замены.
Мы в К2Тех участвовали в тендере с платформой IVA. Почему именно она? На тот момент это было самое зрелое российское решение для ВКС. Оно уже имело хороший набор функций и гибкость для интеграции с инфраструктурой заказчика. Плюс на тот момент IVA Technologies стала лидером российского рынка видеоконференцсвязи (ВКС) по итогам 2022 года, возглавив рейтинг «Крупнейшие поставщики ВКС-решений в России» от CNews Analytics. У их основного конкурента, которого мы тоже рассматривали, TrueConf, в то время ещё не был реализован сервис синхронного перевода, а также недостаточно отработано решение по отказоустойчивости. Других же зрелых решений на рынке тогда и вовсе не было, поэтому выбирали из того, что доступно.
Но просто взять и заменить западные решения «из коробки» оказалось невозможно. Сказать, что это был амбициозный проект — ничего не сказать. География заказчика охватывала десятки площадок по России и за её пределами, включая США, Европу и ОАЭ. А про требования можно слагать легенды, впрочем, вы можете посмотреть на них сами.
Как всё начиналось: основные цели проекта
Заказчик хотел максимально безболезненно перейти с Microsoft Teams на IVA. Основные запросы были такими:
Замена Teams, Zoom и Skype for Business для пользователей в России и интеграция со Skype for Business.
Возможность подключать оставшихся пользователей Skype for Business в мероприятия, проводимые на IVA.
Географически распределённая система, включающая десятки филиалов в России.
Интеграция с внутренними сервисами: телефония, двухфакторная авторизация, чаты и календари.
Выполнение требований от ИБ по контролю за передачей информации и обменом файлами с использованием WAF, интеграция с SIEM, антивирусная защита.
Работа на тонких клиентах (VDI), где обработка данных идёт на серверах, а не на пользовательских устройствах.
Возможность проводить международные встречи с синхронным переводом.
По ссылке вы можете прочитать подробно весь список требований. Во многом он просто описывает функциональность уже готового решения с какими-то изменениями.
Это был не просто проект по замене одной системы на другую. Нам нужно было создать инфраструктуру, которая соответствовала бы ожиданиям заказчика по стабильности, безопасности и функциональности.
Поэтому проект стартовал с понятной и конкретной цели: полное импортозамещение зарубежных UC-решений на отечественное решение IVA MCU. Ключевым требованием было сохранение привычной для пользователей функциональности. То есть, работая в новой системе, они не должны были ощущать разницы в удобстве.
Мы выделили несколько ключевых задач:
Развернуть систему в формате on-premise, чтобы данные оставались внутри корпоративного периметра.
Интегрировать IVA с существующими корпоративными сервисами: Active Directory, Exchange, SIEM и WAF.
Обеспечить совместимость с устаревшими клиентами, такими как Outlook 2016, которые активно использовались заказчиком.
Поддержать работу пользователей через тонкие клиенты (VDI) и геораспределённую сеть, включая зарубежные филиалы.
Подготовка проекта
Работа началась с предпроектного обследования. Это был важный этап, на котором мы анализировали текущую инфраструктуру заказчика и собирали их требования. Стало понятно, что стандартный набор функций не закроет всех нужд. Например, заказчик ожидал, что система будет поддерживать работу через тонкие клиенты (VDI), что было особенно критично, т.к. у более чем тысячи сотрудников именно так было организовано рабочее место. Также важной задачей стала интеграция с такими корпоративными системами, как Active Directory, Exchange и SIEM, а также настройка взаимодействия с Web Application Firewall (WAF) для анализа передаваемых данных.
Скрытый текст
План внедрения решения UC
Этап 1. Проектирование и внедрение целевой системы
1.1. Проектирование целевой системы
1.1.1. Проведение предпроектного обследования.
1.1.2. Проектирование ИТ-решения и интеграционных потоков в объёме технического задания (ТЗ).
1.1.3. Разработка проектной документации (ПЗ) на внедрение решения UC в головной организации (ГО).
Срок выполнения: 90 дней.
1.2. Внедрение решения UC в ГО
1.2.1. Развертывание ядра системы.
1.2.2. Интеграция с корпоративными системами.
1.2.3. Подготовка пакета клиентского ПО IVA для SCCM и настройка автоматизации обновления клиентского ПО IVA.
1.2.4. Формирование описания настроек инфраструктуры для использования клиента IVA в среде VDI Заказчика.
1.2.5. Передача системы в опытную эксплуатацию.
1.2.6. Разработка пакета эксплуатационной документации.
1.2.7. Разработка пакета документации для передачи на сервис.
1.2.8. Проведение консультационных семинаров для администраторов и операторов.
1.2.9. Передача системы в промышленную эксплуатацию.
Срок выполнения: 90 дней.
Этап 2. Масштабирование на предприятия Холдинга
2.1. Развертывание региональных узлов.
2.2. Адаптация клиентского ПО для SCCM (при необходимости).
2.3. Корректировка пакета эксплуатационной документации (при необходимости).
2.4. Корректировка пакета документации для передачи на сервис (при необходимости).
2.5. Передача системы в опытную эксплуатацию.
2.6. Разработка пакета документации для развития системы.
2.7. Передача системы в промышленную эксплуатацию.
⏳ Срок выполнения: 120 дней.
Развёртывание проекта
После проектирования начался этап развёртывания. Серверы IVA MCU были установлены в головном офисе компании, а затем в нескольких регионах России. Это обеспечило возможность локальной обработки медиа-трафика, что позволило минимизировать задержки и повысить стабильность работы. Установка производилась с использованием образов, что упростило процесс. Платформа была интегрирована с Active Directory для управления пользователями, с Exchange для работы с корпоративной почтой и с SIEM для мониторинга безопасности.
Особую сложность представляла интеграция с WAF Citrix Netscaler (Web application firewall). Это инструмент для фильтрации трафика, работающий на прикладном уровне и защищающий веб-приложения методом анализа трафика HTTP/HTTPS и семантики XML/SOAP. Так как на момент внедрения IVA еще не умела интегрироваться с DLP системами (Data Loss Prevention — специализированное программное обеспечение, предназначенное для защиты компании от утечек информации) и не имела возможности гибко настроить политики по отправке вложений, то было принято решение использовать WAF для анализа вложений в чатах. Конечно же, WAF Citrix Netscaler не разрабатывался для работы с IVA MCU, которая, в свою очередь, также не поддерживала совместное взаимодействие.
Нам пришлось разобрать API IVA, чтобы проанализировать, в каких полях передается нужная информация, а затем скорректировать фильтры WAF для анализа, например, типов передаваемых файлов и блокировки их передачи при необходимости. Это потребовало несколько месяцев работы, но проблема была решена. Однако позже вендор обновил ПО и она появилась снова, но на этот раз помогла установка Kesl.
Проблемы и решения
Сложности с тонкими клиентами: поиск решений
Тонкие клиенты стали одной из самых сложных задач проекта. Если на обычных десктопах система работала безупречно, то на тонких клиентах (VDI), которые активно использует заказчик, возникли сложности. Особенностью инфраструктуры заказчика была ориентация на VDI, что позволяло переносить основную нагрузку на серверы, но создавало проблемы для ресурсоёмких приложений, таких как видеоконференции. Мы потратили очень много ресурсов, но заставить работать IVA на VDI не смогли, даже с привлечением вендора.
У нас теперь даже есть официальное письмо о том, что она так не может по причине необходимости разработки специального драйвера. Драйвер разработан иностранным вендором, что, разумеется, в текущих условиях связано с рядом характерных проблем. Стали тестировать звонки со Skype for Business на VDI и IVA и поймали, что нет прохождения медиа. Начали копать глубже и нашли, что до этого такую же историю поймали в Cisco.
Мы попытались решить проблему на своей стороне, для чего долго анализировали логи и в итоге выявили причину. При сравнении хорошего и плохого сценариев в последнем были обнаружены ошибки следующего типа:
medialib.stun debug: ^^^ Got STUN response from 10.72.142.21:10846 on 10.107.0.17:15788 UDP [audio STUN-RTP-RX], tid=2112A4422E4F94E07D8C3C50ABBC2154
medialib.stun debug: audio STUN-RTP-RX: auth failed on STUN reply — discarded, our password='f85vo/A7qVGTjFVeEz+Yf2A'
medialib.stun debug: ^^^ Got STUN response from 10.72.142.21:10846 on 10.107.0.17:15788 UDP [audio STUN-RTP-RX], tid=2112A44223C7154FF94DB98EB0EA8DAF
medialib.stun debug: audio STUN-RTP-RX: auth failed on STUN reply — discarded, our password='f85vo/A7qVGTjFVeEz+Yf2A'
Что говорит о некорректной работе протокола STUN/TURN (ICE) между MS и IVA. Компания Microsoft использует свою проприетарную версию протокола ICE, который описан на сайте вендора. Полагаем, что в одной из версий протокола, выпущенных после релиза SFB от 01.12.2020 г., были внесены изменения, устраняющие существующую проблему несовместимости.
В общем-то, что поделать. Рекомендуем обновить используемые версии SfB и Citrix HDX Connector до текущих. И тогда всё работает.
С этими версиями все работает ОК!
Настраиваемая блокировка передаваемых файлов
Мы реализовали многоуровневый подход, используя как настройки веб-сервера, так и возможности Web Application Firewall (WAF) Citrix Netscaler.
На уровне NGINX
Для блокировки файлов по расширению мы настроили правила в конфигурации NGINX. Этот метод использовался для фильтрации запросов, где имя файла указывалось в URL. Например:
location ~* \.(bat|ps1)$ {
deny all;
return 403;
}
Это простое, но эффективное решение позволяло мгновенно блокировать опасные файлы.
Анализ на уровне WAF
В случаях, когда имя файла передаётся не в URL, а в теле запроса (JSON), мы использовали возможности Netscaler для анализа содержимого запросов. Например, для анализа заголовка Content-Disposition, где указывается имя файла:
http.req.header("Content-Disposition").exists && http.req.header("Content-Disposition").contains(".bat")
Это правило применялось для фильтрации файлов, таких как .bat и .exe, передаваемых внутри JSON.
Так же мы разработали фильтр для Netscaler, который обрабатывал сложные запросы, включая такие случаи:
HTTP.REQ.HEADER("host").SET_TEXT_MODE(IGNORECASE).EQ("IVA_URL") &&
HTTP.REQ.URL.PATH.SET_TEXT_MODE(IGNORECASE).GET(1).EQ("services") &&
HTTP.REQ.URL.PATH.SET_TEXT_MODE(IGNORECASE).GET(2).EQ("resource") &&
HTTP.REQ.BODY(1000).CONTAINS_ANY("iva_meet_extension")
Здесь iva_meet_extension — набор шаблонов, описывающих блокируемые типы файлов. Это решение позволило эффективно контролировать трафик на уровне WAF. В результате такой гибкости система блокировала опасные файлы как на этапе запроса, так и при анализе содержимого.
Сейчас уже часть задач можно решить средствами самой IVA, однако для более глубокого или детального анализа есть возможность использовать сторонние системы, такие как WAF. Однако на момент реализации решения ещё не было интеграции с DLP, и нам пришлось это решать.
Синхронный перевод: важный шаг вперёд
Одной из самых уникальных функций, которую заказчик требовал от системы, стал синхронный перевод. Компании было важно, чтобы переводчики могли работать в разных звуковых каналах, а пользователи могли выбирать, на каком языке слушать трансляцию. Эта функция критически важна для международных встреч, где участвуют топ-менеджеры из разных стран.
В Teams и Zoom такая возможность реализована «из коробки». У IVA он тоже есть, но требовались доработки. Чувствительный слух тестировщиков уловил эхо. Если слушать один канал на громкости 100%, а второй – не более 20%, то эха нет, а вот если оба по 100 или 100+50, то эхо проявляется. Совместно с вендором мы разработали решение, которое позволило подключать несколько звуковых каналов и регулировать их громкость, чтобы пользователи могли слушать как оригинальный звук, так и перевод, подстраивая баланс. Что мы сделали:
Разделили дорожки оригинальной речи и перевода, добавив возможность снижать громкость оригинала вплоть до 0%.
Внесли изменения в настройки аудиопотоков, чтобы устранить дублирование звука.
Несмотря на то, что всё работало и проблема проявлялась только при специфических настройках на уровне пользователя, вендор поставил доработку в roadmap с высоким приоритетом. Алгоритм микширования аудиопотоков был переработан в очень сжатые сроки, чтобы исключить дублирование звука между каналами. После обновления до релиза IVA MCU 21.3 проблема эха была полностью устранена, и функция синхронного перевода стала удобной и качественной для пользователей.
Геораспределённая инфраструктура: как мы охватили весь мир
Для заказчика важно было, чтобы система работала стабильно не только в России, но и за её пределами. Филиалы компании находятся в США, ОАЭ, Европе и Латинской Америке. Мы развернули географически распределённые серверы в ключевых точках: Москве, Красноярске, Ленинск-Кузнецком и Усолье. Это позволило обрабатывать медиа-трафик локально и снизить нагрузку на центральные узлы. Одним из ключевых преимуществ такой архитектуры является возможность условно-бесплатного добавления медиа-серверов в инфраструктуру. Эти серверы не требуют лицензирования. Для масштабирования достаточно выделить дополнительные ресурсы — CPU и оперативную память. Это открывает путь к горизонтальному масштабированию без ограничений: новые серверы можно добавлять в зависимости от потребностей, увеличивая производительность и пропускную способность системы практически без дополнительных затрат.
Для распределения нагрузки и улучшения работы пользователей была настроена автоматическая балансировка и каскадирование. Это позволило системе масштабироваться под растущие потребности компании. В процессе эксплуатации мы следили за нагрузкой на систему и отмечали присутствие в собраниях порядка 850 участников одновременно, при этом мы наблюдали загрузку серверов не более 15%. Это говорит о том, что решение имеет большой потенциал по росту нагрузки, и в случае дальнейшего масштабирования на другие филиалы или роста нагрузки заказчику не придется выделять дополнительные ресурсы для обеспечения работы системы
Система была масштабирована для работы с десятками тысяч пользователей, включая международные филиалы заказчика. Мы развернули географически распределённые серверы, чтобы обрабатывать трафик локально, снижая нагрузку на центральные узлы. Особое внимание уделялось балансировке нагрузки, однако на этапе подключения пользователей мы столкнулись с неожиданной проблемой. Из-за большого числа сокетов, открытых клиентами, возникала «взрывная» нагрузка, но, как оказалось, причиной была вовсе не логика работы серверов.
Основной задачей было выявить причину проблемы и донести её до заказчика. Оказалось, что весь трафик на IVA был направлен через WAF, который не справлялся с таким объёмом. После анализа было принято решение оставить на WAF только трафик из внешней сети, а запросы от внутренних пользователей направить напрямую. В большинстве случаев фокус внимания сосредоточен на анализе трафика, покидающего пределы компании, что позволяет оптимизировать нагрузку и повысить эффективность работы системы.
Интеграция с Outlook
Работа с корпоративной почтой через Outlook стала ещё одним вызовом. Из-за специфики используемых заказчиком версий Outlook 2016 и 2019 возникали ошибки, связанные с отображением событий, созданных в IVA MCU. Например, только первая встреча в серии регулярных мероприятий попадала в календарь, а у организатора встречи не синхронизировались данные между IVA и Outlook.
Мы решили эти проблемы совместно с вендором:
Оптимизация работы с устаревшими версиями Outlook. У некоторых пользователей заказчика использовались более старые версии Outlook, что вызывало сложности с синхронизацией встреч и отображением ссылок для подключения. Совместно с вендором мы внесли изменения, которые в обновлённой версии плагина (1.5.5) устранили эти проблемы. Теперь ссылки формируются корректно, а встречи отображаются стабильно как в IVA Connect, так и в календаре Outlook.
Доработка установки плагина. Из-за особенностей настроек инфраструктуры заказчика плагин версии 1.3.2 иногда устанавливался в папки с ограниченными правами для пользователей. Это вызывало затруднения с доступом к функциональности плагина. Для решения этой проблемы был внедрён ключ TARGETDIR, который позволяет задавать директорию установки вручную, гарантируя доступность плагина для всех пользователей.
Эти доработки сделали использование системы более удобным и снизили нагрузку на техническую поддержку заказчика.
Раскатка приложения через MS SCCM
Для массовой установки клиентского приложения IVA Connect мы использовали Microsoft SCCM. Инсталлятор был настроен с параметрами, которые позволили автоматически указать логин, хост и параметры запуска. Пример команды:
msiexec /i "IVA Connect-15.0.2050.msi" LOGIN="ivan.ivanov@iva.ru" HOST="ivcs.hi-tech.org" STARTUP=1 LAUNCH=1
Это решение позволило значительно ускорить процесс развертывания системы на тысячах рабочих станций.
Двухфакторная авторизация через Multifactor.ru
У заказчика изначально не было двухфакторной авторизации, но внедрить её было крайне желательно. Решение должно было быть простым, удобным и, по возможности, бесплатным. Элегантным выходом из ситуации стало использование сервиса Multifactor.ru, который предложил сам заказчик. Это позволило быстро интегрировать 2FA в существующую систему без лишних затрат, сделав доступ к сервису не только безопаснее, но и более привлекательным для конечных пользователей.
Интеграция была выполнена без серьёзных проблем. Решение прекрасно заработало «из коробки» и обеспечило высокий уровень безопасности.
Итоги
Проект оказался сложным, но успешным. Мы смогли заменить Microsoft Teams и Skype for Business на отечественное решение, которое полностью соответствует требованиям заказчика. Система работает стабильно, поддерживает синхронный перевод, интегрирована с корпоративной инфраструктурой и обеспечивает высокий уровень безопасности. Вот лишь неполный список функций, которые были реализованы в процессе:
Персональные и групповые чаты
Опросы и голосования
Подключение из браузера (в т.ч. с мобильных устройств)
Обмен и хранение файлов
ВКС с гостевыми ссылками
Демонстрация документов, презентаций, видео рабочего стола
Белая доска, аннотации к документу
Видео/аудиозапись мероприятий
Личный кабинет, планирование мероприятий
Оповещение по почте, push-уведомления
Синхронный перевод
Двухфакторная авторизация
Планирование мероприятий из Outlook
Интеграция с корпоративной телефонией
Интеграция с SfB
Комната в комнате
Комната ожидания
Аутентификация saml 2.0 с внешним провайдером Аутентификации
На этапе промышленной эксплуатации мы выявили более 50 проблем, из которых большинство было решено в процессе внедрения, а остальные были взяты поставщиком решения в доработку в качестве roadmap. Ещё более 90 запросов на доработку были зафиксированы и переданы вендору. Все они тоже успешно решены и исправлены к текущему релизу.
Что дальше
IVA MCU продолжает развиваться. В планах:
Распознавание лиц для авторизации.
Интеграция с отечественной ОС «Аврора».
Поддержка чат-ботов и API для их интеграции.
Этот проект показал, что российские вендоры сейчас действительно активно включаются в работу и готовы дорабатывать свои решения под задачи конкретных заказчиков. Если всё грамотно спланировать и подходить к делу с чётким пониманием потребностей, то такие продукты вполне могут заменить западные аналоги. Да, где-то придётся что-то дорабатывать, где-то искать обходные пути, но результат того стоит — в итоге мы получили стабильное и удобное решение, которое полностью отвечает требованиям бизнеса.
VShushvalov
О, это та дырявая IVA, через которую кого-то взломали? https://xakep.ru/2023/02/14/stun-pentesting/
d2ab
По указанной ссылке про дырявость ничего не увидел, там ключевая фраза "неправильно сконфигурированный сервер".
VShushvalov
Ищущий да найдёт