К содержанию
Trialix

Trialix Connector: архитектура и безопасность

Trialix Connector - служба, которая ставится в сети компании и передаёт в Trialix сотрудников и группы из каталога: Active Directory, Samba AD (в том числе РЕД АДМ и Альт Домен), FreeIPA (в том числе ALD Pro), OpenLDAP или произвольного LDAP. Коннектор только читает каталог и ничего в нём не меняет. Правила (кого создать, кого отключить, пороги, места лицензии) применяет Trialix, настройки живут в ЛК, раздел «Каталоги». Документ для службы ИБ: что передаётся, куда, как хранятся секреты и как проверяются обновления.

Схема работы

Каталог (AD, Samba, FreeIPA, OpenLDAP)
      ^  LDAPS 636 или LDAP 389 со StartTLS, только чтение
      |
Trialix Connector (служба в сети компании)
      |  исходящий HTTPS 443, при необходимости через прокси
      v
api.trialix.ru (Trialix)

Коннектор сам раз в минуту отправляет в Trialix пульс и в ответ получает настройки (расписание, привязанные группы) и задания: «обновить список групп», «предпросмотр», «синхронизация». Результат задания он отправляет обратно отдельным запросом. Trialix никогда не подключается к коннектору сам.

Куда ходит коннектор

НаправлениеАдрес и портЗачем
Наружуapi.trialix.ru:443 (HTTPS)регистрация, пульс, задания, результаты, проверка обновлений
Внутри сетиконтроллер или сервер каталога, 636 (LDAPS) или 389 (LDAP со StartTLS)чтение сотрудников и групп
Внутри сетиKDC, 88только при входе по Kerberos
Внутри сетиDNSимена api.trialix.ru и сервера каталога
  • Входящих портов нет. Открывать что-либо из интернета к машине коннектора не нужно.
  • Прокси: параметр --proxy http://proxy.company.local:3128 (при enroll и в setup) или ответ на вопрос «Прокси» в мастере. Если прокси в настройках не задан, коннектор берёт системные переменные HTTPS_PROXY и NO_PROXY.
  • Прокси с расшифровкой TLS (SSL-инспекция) должен пропускать api.trialix.ru без подмены сертификата или машина коннектора должна доверять корневому сертификату прокси.
  • Незашифрованное подключение к каталогу коннектор не выполняет: адрес ldap:// без StartTLS отклоняется с ошибкой. Минимальная версия TLS - 1.2.

Что передаётся

Только белый список атрибутов. Остальные атрибуты коннектор у каталога не запрашивает вовсе.

ОбъектПоля
Сотрудникнеизменяемый идентификатор (objectGUID, ipaUniqueID или entryUUID), SID (только AD и Samba), DN, логин, почта, имя, фамилия, должность, отдел, телефон, DN руководителя, список групп с учётом вложенности, признак «учётная запись отключена»
Группаидентификатор, DN, название
Служебноепрофиль каталога, базовый DN, время на машине коннектора, признак «ответ получен полностью», число страниц ответа

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

Посмотреть снимок ровно в том виде, в каком он уходит в Trialix, можно на машине коннектора, ничего не отправляя:

sudo trialix-connector preview --json

На стороне Trialix снимок каждого прогона хранится вместе с отчётом (кого создать, обновить, отключить) и виден администраторам компании в ЛК, раздел «Каталоги», блок «Прогоны».

Где хранятся данные

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

Секреты на машине коннектора

Конфигурация лежит в одном файле config.json:

ОСКаталогПрава
Linux/etc/trialix-connectorкаталог 0700, файл 0600, владелец root
Windows%ProgramData%\Trialix\Connectorнаследуются от %ProgramData%; рекомендуем ограничить, см. установку на Windows

В файле два секрета, оба в зашифрованном виде:

СекретLinuxWindows
Токен коннектораAES-256-GCM. Ключ - SHA-256 от случайного ключа машины (файл machine.key, 0600, создаётся при первом запуске) и /etc/machine-idDPAPI в контексте машины (CryptProtectData с флагом LOCAL_MACHINE)
Пароль сервисной учётной записи каталогато жето же
  • Скопированный на другую машину config.json не расшифруется: коннектор ответит «токен коннектора не расшифровывается на этой машине».
  • При входе по Kerberos пароль не хранится вовсе: на Linux используется keytab, на Windows - учётная запись, от имени которой работает служба (SSPI).
  • В журнал коннектора пароль и токен не пишутся.

Регистрация коннектора

  1. Администратор компании в ЛК, раздел «Каталоги», вводит название и нажимает «Добавить коннектор».
  2. ЛК показывает одноразовый код подключения вида XXXX-XXXX-XXXX и готовые команды для Linux и Windows. Код показывается один раз и действует час. В Trialix хранится только хеш кода.
  3. На машине выполняется trialix-connector enroll <код>. Коннектор обменивает код на токен и сохраняет токен в зашифрованном виде. Повторно тот же код не сработает.
  4. Если код истёк или потерян, в карточке коннектора есть ссылка «Новый код подключения».

Карточка «Добавить коннектор»: код подключения и команды установки

Перебор кодов ограничен: не больше 10 попыток регистрации в минуту с одного адреса, дальше ответ «Слишком много попыток, подождите минуту».

Токен и его перевыпуск

  • Токен коннектора (trxc_…) хранится в Trialix только в виде хеша SHA-256.
  • «Перевыпустить токен» в карточке коннектора: новый токен уходит коннектору с ближайшим пульсом. Коннектор сохраняет его и подтверждает отдельным запросом уже с новым токеном. До подтверждения работают оба токена, после подтверждения старый перестаёт действовать. Пока идёт замена, ссылка в карточке называется «Токен обновляется».
  • Отозвать доступ сразу - «Удалить коннектор». Синхронизация останавливается, учётные записи сотрудников и отделы остаются. Для повторного подключения создайте коннектор заново.
  • Регистрация, перевыпуск токена, изменение настроек и запуск заданий попадают в журнал ЛК.

Обновления

Автообновления нет. Обновление ставится только командой администратора:

sudo trialix-connector update          # покажет версию и спросит «Обновить? [да/нет]»
sudo trialix-connector update --yes    # без вопроса, для скриптов

Порядок проверки:

  1. Коннектор получает у Trialix номер версии, адрес файла, его SHA-256 и подпись.
  2. Проверяет подпись Ed25519 строки «версия и SHA-256» открытым ключом Trialix, который зашит в коннектор. Если подпись не совпала - «подпись сборки не совпадает - обновление отменено», файл даже не скачивается.
  3. Скачивает файл и сверяет его SHA-256. Не совпало - «контрольная сумма не совпадает - обновление отменено».
  4. Только после обеих проверок заменяет исполняемый файл. Службу после этого нужно перезапустить.

Для ручной проверки у каждого выпуска есть SHA256SUMS с контрольными суммами всех файлов и подпись SHA256SUMS.sig. Открытый ключ подписи Trialix:

-----BEGIN PUBLIC KEY-----
MCowBQYDK2VwAyEAniF78mdga9F0PFooZYsNCKDV22FhNCQffHq6UOhF5Pc=
-----END PUBLIC KEY-----

Проверка подписи (OpenSSL 3.0 и новее):

curl -fLO https://api.trialix.ru/v1/connector/download/SHA256SUMS
curl -fLO https://api.trialix.ru/v1/connector/download/SHA256SUMS.sig
cat > trialix-release.pub <<'KEY'
-----BEGIN PUBLIC KEY-----
MCowBQYDK2VwAyEAniF78mdga9F0PFooZYsNCKDV22FhNCQffHq6UOhF5Pc=
-----END PUBLIC KEY-----
KEY
base64 -d SHA256SUMS.sig > SHA256SUMS.sig.bin
openssl pkeyutl -verify -pubin -inkey trialix-release.pub -rawin -in SHA256SUMS -sigfile SHA256SUMS.sig.bin
# Signature Verified Successfully

Права коннектора в Trialix

Токен коннектора годится только для протокола коннектора (/v1/connector/…): пульс, результаты заданий, проверка обновлений. Он не даёт доступа к чатам, моделям, API компании и данным сотрудников. Задания коннектор получает только своей компании.

Журнал на машине

ОСГде
Linuxjournalctl -u trialix-connector и файл /var/log/trialix-connector/connector.log
Windowsжурнал «Приложение», источник TrialixConnector, и файл %ProgramData%\Trialix\Connector\connector.log

Экран состояния в терминале: команда trialix-connector без параметров. Там связь с Trialix, последний пульс, расписание, последнее задание и последние 200 строк журнала.

Обновлено 29.09.2026