Skip to content

Безопасность Flussonic Media Server

В этом разделе мы расскажем, как ограничить доступ к панели Администратора Flussonic Media Server.

Danger

Если злоумышленник получит доступ к Flussonic Media Server, то он сможет прочесть и перезаписать любой файл на жестком диске.

Логин и пароль

В конфигурации Flussonic Media Server настраиваются два разных уровня доступа: view_auth и edit_auth.

  • view_auth user password; — используется для предоставления доступа на чтение к API Flussonic Media Server, т.е. получении информации о потоках, состоянии записи и т.п.
  • edit_auth user password; — используется для предоставления полного доступа Администратору. С этим логином и паролем пользователю предоставляются практически все права на работу с сервером.

Ограничение по IP адресу

Для того, чтобы ограничить доступ к API по IP адресам, необходимо включить white list:

  • либо директивой в конфигурационном файле (/etc/flussonic/flussonic.conf):

api_allowed_from 10.0.0.0/8 192.168.4.15;

  • либо через веб-интерфейс Flussonic UI, перейдя на вкладку Config в раздел Access и введя IP-адрес(а) в строке API allowed from:

Строка "API allowed from"

Отдельный IP порт для веб-интерфейса и API

Существует возможность задать для HTTP API отдельный IP порт:

admin_http 8090;
admin_http 127.0.0.1:8091;
admin_https 8092;

Теперь веб-интерфейс HTTP API будет доступен только через заданные порты.

Это значит, что при настройке кластера в директивах peer и source для узла с включенным admin_http(s) надо указывать именно эти порты.

Загрузка SSL сертификатов

Если у вас уже есть SSL сертификат для Flussonic, выпущенный сторонним провайдером или сгенерированный вами самостоятельно, его можно загрузить с вашего компьютера на сервер через веб-интерфейс Администратора.

  1. Настройте порт для HTTPS в конфигурации Flussonic. Откройте веб-интерфейс и укажите порт для HTTPS перейдя в Config -> TLS-tunneled protocols, например, 443.

  2. Теперь там же найдите и нажмите Upload certificates, и выберите файлы сертификата и ключа. Кроме того, можно указать CA-сертификат.

Любые SSL сертификаты для Flussonic сохраняются в специальной папке — /etc/flussonic или /etc/streamer (для кластерной установки). При сохранении Flussonic заменит названия файлов на streamer.crt, streamer-ca.crt, и streamer.key.

Чтобы удалить загруженные файлы, относящиеся у сертификату, нажмите значок корзины в Config -> TLS-tunneled protocols напротив списка файлов.

Генерация SSL сертификатов

Чтобы перевести веб-интерфейс Администратора на HTTPS, нужно включить порт для HTTPS в конфигурации Flussonic. Откройте веб-интерфейс и укажите порт для HTTPS в Config > TLS-tunneled protocols, например, 443.

Можно сгенерировать собственный SSL сертификат сервера Flussonic. Для генерации самоподписанных сертификатов Flussonic Media Server выполните по порядку команды, приведенные ниже. Каждый раз, когда система будет запрашивать пароль для сертификата, жмите Enter, ничего не вводя.

cd /etc/flussonic

openssl genrsa -des3 -out streamer.key 1024

openssl req -new -key streamer.key -out streamer.csr

mv streamer.key streamer.key.org

openssl rsa -in streamer.key.org -out streamer.key

openssl x509 -req -days 365 -in streamer.csr -signkey streamer.key -out streamer.crt

Файлы нужно поместить в /etc/flussonic/ (/etc/flussonic/streamer.crt и /etc/flussonic/streamer.key). Загрузить эти файлы можно и через веб-интерфейс. Для этого перейдите в Config > TLS-tunneled protocols и нажмите Upload certificates.

Промежуточный и CA сертификаты будут браться из /etc/flussonic/streamer.crt.

Cамое актуальное описание команд OpenSSL доступно в manpages в документации OpenSSL.

LetsEncrypt сертификаты

Компания LetsEncrypt с апреля 2016 года предлагает бесплатные SSL сертификаты сроком действия на месяц. Создание сертификата происходит в автоматическом режиме.

Мы добавили в Flussonic Media Server поддержку Letsencrypt. Как получить LetsEncrypt

Защита конфигурационного файла от изменения

Можно запретить изменение конфигурационного файла через API (т.е. веб-интерфейс). Для этого создайте файл /etc/flussonic/flussonic.conf.locked, выполнив в командной строке команду:

touch /etc/flussonic/flussonic.conf.locked

Теперь изменить настройки Flussonic через веб-интерфейс нельзя.

Запуск Flussonic от имени непривилегированного пользователя

Чтобы запустить Flussonic Media Server под обычным пользователем, выполните следующие настройки:

adduser flussonic --home /var/lib/flussonic --disabled-password
chown -R flussonic /etc/flussonic/
chown -R flussonic /var/lib/flussonic/
echo flussonic > /etc/flussonic/run_as
chown root /etc/flussonic/run_as
chmod 0644 /etc/flussonic/run_as
chown -R flussonic /var/run/flussonic /var/log/flussonic /etc/flussonic/.erlang.cookie
setcap cap_net_bind_service=+ep /opt/flussonic/lib/erlang/erts-*/bin/x86_64-linux-gnu/beam.smp

Затем создайте override.conf-файл для юнита systemd, используя команду systemctl edit flussonic:

[Service]
User=flussonic
Group=flussonic

Теперь после перезапуска сервер Flussonic Media Server будет работать с правами пользователя flussonic.

Чтобы снова запускать Flussonic Media Server под суперпользователем, очистите override-файл.

Активация Flussonic через SOCKS5 прокси

Flussonic может использовать SOCKS5 прокси-сервер для общения с сервером лицензий. Чтобы включить его, используйте возможности systemd override:

systemctl edit flussonic

Эта команда откроет текстовый редактор (обычно это nano). Затем введите:

[Service]
Environment="PROXY=socks5://172.20.10.1:1080"

Нажмите Сtrl-X, затем Y, чтобы сохранить и выйти.

Перезапустите Flussonic:

service flussonic restart

Теперь Flussonic будет использовать указанный прокси-сервер.

Защита видео от просмотра Администратором

По умолчанию пользователи с правами Администратора Flussonic могут проигрывать любой поток в веб-интерфейсе Администратора. Для этого используется специальный авторизационный токен Администратора.

Возможно, вы захотите запретить просмотр некоторых потоков Администратором — тех потоков, для которых нужна авторизация пользователя.

Чтобы запретить Администратору Flussonic проигрывать в веб-интерфейсе потоки, защищенные авторизацией:

1) Отредактируйте unit-файл сервиса Flussonic (/lib/systemd/system/flussonic.service). Следует делать это, используя systemd override:

systemctl edit flussonic

Эта команда откроет текстовый редактор (обычно nano).

2) Добавьте строки:

[Service]
Environment=ADMIN_VIEW_DISABLE=true

Нажмите Сtrl-X, затем Y, чтобы сохранить и выйти.

3) Перезапустите Flussonic:

service flussonic restart

Теперь, если поток требует авторизации, плеер в веб-интерфейсе вернет ошибку 403 при попытке проиграть поток с токеном Администратора.

Потоки без настроенной авторизации будут воспроизводиться как обычно.

Защита файловой системы от доступа из UI

В веб-интерфейсе пользователь (Администратор Flussonic) указывает расположение директорий для хранения DVR, VOD и кэш. Вы можете ограничить Администратора, указав одну или более директорий, выше которых Flussonic не разрешит размещать хранилища. Это позволит, например, защитить директорию /root.

Flussonic проверяет пути внутри file vod, dvr, cache, copy, и в схемах playlist:/// и sqlite:///.

Для настройки добавьте переменную окружения FLUSSONIC_DATAPATH и укажите самую верхнюю директорию или несколько директорий, где допускается создавать VOD локации, DVR, кэш и др.

Caution

Чтобы Flussonic запустился успешно с новыми настройками, в текущей конфигурации не должно быть путей к директориям, находящимся выше указанных в переменной FLUSSONIC_DATAPATH.

Для добавления FLUSSONIC_DATAPATH можно использовать возможности systemd override:

systemctl edit flussonic

Эта команда откроет текстовый редактор (обычно это nano). В редакторе введите, например, такие директории:

[Service]
Environment=FLUSSONIC_DATAPATH=/storage:/mount:/copy

Нажмите Сtrl-X, затем Y, и Enter чтобы сохранить и выйти.

Перезапустите Flussonic:

service flussonic restart

Теперь в настройках можно будет указывать пути для DVR, кэша и VOD файлов только в /storage, в /mount и /copy и вложенных директориях.