Документация на Flussonic Media Server

  1. Быстрый старт
  2. How-to
  3. Потоковое вещание
    1. Варианты источников
    2. Переключение источников
    3. Публикация на Flussonic
    4. Прием мультикаста
    5. Серверные плейлисты
    6. Микширование
    7. Захват с SDI
    8. Отправка на другие серверы
    9. Распознавание DVB субтитров
    10. Наложение логотипа
  4. Транскодер
    1. Логотип
    2. Hardware
    3. Скриншоты
    4. Мозаика
  5. DRM
    1. Simple CAS
    2. Conax DRM
    3. BuyDRM (KeyOS)
    4. Widevine
    5. PallyCon
    6. EzDRM
  6. Авторизация
    1. Конструктор бэкендов
    2. Сервис сбора статистики
    3. Domain lock
    4. Middleware
    5. Secure links
    6. Ограничение сессий
    7. Мультиавторизация
    8. Бан IP адресов
    9. DVR
    10. Aliaser
  7. API
    1. HTTP API
    2. Events API
    3. MySQL API
    4. SQL API для кластеров
    5. SNMP
  8. Кластер
    1. Ретрансляция
    2. Кластерный захват
    3. Балансировщик нагрузки
    4. Пиринг
    5. Организация CDN
  9. VOD
    1. Кэш
    2. Облако
    3. Транскодирование файлов
    4. Мультибитрейтный VOD из файлов
  10. DVR
    1. Настройка
    2. Timeshift
    3. Catchup
    4. Проигрывание
    5. Экспорт в MP4
    6. Доступ по протоколам
    7. Timelapse
    8. API
    9. Кластеризация DVR
    10. Репликация
    11. Облако
  11. Воспроизведение
    1. HLS
    2. embed.html
    3. HTML5 с низкой задержкой
    4. Плеер HTML5 с низкой задержкой
    5. MPEG-TS
    6. RTMP
    7. DASH
    8. HDS
    9. RTSP
    10. Multicast
    11. Multicast с постоянным битрейтом
    12. WebRTC
    13. H.265
  12. Администрирование
    1. Установка
    2. Обновление
    3. Конфигурация
    4. Мониторинг
    5. Производительность
    6. Лицензия
    7. LUA скрипты
    8. Безопасность
    9. Let's Encrypt
    10. Миграция
  13. IPTV
    1. Захват спутникового видео
    2. Транскодирование
    3. Middleware в IPTV OTT
    4. Экспорт EPG со спутника
    5. Группы каналов
    6. Реклама

Конфигуратор бэкендов

В Flussonic 18.05 появилась возможность создавать авторизационные бэкенды в основном файле конфигурации.

Можно указать белые и черные списки для IP адресов, токенов, User-Agents, стран, несколько параллельных HTTP-бэкендов. Не требуется писать свои lua-скрипты.

Настройка авторизации Anchor Anchor x2

Добавьте в файл /etc/flussonic/flussonic.conf:

auth_backend main {
  allow ip 127.0.0.1;
  allow ip 192.168.0.1;
  allow ip 172.16/24;
  deny ip 8.8.8.8;
  allow country RU US;
  deny country GB;
  allow token test_token1;
  deny ua "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.10)";
  backend http://stalker-1.iptv.net/auth.php;
  backend http://stalker-2.iptv.net/auth.php;
}
  • allow — объявляет "белый" список, т.е. немедленно разрешает просмотр без дальнейших проверок.
  • deny — объявляет черный список, запрещает просмотр.

Flussonic проверяет правила в следующем порядке:

  1. allow token
  2. deny token
  3. allow ip
  4. deny ip
  5. allow country (страна)
  6. deny country (страна)
  7. allow ua (useragent)
  8. deny ua (useragent)
  9. Опрашивает несколько параллельных бэкендов
  10. Запрещает доступ, если не указано allow default.

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

Чтобы использовать этот авторизационный бэкенд для потока, укажите auth://main:

stream ort {
  url udp://239.255.0.1:1234;
  auth auth://main;
}

Правила срабатывают после перезагрузки конфигурации.

Опция allow default Anchor Anchor x2

Опция allow default разрешает доступ к видео всем клиентам (получателям), кроме перечисленных в опции deny. Если эта опция не указана, то доступ к потоку запрещается для всех клиентов, а не только для тех, которым вы запретили явно через deny.

В версии 19.02 и выше эта опция разрешает просмотр потока в случае, когда авторизационный бэкенд не отвечает по причине неработоспособности скрипта или ошибки на сервере. Таким образом, опция allow default оставляет возможность доступа к контенту в случае неработоспособного бэкенда.

Рассмотрим, как Flussonic поступает с разными ответами от бэкенда и как влияет опция allow default на решение о предоставлении доступа к видеопотоку.

Опция allow default в случае одного бэкенда

Если авторизационный бэкенд запрещает доступ (отвечает с кодом ошибки 403 Forbidden), Flussonic не разрешит доступ к содержимому, даже если в конфигурации указано allow default.

Однако если бэкенд не отвечает (не работает по причине ошибки) или произошла ошибка сервера, на котором работает бэкенд-скрипт, Flussonic разрешает доступ к содержимому. Т.е. при помощи опции allow default Flussonic оставляет возможность доступа к контенту в случае неработоспособного бэкенда.

Опция allow default в случае нескольких бэкендов

Если у вас несколько параллельных бэкендов, правила примерно те же.

Если хотя бы один из бэкендов разрешает доступ, а остальные бэкенды запрещают его или не отвечают, то доступ будет разрешен.

Если хотя бы один из бэкендов запрещает доступ, а остальные не отвечают, т.е. ни один не разрешает, доступ будет запрещен.

Однако если все бэкенды не работают (не отвечают), Flussonic разрешает доступ к содержимому (при наличии в настройках потока опции allow default).

В таблице показана логика авторизации при использовании нескольких бэкендов для потока:

Backend 1 Backend 2 Backend 3 Результат
allow allow allow
ban ban ban Ban
ban allow ban Allow
not responding not responding not responding Allow
not responding allow not responding Allow
not responding ban not responding Ban

Примеры Anchor Anchor x2

Мультиавторизация и доступ из локальной сети

auth_backend multi_local {
  allow ip 192.168.0/24;
  backend http://127.0.0.1/tv/auth; # iptv plugin
  backend http://<HOSTNAME>/stalker_portal/server/api/chk_flussonic_tmp_link.php;
}

Заблокировать несколько пользователей, остальным разрешить

auth_backend blacklist {
  deny ip 1.1.1.1;
  deny ip 2.2.2.2;
  deny ip 10.10/16;
  allow default;
}

Использовать HTTP бэкенд и разрешить просмотр видео клиентам с указанными токенами

auth_backend myauth {
  allow token friend_token1;
  allow token friend_token2;
  backend http://<HOSTNAME>/stalker_portal/server/api/chk_flussonic_tmp_link.php;
}

Разрешить только свои приставки по User-Agent, остальных блокировать

auth_backend agents {
  allow ua MAG;
  allow ua TVIP;
}