В этой заметке будет описано то, как установить Jitsi Meet - полнофункциональную и абсолютно бесплантую систему для организации ВКС.
Разработчики поддерживают пакеты только для ОС, основанных на Debian. В качестве серверной ОС будет выступать Ubuntu 18.04.4 LTS.
Проверим наличие обновлений и установим имеющиеся.
apt update && apt upgrade -yУстановим корректный часовой пояс для нашего сервера
dpkg-reconfigure tzdataПереходим к установке самого ПО. Добавим ключ безопасности и адрес официального репозитория
wget -qO - https://download.jitsi.org/jitsi-key.gpg.key | sudo apt-key add -
echo 'deb https://download.jitsi.org stable/' > /etc/apt/sources.list.d/jitsi-stable.list
Обновим список досупных пакетов и установим Jitsi Meet
apt update && apt install -y jitsi-meetЕсли в системе не установелен apache или nginx, то будет установлен nginx, кроме этого в процессе установки будет запрошен сертификат, который будет использоватсья для безопсного соединения с сервером. Это может быть как купленный у поставшика сертифика, так и полученный от Let's Encrypt. Если будет использоваться сертификат от Let's Encrypt, то в процессе установку нужно выбрать использовать самоподписанный сертификат. В конце установки будет указано расположение скрипта для генерации сертификата.
Вот и всё! Установка закончена. Всё быстро и просто. Можно перейти по адресу свежего сервера https://meet.oldfag.ru и увидеть главную страницу Jitsi Meet. Всё,что нужно для начала видеоконференции - придумать название комнаты и нажать кнопку ОК.
Функционал, необходимый для организации ВКС у нас есть, но в текущей конфигурации нашим сервером может воспользоватсья любой посетитель из глобальной сети.
Добавим авторизацию в Active Directory. Только авторизованные пользователи будут иметь права модератора, анонимные посетители будут иметь права только присоединиться к существующим собраниям. Ядром системы является XMPP-сервер Prosody, он и будет авторизовывать пользователей. Установим необходимые дополнительные пакеты
apt install -y prosody-modulesСоздадим файл конфигурации для подключения к Active Directory
nano /etc/prosody/conf.avail/ldap.cfg.luaсо следющим содержанием
authentication = 'ldap2' -- тип аутентификации
ldap = {
hostname = 'oldfag.ru', -- имя контроллера домена, лучше использовать имя домена на случай отказа конкретного контроллера домена.
bind_dn = 'CN=ldap_sync,CN=Users,DC=oldfag,DC=ru', -- имя пользователя для подключения к Active Directory
bind_password = 'userpassword', -- пароль пользователя для подключения к Active Directory
user = {
basedn = 'DC=oldfag,DC=ru', -- корень просмотра
filter = '(&(objectClass=user)(memberof=CN=Пользователи ВКС,CN=Users,DC=oldfag,DC=ru))', -- фильтр для поиска пользователей
usernamefield = 'sAMAccountName', -- атрибут,используемый как имя пользователя
namefield = 'cn', -- атрибут, используемый как отображемое имя
},
}
К ВКС будут иметь доступ не все пользователи домена, а только те, которые состоят в группе Пользователи ВКС.
Добавим ссылку на созданный файл в каталоге /etc/prosody/conf.d/, который используется для хранения конфигурационных файлов
ln -sf /etc/prosody/conf.avail/ldap.cfg.lua /etc/prosody/conf.d/В основном конфигурационном файле сервера изменим метод авторизации
nano /etc/prosody/conf.avail/meet.oldfag.ru.cfg.luaв секции VirtualHost "meet.oldfag.ru" нужно изменить строку с
authentication = "anonymous"
на
authentication = "ldap2"
Сохраняем изменния в файле и перезапускаем сервис
systemctl restart prosodyТеперь к серверу могут подключиться только авторизованные пользователи.
Для того, чтобы добавить возможность анонимного подключения к созданным конференциям нужно в основной конфигурационный файл prosody (/etc/prosody/conf.avail/meet.oldfag.ru.cfg.lua) добавить ещё один виртуальный хост, добавив в конец файла ещё одну секцию
VirtualHost "guest.meet.oldfag.ru"
authentication = "anonymous"
c2s_require_encryption = false
Создавать dns-запись для guest.meet.oldfag.ru не нужно, это виртуальный хост, который используется только внутри prosody.После этого отредактируем файл конфигурации самого Jitsi Meet
nano /etc/jitsi/meet/meet.oldfag.ru-config.jsизменив строку
// anonymousdomain: 'guest.example.com',
на
anonymousdomain: 'guest.meet.oldfag.ru',
тут же укажем необходимость указать имя при подключении, раскомментировав строку
requireDisplayName: true,
а так же отключим звук у пользователей при подключении
startWithAudioMuted: true,
Теперь добавим в файл конфигурации jicofo необходимость требовать авторизации, с сохранением анонимного доступа для внешних пользователей.
nano /etc/jitsi/jicofo/sip-communicator.propertiesи добавим строку
org.jitsi.jicofo.auth.URL=XMPP:meet.oldfag.ruСохраним изменения и перезапустим сервисы
systemctl restart prosody && systemctl restart jicofoЧтобы избежать зумбомбинга нужно при создании конференций указывать для них пароль доступа, тогда, даже угадав имя конференции анонимный пользователь не сможет присоединиться к ней.
Конференцию не обязательно создавать с главной страницы сервиса, можно просто создать ссылку вида https://meet.oldfag.ru/whatever. Когда по ней перейдёт первый авторизованный пользователь, будет создана конференция с именем "whatever".
По умолчанию, при установке Ubuntu фаервол отключен, что недопустимо для системы, смотрящей в публичные сети. Поэтому посленим шагом настройки будет добавление необходимых правил и включение фаервола.
ufw allow ssh ufw allow http ufw allow https ufw allow in 10000/udp ufw enableДобавление функции записи конференций описано в другой статье блога.
Добрый день!
ОтветитьУдалитьСкажите, пожалуйста, не знаете ли вы способа части этих пользователей назначать права модераторов автоматически, для любых конференций или избранных. А всем остальным пользователям домена обычные права.
Самый простой вариант всех пользователей, которые не являются модераторами пускать анонимно, а у пользователей с правами модератора просить авторизацию. Более сложный вариант попробовать создать рабочую конфигурацию с использованием модуля mod_muc_allowners для prosody
УдалитьДобрый день!
ОтветитьУдалитьСделал всё по вашей инструкции на Ubuntu 20.04, авторизация вроде проходит, но после ввода корректного логина и пароля бесконечно висит состояние - "Подключение" и ничего не происходит. Не подскажете, куда копать?
Можно проверить, есть ли эти строки
Удалитьcross_domain_bosh = false;
consider_bosh_secure = true;
в файле конфигурации сервера /etc/prosody/conf.avail/meet.oldfag.ru.cfg.lua. В моём случае они уже были после установки Jitsi Meet. Строки должны находится перед секцией VirtualHost "meet.oldfag.ru". Имя сервера, естественно, нужно заменить на ваше. Так же при ldap-авторизации нужно использовать имя пользователя без указания домена, т.е. не user@oldfag.ru, а просто user.
Добрый день. Такая же проблема, как у вышеотписавшегося человека. Указанные строки в конфиге имеются. При вводе любого логина и пароля (даже неправильного) бесконечно висит состояние - "Подключение".
УдалитьМожно посмотреть в файле /etc/prosody/prosody.cfg.lua расположение логов prosody и посмотреть их, может там будет что-то интересное. Параметры ведения логов описаны в секции log = { ... }.
УдалитьДоброго времени суток!
ОтветитьУдалитьПодскажите пожалуйста, поставил по вашему руководству. Пользователи подключаются в разные комнаты с одинаковым именем, не могу понять в чем проблема?
Пользователи переходят по ссылке в комнату или пишут её имя на главной странице сервиса руками? Скорее всего где-то в написании имени комнаты допускают ошибку.
Удалитьбез разницы, и по ссылке и в ручную подставляя имя комнаты каждый подключается в свою
Удалитьошибка исключена при имени комнаты "1" :)
УдалитьУ меня не было подобной ситуации, но на портале Jitsi есть ветка с подобной проблемой https://community.jitsi.org/t/jitsi-creating-different-rooms-with-the-same-address/43800, правда она единственная и там нет способа исправить подобную ситуацию.
Удалитьнастроил по вашей инструкции авторизация не включается (( система ubuntu 20.04
ОтветитьУдалитьps / вот еще инструкцию находил аналогичную на английском https://github.com/jitsi/jitsi-meet/wiki/LDAP-Authentication
несколько раз уже проверил все.
УдалитьПользователи не могут авторизоваться или не появляется окно для авторизации?
УдалитьПодскажите возможно сделать чтобы гости заходили не дожидаясь модератора. А то народ ждет когда зайдет модер.
ОтветитьУдалитьНет.
УдалитьЗдравствуйте! А можно сделать так, чтобы каждый пользователь из группы AD "пользователи ВКС" не имел доступ ко всем конференциям? Только один, который создал конференцию
ОтветитьУдалитьЭтот комментарий был удален автором.
ОтветитьУдалить