Работа с современной IT инфраструктурой практически невозможна или сильно затруднена без средств удалённого доступа и управления. Причём используют их как технические специалисты для обслуживания и настройки, так и обычные пользователи для повседневной работы. Я расскажу про один из таких инструментов — TrustViewerPro, который позволяет на своих серверах развернуть полноценную систему подключения к удалённым компьютерам и серверам.
Введение
Основные потребители средств для удалённого подключения к экранам компьютеров — пользователи и техподдержка, которая этим пользователям помогает. В этом сегменте очень плотно обосновались некоторые популярные бренды. Наиболее известные — Teamviewer и AnyDesk. С некоторых пор работать с ними стало проблематично. Мало того, что в РФ затруднительно или вовсе невозможно приобрести их лицензии, так ещё и бесплатное использование этих продуктов стало сильно ограничено.
В связи с этим возникло очень много аналогов, в том числе полностью российского производства. Про один из них я подробно расскажу далее. Речь пойдёт про TrustViewerPro. С помощью этого ПО можно организовать подключение к рабочим станциям на базе Windows и Linux. Причём, как с помощью соединения через внешние сервера разработчика, так и развернув всю необходимую инфраструктуру внутри своей сети и на своём оборудовании.
Возможности TrustViewer
Как я уже сказал, TrustViewer — полностью российское программное обеспечение удаленного управления компьютерами. Включено в единый реестр российских программ для электронных вычислительных машин и баз данных. Оно существует в двух редакциях:
- TrustViewer — некоммерческая версия, которая полностью бесплатна. Не требует установки и регистрации. Её можно просто скачать, запустить, получить ID код для подключения к компьютеру через публичные сервера разработчиков.
- TrustViewerPro — коммерческая версия, которая в том числе имеет бесплатный тарифный план, который позволяет развернуть у себя собственный сервер TrustServer и использовать до 10-ти подключенных к нему устройств.
В общем и целом TrustViewerPro имеет те же возможности, что большинство аналогичного софта: передача файлов, видео и аудио общение, текстовый чат и т.д. Я отмечу то, что наиболее интересно, либо имеется не у всех.
- В TrustViewerPro встроена возможность будить оборудование с помощью Wake On LAN, а также групповое выполнение и запуск скриптов, в том числе для установки ПО, изменения настроек приложения TrustViewer.
- Есть возможность использовать как отдельный сеанс пользователя, так и подключиться в его сессию по RDP.
- В систему встроены базовые возможности HelpDesk, в том числе API для интеграции с внешними системами регистрации заявок.
- TrustViewerPro позволяет гибко управлять правами пользователей системы, объединять компьютеры в группы и назначать групповые права. Выполнять те или иные действия для отдельных групп компьютеров.
- Есть возможность ведения логов сеансов связи, записывать сеансы и хранить их на внешних дисковых хранилищах.
- У TrustViewerPro есть централизованная система обновления клиентских приложений.
- При использовании собственного сервера TrustServer нет никакой привязки к внешним серверам. Все подключения проходят через вашу инфраструктуру.
- Интеграция с Active Directory — поддержка автоматического представления парка компьютеров в виде структуры Active Directory, в соответствии с правами администратора Active Directory.
- Возможность построения сложных отчетов с последующей их выгрузкой в формат .csv. Например, можно выгрузить список всех компьютеров, входящих в отдел "Бухгалтерия", которые не включались более двух дней.
- С помощью брендирования можно создать своё оформление и добавить баннер в клиентские модули.
- Очень маленький объём дистрибутивов. Клиент весит примерно 2,5 Мб, сервер - 1 Мб. Я вообще не понимаю, как такое возможно в 2023 году.
- Управление сервером осуществляется через браузер.
- Организация туннеля для подключения к компьютеру по RDP на основе соединения с TrustServer.
Важной особенностью использования TrustViewerPro является возможность поднять свой собственный сервер для подключений. Эту функциональность я подробно рассмотрю далее. Разверну серверную часть на своём оборудовании и покажу вам, как это сделать. Также выполню базовую настройку сервера и проверю работу через него.
Установка и настройка TrustServer
Системные требования
Системные требования у TrustServer очень простые. Подойдёт практически любой x86 процессор, 128 Мб оперативной памяти и 10 Мб на диске. В качестве системы может использоваться Windows XP SP3 и любая редакция выше, а также практически любой дистрибутив Linux. Сам сервер представляет из себя один исполняемый файл. В системе Windows он запускается как обычная программа, работающая в фоне. В Linux в виде типичного демона. Настройки передаются с помощью ключей командной строки.
Установка на Windows
Для установки на любую Windows машину достаточно настроить запуск программы в фоне. Проще всего воспользоваться стандартным планировщиком Windows. Создайте отдельную директорию, например C:\TrustServer и скопируйте туда исполняемый файл Trustserver.exe. Создайте задание планировщика, которое будет выполняться при запуске системы. Можно использовать как системную учётную запись, так и создать отдельного пользователя для запуска сервера. Для промышленной эксплуатации лучше использовать отдельного пользователя. На тесте я запустил от System. В качестве системы использовал Windows Server 2019.
Для запуска сервера надо использовать некоторые обязательные ключи. Я настроил запуск с ключами:
C:\TrustServer\Trustserver.exe start -port 8443 -whost trustserver -pass 123456
Передал имя сервера и пароль для доступа в админку. Получилось примерно так:
Запустил задание и тут же браузером на сервере открыл страничку http://localhost:8443/Admin. Увидел приветствие веб интерфейса.
Для входа используйте встроенного пользователя root и указанный в параметрах запуска пароль. В моём случае 123456. Это временный пароль для первичной настройки сервера, который будет действовать только до тех пор, пока вы не создадите учётную запись супер-администратора. После этого учётка root блокируется. Более подробно первичную настройку я рассмотрю далее. Вы должны увидеть стандартный дашборд сервера.
В веб интерфейсе полный минимализм. Не забываем, что сервер весит менее 1 Мб.
Установка на Linux
Для запуска сервера на Linux достаточно скопировать бинарник, например в директорию /opt/trustserver, и запустить через systemd. Для этого создадим unit:
[Unit] Description=TrustServer After=syslog.target network.target [Service] Type=forking WorkingDirectory=/opt/trustserver/ User=trustserver Group=trustserver ExecStart=/opt/trustserver/trustserver64 start -port 8443 -whost trustserver -pass 123456 ExecStop=/opt/trustserver/trustserver64 stop TimeoutSec=60 [Install] WantedBy=multi-user.target
Копируем его в /etc/systemd/system. Создаём отдельного пользователя и назначаем соответствующие права:
# useradd trustserver # chown -R trustserver:trustserver /opt/trustserver # chmod +x /opt/trustserver/trustserver64
Перечитываем параметры systemd, запускаем службу и добавляем в автозагрузку:
# systemctl daemon-reload # systemctl start trustserver # systemctl enable trustserver
Проверяем запуск:
# systemctl status trustserver # ss -tulnp | grep trustserver udp UNCONN 0 0 0.0.0.0:51227 0.0.0.0:* users:(("trustserver64",pid=1408,fd=9)) udp UNCONN 0 0 0.0.0.0:49243 0.0.0.0:* users:(("trustserver64",pid=1408,fd=3),("trustserver64",pid=1407,fd=3)) udp UNCONN 0 0 0.0.0.0:33469 0.0.0.0:* users:(("trustserver64",pid=1408,fd=6)) udp UNCONN 0 0 0.0.0.0:27463 0.0.0.0:* users:(("trustserver64",pid=1408,fd=7)) tcp LISTEN 0 1024 0.0.0.0:8443 0.0.0.0:* users:(("trustserver64",pid=1408,fd=8))
Всё в порядке, сервер запустился. Можно переходить в веб интерфейс: http://10.20.1.36:8443/Admin и использовать встроенную учётку root и указанный пароль.
Базовая настройка
В промышленной эксплуатации рекомендую использовать доверенные tls сертификаты, которые можно задать через параметры командной строки. Поддерживаются в том числе шифрованные сертификаты. Используйте для этого следующие ключи:
- -cert <name> — Установить путь к файлу SSL-сертификата
- -key <name> — Установить путь к файлу ключа SSL
- -keypass <txt> — Указать пароль к ключу SSL
Полный список всех ключей представлен в документации, которая загружается вместе с дистрибутивами. Перечислю несколько наиболее актуальных, которые имеет смысл сразу изменить под свои условия:
- -localproxy — Блокировать все интернет-подключения к серверу (режим работы сервера только в LAN)
- -log <name> — Установить путь к файлу журнала (по умолчанию файл журнала создается автоматически в папке размещения исполняемого файла сервера)
- -data <name> — Установить путь к каталогу с данными сервера (по умолчанию структура каталогов, содержащая все необходимые для работы сервера файлы, создается автоматически, в папке размещения исполняемого файла сервера)
Первым делом необходимо сразу же добавить нового пользователя-администратора. После этого встроенный пользователь root перестанет работать. Сделать это можно в соответствующем разделе Users.
В разделе Settings измените настройки в зависимости от ваших потребностей:
- TrustServer auth mode — разрешать аутентификацию только через LAN или через WAN тоже.
- TrustServer auth page name — можно указать случайное имя для веб интерфейса администратора, чтобы скрыть его от посторонних глаз.
- Centralized recordings storage — настройте параметры сохранения сессий.
В Branding можно настроить брендирование панели администратора. В разделе Updates по умолчанию настроено автоматическое получение обновление клиентов и сервера. Думаю, имеет смысл переключить на ручное. В целом, настроек не много. По смыслу понятно, о чём идёт речь, так что я не буду подробно на них останавливаться. Более того, они все перечислены в документации. Перейдём к более прикладным вопросам по подключению клиентов и настойке прав доступа.
Подключение клиентов
Как я уже говорил ранее, клиенты для TrustViewer есть как для Windows, так и Linux. Система Windows поддерживается, начиная с версии Windows XP SP3. На момент написания статьи клиент под Linux был в состоянии беты, но вся основная функциональность работала, если передать настройки через параметры установки клиента. Можно было подключаться по ID и выполнять управление. В самом клиенте пока нет графического раздела с параметрами, где их можно задать или изменить.
Дистрибутивы клиента TrustViewerPro представлены в варианте портативной версии программы, устанавливаемой с помощью встроенного мастера, а также в варианте msi-пакета, с возможностью как настройки параметров инсталляции непосредственно в самом пакете, так и передачи параметров в командной строке во время установки. Готовые дистрибутивы можно сгенерировать самостоятельно в панели управления TrustServer.
После генерации клиенты автоматически загружаются через браузер. Можно сразу же запустить портативную версию, и она автоматически подключится к преднастроенному серверу.
При необходимости настройки можно будет переназначить через само приложение. Для того, чтобы подключаться к другим компьютерам, зарегистрированным на сервере, вам необходимо авторизоваться на сервере с помощью клиента.
После этого вы сможете подключаться к другим компьютерам, указывая их ID.
По умолчанию у пользователя, к которому вы подключаетесь, появится запрос на разрешение вашего подключения.
При этом он самостоятельно может сформировать пароль для постоянного доступа и сообщить его вам.
Я уже частично упоминал, что TrustViewerPro поддерживает различные варианты подключения к компьютеру:
- подключение через ID с подтверждением и без;
- неконтролируемый доступ через специальный раздел в приложении;
- в режиме файлового менеджера;
- в режиме RDP сеанса;
- в режиме видео и аудио звонка.
Так выглядит само подключение к удалённому компьютеру. Его можно развернуть на весь экран, убрать боковую панель.
Если на сервере настроена запись, то посмотреть её можно через свой клиент при наличии соответствующих прав.
Очень понравилась эта возможность. Сделано удобно. Записи хранятся на сервере в рабочей директории. По идее, они будут занимать много места, так что можно через символьную ссылку вынести их куда-то на NFS сервер. Ну или в эту виртуальную машину добавить диск достаточного размера.
Я не знаю, какая технология используется для передачи картинки. Субъективно не хуже AnyDesk или Teamviewer и лучше, чем то, что я обычно вижу в getscreen, которым иногда пользуюсь. Я тестировал на довольно слабом мобильном интернете, но управлять компьютером было комфортно. Причём я подключился в существующую RDP сессию, что очень удобно. То есть с помощью TrustViewerPro можно как в локальные сеансы подключаться, так и в RDP сессии пользователей.
Управление пользователями и правами
В системе по умолчанию присутствует набор базовых прав доступа для пользователей. Я не буду перечислять их и приводить описание, так как оно занимает значительный объём и есть в документации. Перечислю только роли, которые реализуются с помощью набора этих прав:
- User — обычный авторизованный пользователь, которому разрешены простые подключения и просмотр своих записей.
- Operator — разрешены аудио и видео звонки, разрешена демонстрация и полный доступ к своему рабочему столу, разрешён неконтролируемый доступ через безопасные контакты.
- HelpDesk — может принимать от пользователей заявки, подключаться к пользователям с правами Оператор.
- Administrator — полный доступ либо ко всем записям, либо к записям разрешённых департаментов, доступ к компьютерам без запроса, возможность отправлять компьютерам команды, сообщения, обновления ПО, сигналы WOL, настройки программы.
Я описал не полные наборы прав, а выборочно, чтобы у вас было представление о типах ролей.
Разрешения на доступ к отделам/компьютерам позволяют указать группы или отдельные компьютеры, к которым разрешен доступ для данного пользователя в рамках его базовых прав. Если разрешения не заданы явно, то считается, что пользователю разрешен доступ ко всем компьютерам, но только в рамках его прав. Например, если разрешения не заданы явно (и соответственно пользователю разрешен доступ ко всем компьютерам), но у пользователя нет прав администратора сети, то данный пользователь не сможет получить доступ к компьютерам сети.
Зарегистрированные компьютеры видны в панели управления, в том числе со своими IP и MAC адресами, если речь идёт о сегменте локальной сети. Права доступа можно настраивать в том числе с учётом MAC адреса.
Для того, чтобы компьютеры появились на сервере, клиенты должны быть установлены на машины и произведена авторизация с групповой учётной записью для компьютера. Групповые учётные записи позволяют задать базовый набор настроек машины в части разрешённого доступа к ней. Можно сразу указать, что к этой группе компьютеров возможен только доступ на чтение, либо только в RDP сессию, либо вообще запрещён.
При этом допускается работа клиента в ограниченном режиме баз авторизации на сервере.
На сервере в отдельном разделе можно настраивать шаблоны прав доступа для массового управления.
Далее эти шаблоны можно подключать пользователям, расширяя их базовые права.
Модуль Helpdesk
В TrustServer встроен модуль HelpDesk. По умолчанию он отключен. Включить можно в соответствующем разделе настроек.
После этого у авторизованных клиентов появится возможность отправить заявку.
Оператору заявок 1-й линии сразу же в клиентское приложение придёт запрос по заявке.
Он может её посмотреть, назначить кому-то ещё или закрыть. Если передать заявку оператору 2-й линии, то он через свой интерфейс TrustViewerPro сможет сразу подключиться к заявителю, изменить заявку либо вернуть обратно на 1-ю линию.
У сервера имеются настройки API для приёма входящих запросов в систему HelpDesk и выполнение исходящего запроса при появлении заявки. Подробно примеры настроек есть в документации. Например, можно подключаться к удаленным компьютерам на основе билетов заявок, определяющих полномочия и срок действия доступа.
Таким образом, работа со службой хелпдеск может быть организована по двум основным сценариям:
- Использование службы хелпдеск, встроенной в TrustViewerPro: весь функционал по управлению заявками размещен непосредственно в клиентском модуле. При этом, используя API сервера, есть возможность частичной интеграции с внешними службами, например, для рассылки уведомлений об изменении статуса заявок по дополнительным каналам связи (почта, корпоративный чат и пр.).
- Использование уже развернутой на предприятии службы хелпдеск/сервисдеск: интернет-страница с формой заявки открывается по URL, указанному в настройках сервера TrustViewerPro, при этом, вместе с запросом на сервер службы хелпдеск/сервисдеск передаются дополнительные справочные данные, позволяющие частично автоматизировать заполнение заявки, а также уникальный идентификатор заявки, который в дальнейшем используется для управления заявкой по API.
Групповые команды и отчёты
Пользователи с соответствующими правами могут выполнять массовые действия с отдельными компьютерами или группами компьютеров. Делается это прямо через приложение TrustViewerPro. Выбирается либо компьютер, либо группа. Далее возможно:
- Отправить сообщение
- Отправить команду, в том числе от пользователя System
- Отправить пакет WOL
- Отправить настройки программы TrustViewerPro
Удобно быстро перезагрузить компьютер или выключить сразу группу компьютеров. В случае необходимости можно подготовить скрипт и выполнить его на группе компов. При этом вы тут же в отдельном окне будете видеть результат выполнения команды. Например, можно выполнить команду ipconfig на группе компьютеров и посмотреть результат, или на каком-то одном проверить вывод команды tracert к заданному хосту.
Все подключения к компьютерам логируются на стороне сервера. Для этого в директории Logs организован файл sessions.csv, где в формате csv хранится информация обо всех сеансах связи. Здесь же, в этой директории, хранится информация об активности всех компьютеров и учётных записей: когда появился в сети, какие действия выполнял, какие команды отправлял к другим компьютерам и т.д. Сделано удобно, информация ведётся подробная. Очень функционально для хранения и аудита действий с помощью внешних систем хранения логов.
Лицензирование и стоимость
Программа TrustViewerPro лицензируется по количеству подключенных к серверу устройств на условиях подписки со сроком 1, 2 или 3 года. Цена очень доступная и публикуется открыто, что большая редкость на сегодняшний день.
Лицензия на 100 устройств стоит всего 20 000 руб./год. Это выходит по 17 р. на устройство в месяц. Сравните с ценами на другие подобные программы. Хотя сделать это будет не так просто, так как многие программы лицензируются не по устройствам, а по активным операторам. Так что выгода или доступность того или иного продукта будет в каждой конкретной ситуации своя.
Например, редакция Ассистент с возможностью установки собственного управляющего сервера стоит 396 000 р. для трёх одновременных соединений операторов. Если я правильно понял, то лицензия бессрочная. Напрямую сравнить её с лицензиями на устройства не получится.
Заключение
Впечатления от TrustViewer у меня неоднозначные. Очень понравились маленькие приложения, как сервера, так и клиента. Это очень круто, что кто-то ещё пишет нативные приложения для решения конкретных задач. Сразу возникают вопросы, а почему другие подобные приложения весят в десятки раз больше?
Понравилась простая и быстрая установка сервера. Настроек не много, так что разобраться с базовыми моментами будет просто. Я, собственно, сел, открыл документацию и всё настроил за один вечер. Долго возился с правами доступа, авторизацией компьютеров, политиками и т.д. Там всё не так очевидно и интуитивно. Так что не могу сказать, что это будет просто. С другой стороны, тут и возможностей очень много по организации сложной разветвлённой структуры с множеством вложенных прав и ролей. А когда структура большая, просто в любом случае не получится. Если нужен обычный доступ по ID с подтверждением пользователя, то и настраивать ничего не надо. Всё сразу будет работать. Либо на клиенте можно настроить доступ без подтверждения по паролю. Тоже сервер трогать не надо с его ролями и шаблонами.
На мой взгляд в админке не хватает возможности смотреть логи, записи сессий, какой-то сводной статистики. Там это напрашивается. Интерфейс выглядит пугающе, если его придётся показывать кому-то из руководства, кто принимает решение о покупке. Может отпугнуть, хотя я понимаю, что это плата за малый вес и скорость работы сервера. Клиентское приложение тоже выглядит старомодно. Непривычно по современным меркам. При этом самое важное в подобных приложениях — отклик картинки, и здесь он хороший. Приложение свою основную задачу выполняет хорошо.
У меня никогда не было в управлении платных self-hosted серверов для удалённого управления компьютерами, так что сравнивать не с чем. Если вам нужно функциональное решение за разумные деньги, то выбор TrustViewerPro будет неплохим. Я даже не знаю, есть ли у кого-то такие же гибкие возможности по настройке прав доступа. Кому-то можно дать права на просмотр картинки, кому-то на трансляцию экрана своего компа группе компов, кому-то только на загрузку файлов на группу компьютеров, кому-то на просмотр записей. Возможности очень гибкие. Плюс, все действия логируются. Архитектурно система готова на установку в масштабные разветвлённые структуры.
Плюс ещё базовый HelpDesk. Не знаю, насколько это может быть удобно в реальной эксплуатации. Всё же это отдельное направление. Хотя я уже видел попытки совместить систему удалённого доступа и helpdesk, плюс ещё мониторинг. Это было в программном комплексе Veliam, который, к сожалению, больше не существует. Автор прекратил разработку и поддержку. В любом случае в TrustViewerPro это опция, не обязательная к использованию, которая, тем не менее, может стать удобным дополнением.
Cайт официального дистрибьютора, осуществляющего продажи и техническую поддержку TrustViewerPro — https://trustservice.tech.
Владимир, остались нераскрытыми несколько самых важных технических вопросов: какое видеокодирование используется при работе в собственных протоколах а не RDP? Насколько при этом загружен сервер и клиент? Потребная ширина канала связи при работе на собственных протоколах при разрешении FullHD и 16М цветов?
Используется два основных собственных алгоритма:
1) сжатие без потерь (аналог zip)
2) сжатие с потерями (аналог mjpg)
Сервер использует минимальное кол-во ресурсов, т.к. он либо вообще не участвует непосредственно во время сеанса связи (если компьютерам удалось подключиться напрямую p2p), либо выступает только в роли прокси (за шифрование трафика отвечают клиенты, у сервера нет возможности его дешифровать).
Нагрузка на клиент зависит от его железа, но программа была специально разработана с учетом использования на старых компьютерах с минимальным требованием к железу, поэтому на современных компьютерах работа клиента практически не ощущается.
Например, при проведенном тесте: со стороны клиента мобильный интернет от Tele2 4G, со стороны оператора мобильный Yota с каналом 1,5 Мбит/с, сервер вынесен в отдельный VPS в датацентре – при включенной Aero, с режимом отображения обоев рабочего стола и цветопередачей 24 bit true color, скорость отклика достаточно комфортная. Небольшие лаги имеют место, но, например, печатать текст вполне удобно. Но тут по ощущениям сугубо индивидуальный подход.
При динамическом контенте – ширина канала чем больше, тем лучше. Если на удаленной машине в основном статика (например 1С, Excel), то канала в 1 Мбит/с вполне должно хватить при FullHD 16 млн цветов.
Сами клиентские модули при этом потребляли не более 100Мб оперативки.
Для удаленного управления внутри своей сети использую связку Brynhildr+Kaspersky Security Center. Платить придеться только за Kaspersky Security Center, но без защиты и так ни куда, так что практические набор этот ни чего не стоит.