Home » Инструмент для безопасного совместного использования учетных записей Plex, Jellyfin и Emby

Инструмент для безопасного совместного использования учетных записей Plex, Jellyfin и Emby

от noted.lol
0 Комментарии 267 просмотров 4 мин на чтение

Многие владельцы домашних медиасерверов Plex начинают с семейного круга пользователей, но со временем «семья» превращается в друзей, затем в друзей друзей, а затем — в кого-то, с кем работает двоюродный брат. В таких случаях возникает вопрос: кто именно пользуется сервером и не передаются ли учётные данные посторонним.

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


Что делает Tracearr

Tracearr — это аналитический инструмент для медиасерверов. Он отображает полную историю просмотров, статистику воспроизведения, активные сессии — все привычные функции. Каждая трансляция фиксируется с геолокацией по IP: город, регион, страна, а также информация об устройстве.
Система обнаружения совместного использования учётных записей работает по пяти типам правил:

  • Невозможное путешествие (Impossible Travel) — если пользователь заходит из Нью-Йорка, а через 30 минут из Лондона. Используется формула гаверсинуса для вычисления расстояния. Если «скорость перемещения» превышает 1000 км/ч, включается тревога. При этом VPN-прыжки моментально становятся заметны.
  • Одновременные локации — одна учётная запись ведёт трансляции из двух городов одновременно. В таком случае поступает мгновенное уведомление.
  • Скорость смены устройств (Device velocity) — слишком много уникальных IP-адресов за короткий период. Обычно это говорит о совместном использовании данных для входа.
  • Параллельные трансляции (Concurrent streams) — позволяет задавать лимиты на количество одновременных потоков для каждого пользователя. Простое, но эффективное средство выявления нарушений.
  • Географические ограничения (Geo restrictions) — возможность блокировать доступ из целых стран.

Уровень доверия пользователей автоматически снижается при нарушении правил: «невозможное путешествие» снижает рейтинг сильнее, чем превышение лимита потоков. Оповещения можно получать в Discord, ntfy или через собственные webhook-и.

Также доступна интерактивная карта потоков, на которой отображаются текущие и исторические места воспроизведения. Это не только полезно, но и просто интересно наблюдать.

Тепловая карта
Тепловая карта

Поддержка нескольких серверов позволяет объединить Plex, Jellyfin и Emby в одной панели управления. Можно завершать потоки прямо из интерфейса. Если уже используется Tautulli или Jellystat, можно импортировать историю просмотров, чтобы не начинать с нуля. Реализация импорта заняла много времени, но теперь она работает стабильно.


Что показал собственный сервер

После запуска Tracearr стали заметны некоторые закономерности:

  • Один «член семьи» выходил в сеть из Бостона и Детройта в один день.
  • Одна учётная запись использовалась как минимум тремя людьми из двух разных стран.
  • Нечто вроде «путешественника», сменившего 15 уникальных IP-адресов за месяц.

Эти данные уже были в Tautulli, но ни один инструмент не анализировал поведение для выявления шаблонов. Именно поэтому возникла идея поделиться разработкой. Ведь, вероятно, не только одному администратору приходилось смотреть в логи и задаваться вопросом, кто же это стримит из Кучека, Казахстан.


Страница истории просмотров
Страница истории просмотров

Tautulli и Jellystat предоставляют историю просмотров, статистику и мониторинг сессий. Tracearr добавляет к этому механизм обнаружения совместного использования. Инструменты можно использовать одновременно — они не конфликтуют между собой.

Функция Tautulli Jellystat Tracearr
История просмотров Да Да Да
Выявление совместного использования Нет Нет Да
Оповещения о невозможных перемещениях Нет Нет Да
Оценка доверия Нет Нет Да
Поддержка Plex Да Нет Да
Поддержка Jellyfin Нет Да Да
Поддержка Emby Нет Да Да
Мультисерверная поддержка Нет Нет Да

Другие инструменты начинают тормозить при загрузке больших объёмов данных. Кроме того, для нескольких серверов требуется несколько экземпляров приложения.

В Tracearr используется TimescaleDB, поскольку журнал сессий — это типичный временной ряд. Благодаря непрерывным агрегатам статистика на панели формируется заранее, а не при каждом запросе, что обеспечивает быструю работу даже при многолетней истории.

Plex-серверы передают обновления сессий через SSE (Server-Sent Events), что обеспечивает мгновенное обнаружение событий. Jellyfin и Emby пока используют опрос (polling), так как не поддерживают SSE, но механизм также работает надёжно.


Как начать работу

Существует образ «всё-в-одном», в котором объединены TimescaleDB и Redis в одном контейнере:

При желании можно использовать собственные инстансы базы данных и Redis — для этого предусмотрены стандартные образы.

В разработке

Автоматическое завершение потоков по правилам пока недоступно — пока это можно делать вручную через интерфейс. Планируется добавить уведомления по Email и Telegram; уже работают Discord и вебхуки.
Существует мобильное приложение, но пока оно находится в бета-версии.

Проект полностью автономный: без облачных сервисов, без телеметрии, без исходящих соединений.

Заключение

Tracearr начался как личный проект для решения собственных проблем, но вскоре выяснилось, что он востребован у многих. Сообщество Discord активно тестирует инструмент и помогает развивать его — половина функций появилась именно благодаря пользователям.
Репозиторий на GitHub доступен для всех. Если инструмент оказался полезным — добавьте звезду. Активное сообщество Discord поможет при возникновении вопросов или просто для общения.

Если сервер работает на Jellyfin или Emby, разработчик просит сообщить о результатах тестирования. Plex уже испытан достаточно серьёзно, но другие платформы нуждаются в проверке в реальных условиях. Предложения по новым правилам обнаружения также приветствуются.

Источник на английском языке

Читайте про умный дом:
🌐 Сайт
📱 Телеграм
📰 Дзен

Даже просто подбор, перевод и оформление статей требуют времени. А самостоятельный обзор устройств требует еще и финансовых вложений. Если Вы хотите больше обзоров, Вы можете помочь автору.

Вам может понравиться

Оставить комментарий