Tutorial

Установка Jitsi Meet в Debian 10

Published on June 11, 2020
Русский
Установка Jitsi Meet в Debian 10

Автор выбрал фонд Open Internet/Free Speech для получения пожертвования в рамках программы Write for DOnations.

Введение

Jitsi Meet — приложение с открытым исходным кодом на базе WebRTC, предназначенное для проведения видеоконференций. Сервер Jitsi Meet создает виртуальные залы для видеоконференций на несколько человек, для доступа к которым требуется только браузер и которые обеспечивают функции, аналогичные Zoom или Skype. Преимущество конференции Jitsi заключается в том, что все ваши данные передаются только через ваш сервер, а комплексное шифрование TLS обеспечивает защиту от перехвата и несанкционированного прослушивания. С Jitsi вы можете быть уверены, что ваша частная информация будет защищена.

В этом обучающем модуле мы установим и настроим сервер Jitsi Meet на сервере Debian 10. Конфигурация по умолчанию позволяет любому пользователю создать новую конференцию. Такая настройка не идеальна для общедоступного сервера в Интернете, поэтому мы также настроим Jitsi Meet так, чтобы новые конференции могли создавать только зарегистрированные пользователи. После создания конференции к ней могут присоединиться любые пользователи, если у них есть уникальная ссылка и пароль (если он установлен).

Предварительные требования

Для прохождения этого обучающего руководства вам потребуется следующее:

  • Один сервер Debian 10, настроенный в соответствии с инструкциями по начальной настройке сервера с Debian 10, а также пользователь без привилегий root с привилегиями sudo. Требуемый размер сервера в основном зависит от доступной пропускной способности и ожидаемого количества пользователей сервера. В следующей таблице примерно показано, что может потребоваться.
  • Доменное имя, настроенное так, чтобы указывать на ваш сервер. Вы можете узнать, как указывать домены на DigitalOcean Droplet, из руководства Настройка имени хоста с помощью DigitalOcean. В этом руководстве используется пример доменного имени jitsi.your-domain.

Если вы выберете сервер для запуска экземпляра Jitsi Meet, вам нужно будет рассмотреть системные ресурсы, требующиеся для хостинга конференций. Следующая информация о тесте собрана на основе одноядерной виртуальной машины с использованием настроек видео высокого качества:

Процессор Пропускная способность сервера
Два участника 3% 30 Кбит/с восходящее, 100 Кбит/с нисходящее
Три участника 15% 7 Мбит/с восходящее, 6,5 Мбит/с нисходящее

Разница в использовании ресурсов между двумя и тремя участниками обусловлена тем, что Jitsi перенаправляет данные вызовов напрямую между клиентами, если их только двое. Если имеется более двух клиентов, данные вызова пересылаются через сервер Jitsi Meet.

Шаг 1 — Настройка имени хоста системы

На этом шаге мы изменим имя хоста системы для соответствия доменного имени, которое вы планируете использовать для своего экземпляра Jitsi Meet, и сопоставим это имя хоста с IP-адресом localhost, 127.0.0.1. Jitsi Meet использует обе эти настройки при установке и генерировании файлов конфигурации.

Вначале установите имя хоста системы на доменное имя, которое вы будете использовать для вашего экземпляра Jitsi. Следующая команда устанавливает имя текущего хоста и изменяет каталог /etc/hostname, где хранится имя хоста системы в промежутке между перезагрузками:

  1. sudo hostnamectl set-hostname jitsi.your-domain

Запущенная команда разбивается на части следующим образом:

  • hostnamectl — это утилита из набора инструментов systemd, предназначенная для правления именем хоста системы.
  • set-hostname устанавливает имя хоста системы.

Для проверки успешного запуска запустите следующую команду:

  1. hostname

Эта команда возвращает имя хоста, заданное командой hostnamectl:

Output
jitsi.your-domain

Далее мы установим локальное сопоставление имени хоста сервера с циклическим IP-адресом, 127.0.0.1. Для этого откройте файл /etc/hosts в текстовом редакторе:

  1. sudo nano /etc/hosts

Затем добавьте следующую строку:

/etc/hosts
127.0.0.1 jitsi.your-domain

Сопоставление доменного имени сервера Jitsi Meet с адресом 127.0.0.1 позволяет серверу Jitsi Meet использовать несколько сетевых процессов, устанавливающих локальные соединения друг с другом на IP-адресе 127.0.0.1. Для аутентификации и шифрования этих соединений используется сертификат TLS, зарегистрированный на ваше доменное имя. Локальное сопоставление доменного имени с адресом 127.0.0.1 позволяет использовать сертификат TLS для этих соединений локальной сети.

Сохраните и закройте файл.

Теперь ваш сервер имеет имя хоста, требуемое Jitsi для установки. На следующем шаге мы откроем порты брандмауэра, которые требуются Jitsi и установщику сертификата TLS.

Шаг 2 — Настройка брандмауэра

Выполняя указания руководства Начальная настройка сервера с Debian 10, вы включили брандмауэр UFW и открыли порт SSH. Серверу Jitsi требуется открыть несколько портов, чтобы он мог взаимодействовать с вызывающими клиентами. Процессу установки TLS также требуется открыть порт, чтобы можно было провести аутентификацию запроса сертификата.

Открыты будут следующие порты:

  • 80/tcp используется для запроса сертификата TLS.
  • 443/tcp используется для создания веб-страницы конференции.
  • 4443/tcp,10000/udp используется для приема и передачи шифрованного трафика вызова.

Запустите следующие команды ufw, чтобы открыть эти порты:

  1. sudo ufw allow 80/tcp
  2. sudo ufw allow 443/tcp
  3. sudo ufw allow 4443/tcp
  4. sudo ufw allow 10000/udp

Проверьте их добавление с помощью команды ufw status:

  1. sudo ufw status

Если эти порты открыты, вы увидите следующий вывод:

Output
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere 80/tcp ALLOW Anywhere 443/tcp ALLOW Anywhere 4443/tcp ALLOW Anywhere 10000/udp ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) 80/tcp (v6) ALLOW Anywhere (v6) 443/tcp (v6) ALLOW Anywhere (v6) 4443/tcp (v6) ALLOW Anywhere (v6) 10000/udp (v6) ALLOW Anywhere (v6)

Теперь сервер готов к установке Jitsi, которую мы выполним на следующем шаге.

Шаг 3 — Установка Jitsi Meet

На этом шаге мы добавим стабильный репозиторий Jitsi на ваш сервер, а затем установим пакет Jitsi Meet из этого репозитория. Так вы гарантируете, что всегда будете использовать последний стабильный пакет Jitsi Meet.

Вначале установите пакет gnupg, позволяющий системе управлять криптографическими ключами GPG:

  1. sudo apt install gnupg

Затем загрузите ключ Jitsi GPG с помощью утилиты загрузки wget:

  1. wget https://download.jitsi.org/jitsi-key.gpg.key

Диспетчер пакетов apt будет использовать этот ключ GPG для проверки пакетов, которые вы будете загружать из репозитория Jitsi.

Добавьте загруженный ключ GPG на связку ключей apt, используя утилиту apt-key:

  1. sudo apt-key add jitsi-key.gpg.key

Теперь вы можете удалить файл ключа GPG, потому что он больше не требуется:

  1. rm jitsi-key.gpg.key

Теперь мы добавим репозиторий Jitsi на ваш сервер, создав новый файл источника, содержащий репозиторий Jitsi. Откройте и создайте новый файл с помощью редактора:

  1. sudo nano /etc/apt/sources.list.d/jitsi-stable.list

Добавьте эту строку в файл для репозитория Jitsi:

/etc/apt/sources.list.d/jitsi-stable.list
deb https://download.jitsi.org stable/

Сохраните файл и закройте редактор.

В заключение проведите обновление системы, чтобы получить список пакетов из репозитория Jitsi, а затем установите пакет jitsi-meet:

  1. sudo apt update
  2. sudo apt install jitsi-meet

Во время установки jitsi-meet вам будет предложено ввести желаемое доменное имя (например, jitsi.your-domain) для вашего экземпляра Jitsi Meet.

Изображение диалогового окна установки имени хоста jitsi-meet

Примечание. Вы перемещаете курсор с поля hostname, чтобы выделить кнопку <OK> клавишей TAB. Нажмите ENTER, когда <OK> выделяется для отправки имени хоста.

Затем откроется новое диалоговое окно, где нужно указать, хотите ли вы, чтобы Jitsi создал и использовал самоподписанный сертификат TLS или использовал уже имеющийся сертификат:

Изображение диалогового окна установки сертификата jitsi-meet

Если у вас нет сертификата TLS для вашего домена Jitsi, выберите первую опцию,«Генерировать новый самоподписанный сертификат».

Теперь ваш экземпляр Jitsi Meet установлен с самоподписанным сертификатом TLS. При использовании такого сертификата в браузере будут выводиться предупреждения, поэтому на следующем шаге мы получим подписанный сертификат TLS.

Шаг 4 — Получение подписанного сертификата TLS

Jitsi Meet использует сертификаты TLS для шифрования трафика вызова, чтобы никто не мог прослушивать вызов через Интернет. Сертификаты TLS — это те же сертификаты, которые используются сайтами для активации URL с протоколом HTTPS.

Jitsi Meet предоставляет программу для автоматической загрузки сертификата TLS для вашего доменного имени. Эта программа использует утилиту Certbot. Вам нужно будет установить эту программу до того, как вы запустите скрипт установки сертификата.

Вначале установите пакет certbot с помощью следующей команды:

  1. sudo apt install certbot

Теперь ваш сервер может спокойно запускать программу установки сертификата TLS, предоставленную Jitsi Meet:

  1. sudo /usr/share/jitsi-meet/scripts/install-letsencrypt-cert.sh

При запуске скрипта откроется следующий диалог ввода адреса электронной почты:

Output
------------------------------------------------------------------------- This script will: - Need a working DNS record pointing to this machine(for domain jitsi.example.com) - Download certbot-auto from https://dl.eff.org to /usr/local/sbin - Install additional dependencies in order to request Let’s Encrypt certificate - If running with jetty serving web content, will stop Jitsi Videobridge - Configure and reload nginx or apache2, whichever is used - Configure the coturn server to use Let's Encrypt certificate and add required deploy hooks - Add command in weekly cron job to renew certificates regularly You need to agree to the ACME server's Subscriber Agreement (https://letsencrypt.org/documents/LE-SA-v1.1.1-August-1-2016.pdf) by providing an email address for important account notifications Enter your email and press [ENTER]:

Этот адрес электронной почты будет отправлен эмитенту сертификата https://letsencrypt.org и будет использоваться для уведомлений о безопасности и других вопросов, связанных с сертификатом TLS. Для продолжения установки необходимо ввести адрес электронной почты. После этого установка продолжится без дальнейших остановок.

После ее завершения ваш экземпляр Jitsi Meet будет настроен для использования подписанного сертификата TLS для вашего доменного имени. Обновление сертификатов также будет производиться автоматически, поскольку программа установки разместила по адресу /etc/cron.weekly/letsencrypt-renew скрипт обновления, который будет запускаться каждую неделю.

Теперь ваш сервер Jitsi Meet запущен и готов к тестированию. Откройте браузер и введите свое доменное имя. Вы сможете создать новую конференцию и пригласить других пользователей.

Конфигурация Jitsi Meet по умолчанию разрешает всем посетителям главной страницы вашего сервера Jitsi Meet создавать новые конференции. Для проведения конференции будут использоваться ресурсы вашего сервера, поэтому нежелательно давать такую возможность сторонним пользователям. На следующем шаге мы настроим ваш экземпляр Jitsi Meet так, чтобы конференции могли создавать только зарегистрированные пользователи.

Шаг 5 — Блокировка создания конференций

На следующем шаге мы настроим ваш сервер Jitsi Meet так, чтобы конференции могли создавать только зарегистрированные пользователи. Мы отредактируем файлы, котоыре были сгенерированы программой установки и настроены с использованием вашего доменного имени.

В следующих примерах мы будем использовать переменную your_domain вместо доменного имени.

Вначале откройте в текстовом редакторе файл /etc/prosody/conf.avail/your_domain.cfg.lua:

  1. sudo nano /etc/prosody/conf.avail/your_domain.cfg.lua

Отредактируйте эту строку:

/etc/prosody/conf.avail/your_domain.cfg.lua
...
        authentication = "anonymous"
...

Следующим образом:

/etc/prosody/conf.avail/your_domain.cfg.lua
...
        authentication = "internal_plain"
...

Эта конфигурация предписывает Jitsi Meet использовать аутентификацию с именем пользователя и паролем, прежде чем разрешить новому посетителю создавать конференции.

Затем добавьте в конец файла следующий раздел:

/etc/prosody/conf.avail/your_domain.cfg.lua
...
VirtualHost "guest.your_domain"
    authentication = "anonymous"
    c2s_require_encryption = false

Эта конфигурация позволяет анонимным пользователям присоединяться к конференциям, созданным пользователем, прошедшим аутентификацию. Однако для входа у гостя должен иметься уникальный адрес и пароль конференции (если этот пароль задан).

Здесь вы добавили guest. перед доменным именем. Например, для jitsi.your-domain мы указываем put guest.jitsi.your-domain. Имя хоста guest.обычно используется Jitsi Meet для внутренних целей. Это имя не вводится в браузер, и не надо создавать для него запись DNS.

Откройте другой файл конфигурации по адресу /etc/jitsi/meet/your_domain-config.js в текстовом редакторе:

  1. sudo nano /etc/jitsi/meet/your_domain-config.js

Отредактируйте эту строку:

/etc/jitsi/meet/your_domain-config.js
...
        // anonymousdomain: 'guest.example.com',
...

Следующим образом:

/etc/jitsi/meet/your_domain-config.js
...
        anonymousdomain: 'guest.your_domain',
...

Если вы используете имя хоста guest.your_domain, которое мы использовали ранее, эта конфигурация укажет Jitsi Meet, какое внутреннее имя хоста следует использовать для гостей, не прошедших аутентификацию.

Затем откройте /etc/jitsi/jicofo/sip-communicator.properties:

  1. sudo nano /etc/jitsi/jicofo/sip-communicator.properties

Добавьте следующую строку для завершения изменений конфигурации:

/etc/jitsi/jicofo/sip-communicator.properties
org.jitsi.jicofo.auth.URL=XMPP:your_domain

Эта конфигурация перенаправляет процессы Jitsi Meet на локальный сервер, который выполняет аутентификацию пользователя, которая теперь обязательна.

Ваш экземпляр Jitsi Meet теперь настроен, и конференции могут создавать только зарегистрированные пользователи. После создания конференции к ней может присоединиться кто угодно без регистрации. Для этого им потребуется уникальный адрес конференции и пароль, если он задан создателем конференции.

Мы настроили Jitsi Meet так, чтобы требовать аутентификацию пользователей при создании конференций, и теперь вам нужно зарегистрировать этих пользователей и их пароли. Для этого мы используем утилиту prosodyctl.

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

  1. sudo prosodyctl register user your_domain password

Добавляемый здесь пользователь не является системным пользователем. Этот пользователь сможет только создать конференцию, но не сможет войти на ваш сервер через SSH.

В заключение перезапустите процессы Jitsi Meet и Nginx для загрузки новой конфигурации:

  1. sudo systemctl restart prosody.service
  2. sudo systemctl restart jicofo.service
  3. sudo systemctl restart jitsi-videobridge2.service
  4. sudo systemctl restart nginx

Теперь экземпляр Jitsi Meet будет требовать ввести имя пользователя и пароль в диалоге при создании конференции.

Изображение поля ввода имени пользователя и пароля Jitsi

Теперь ваш сервер Jitsi Meet настроен и имеет защищенную конфигурацию.

Заключение

В этой статье мы рассказали о развертывании сервера Jitsi Meet, который вы можете использовать для хостинга защищенных частных видеоконференций. Теперь вы можете дополнить свой экземпляр Jitsi Meet инструкциями из Jitsi Meet Wiki.

Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.

Learn more about our products

About the authors

I have been a Linux Systems Administrator and technical content creator for more than 20 years. I am passionate about using and promoting OSS.



Still looking for an answer?

Ask a questionSearch for more help

Was this helpful?
 
Leave a comment


This textbox defaults to using Markdown to format your answer.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

Try DigitalOcean for free

Click below to sign up and get $200 of credit to try our products over 60 days!

Sign up

Join the Tech Talk
Success! Thank you! Please check your email for further details.

Please complete your information!

Become a contributor for community

Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.

DigitalOcean Documentation

Full documentation for every DigitalOcean product.

Resources for startups and SMBs

The Wave has everything you need to know about building a business, from raising funding to marketing your product.

Get our newsletter

Stay up to date by signing up for DigitalOcean’s Infrastructure as a Newsletter.

New accounts only. By submitting your email you agree to our Privacy Policy

The developer cloud

Scale up as you grow — whether you're running one virtual machine or ten thousand.

Get started for free

Sign up and get $200 in credit for your first 60 days with DigitalOcean.*

*This promotional offer applies to new accounts only.