В этой заметке будет описано то, как установить 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 "пользователи ВКС" не имел доступ ко всем конференциям? Только один, который создал конференцию
ОтветитьУдалитьЭтот комментарий был удален автором.
ОтветитьУдалитьЗдраствуйте! После установки нормально начал создаваться комнаты но после того как кто-то другой заходит в эту комнату начинает пере заходить с обоих сторон заново. и так бесконечно.(независимо какая авторизация)
ОтветитьУдалитьДобрый день, настроил по вашей инструкции всё хорошо но когда ссылку отправлю другим участникам чтобы они подключились к этой конференции но не подключается в список модератора нет запроса от кого-то. Заранее благодарю
ОтветитьУдалить