Jitsi meet установка и настройка сервера ubuntu

Обновлено: 08.07.2024

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

Введение

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

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

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

  • Один сервер Ubuntu 18.04, настроенный в соответствии с инструкциями по начальной настройке сервера с Ubuntu 18.04, а также non-root user с привилегиями 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 , где хранится имя хоста системы в промежутке между перезагрузками:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

В заключение проведите обновление системы, чтобы получить список пакетов из репозитория Jitsi, а затем установите пакет 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 для вашего доменного имени. Эта программа использует утилиту Certbot. Вам нужно будет установить эту программу до того, как вы запустите скрипт установки сертификата.

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

Затем установите пакет certbot :

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

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

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

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

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

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

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

Откройте sudo nano /etc/prosody/conf.avail/your_domain.cfg.lua в текстовом редакторе:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Заключение

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

Jitsi Meet is an open-source video-conferencing application based on WebRTC. A Jitsi Meet server provides multi-person video conference rooms that you can access using nothing more than your browser and provides comparable functionality to a Zoom or Skype conference call. The benefit of a Jitsi conference is that all your data only passes through your server, and the end-to-end TLS encryption ensures that no one can snoop on the call. With Jitsi you can be sure that your private information stays that way.

In this tutorial, you will install and configure a Jitsi Meet server on Ubuntu 18.04. The default configuration allows anyone to create a new conference room. This is not ideal for a server that is publicly available on the internet so you will also configure Jitsi Meet so that only registered users can create new conference rooms. After you have created the conference room, any users can join, as long as they have the unique address and the optional password.

Prerequisites

Before you begin this guide you’ll need the following:

When you are choosing a server to run your Jitsi Meet instance you will need to consider the system resources needed to host conference rooms. The following benchmark information was collected from a single-core virtual machine using high-quality video settings:

CPU Server Bandwidth
Two Participants 3% 30Kbps Up, 100Kbps Down
Three Participants 15% 7Mbps Up, 6.5Mbps Down

The jump in resource use between two and three participants is because Jitsi will route the call data directly between the clients when there are two of them. When more than two clients are present then call data is routed through the Jitsi Meet server.

Step 1 — Setting the System Hostname

In this step, you will change the system’s hostname to match the domain name that you intend to use for your Jitsi Meet instance and resolve that hostname to the localhost IP, 127.0.0.1 . Jitsi Meet uses both of these settings when it installs and generates its configuration files.

First, set the system’s hostname to the domain name that you will use for your Jitsi instance. The following command will set the current hostname and modify the /etc/hostname that holds the system’s hostname between reboots:

The command that you ran breaks down as follows:

  • hostnamectl is a utility from the systemd tool suite to manage the system hostname.
  • set-hostname sets the system hostname.

Check that this was successful by running the following:

This will return the hostname you set with the hostnamectl command:

Next, you will set a local mapping of the server’s hostname to the loopback IP address, 127.0.0.1 . Do this by opening the /etc/hosts file with a text editor:

Then, add the following line:

Mapping your Jitsi Meet server’s domain name to 127.0.0.1 allows your Jitsi Meet server to use several networked processes that accept local connections from each other on the 127.0.0.1 IP address. These connections are authenticated and encrypted with a TLS certificate, which is registered to your domain name. Locally mapping the domain name to 127.0.0.1 makes it possible to use the TLS certificate for these local network connections.

Save and exit your file.

Your server now has the hostname that Jitsi requires for installation. In the next step, you will open the firewall ports that are needed by Jitsi and the TLS certificate installer.

Step 2 — Configuring the Firewall

When you followed the Initial Server Setup with Ubuntu 18.04 guide you enabled the UFW firewall and opened the SSH port. The Jitsi server needs some ports opened so that it can communicate with the call clients. Also, the TLS installation process needs to have a port open so that it can authenticate the certificate request.

The ports that you will open are the following:

  • 80/tcp used in the TLS certificate request.
  • 443/tcp used for the conference room creation web page.
  • 4443/tcp,10000/udp used to transmit and receive the encrypted call traffic.

Run the following ufw commands to open these ports:

Check that they were all added with the ufw status command:

You will see the following output if these ports are open:

The server is now ready for the Jitsi installation, which you will complete in the next step.

Step 3 — Installing Jitsi Meet

In this step, you will add the Jitsi stable repository to your server and then install the Jitsi Meet package from that repository. This will ensure that you are always running the latest stable Jitsi Meet package.

First, download the Jitsi GPG key with the wget downloading utility:

The apt package manager will use this GPG key to validate the packages that you will download from the Jitsi repository.

Next, add the GPG key you downloaded to apt ’s keyring using the apt-key utility:

You can now delete the GPG key file as it is no longer needed:

Now, you will add the Jitsi repository to your server by creating a new source file that contains the Jitsi repository. Open and create the new file with your editor:

Add this line to the file for the Jitsi repository:

Save and exit your editor.

Finally, perform a system update to collect the package list from the Jitsi repository and then install the jitsi-meet package:

During the installation of jitsi-meet you will be prompted to enter the domain name (for example, jitsi.your-domain ) that you want to use for your Jitsi Meet instance.

Image showing the jitsi-meet installation hostname dialog

Note: You move the cursor from the hostname field to highlight the <OK> button with the TAB key. Press ENTER when <OK> is highlighted to submit the hostname.

You will then be shown a new dialog box that asks if you want Jitsi to create and use a self-signed TLS certificate or use an existing one you already have:

Image showing the jitsi-meet installation certificate dialog

If you do not have a TLS certificate for your Jitsi domain select the first, Generate a new self-signed certificate, option.

Your Jitsi Meet instance is now installed using a self-signed TLS certificate. This will cause browser warnings, so you will get a signed TLS certificate in the next step.

Step 4 — Obtaining a Signed TLS Certificate

Jitsi Meet supplies a program to automatically download a TLS certificate for your domain name that uses the Certbot utility. You will need to install this program before you run the certificate installation script.

First, add the Certbot repository to your system to ensure that you have the latest version of Certbot. Run the following command to add the new repository and update your system:

Next, install the certbot package:

Your server is now ready to run the TLS certificate installation program provided by Jitsi Meet:

When you run the script you will be shown the following prompt for an email address:

When it finishes, your Jitsi Meet instance will be configured to use a signed TLS certificate for your domain name. Certificate renewals will also happen automatically because the installer placed a renewal script at /etc/cron.weekly/letsencrypt-renew that will run each week.

Close this port in your firewall with the following ufw command:

Your Jitsi Meet server is now up and running and available for testing. Open a browser and point it to your domain name. You will be able to create a new conference room and invite others to join you.

The default configuration for Jitsi Meet is that anyone visiting your Jitsi Meet server homepage can create a new conference room. This will use your server’s system resources to run the conference room and is not desirable for unauthorized users. In the next step, you will configure your Jitsi Meet instance to only allow registered users to create conference rooms.

Step 5 — Locking Conference Creation

In this step, you will configure your Jitsi Meet server to only allow registered users to create conference rooms. The files that you will edit were generated by the installer and are configured with your domain name.

The variable your_domain will be used in place of a domain name in the following examples.

First, open sudo nano /etc/prosody/conf.avail/your_domain.cfg.lua with a text editor:

To the following:

This configuration tells Jitsi Meet to force username and password authentication before allowing conference room creation by a new visitor.

Then, in the same file, add the following section to the end of the file:

This configuration allows anonymous users to join conference rooms that were created by an authenticated user. However, the guest must have a unique address and an optional password for the room to enter it.

Here, you added guest. to the front of your domain name. For example, for jitsi.your-domain you would put guest.jitsi.your-domain . The guest. hostname is only used internally by Jitsi Meet. You will never enter it into a browser or need to create a DNS record for it.

Open another configuration file at /etc/jitsi/meet/your_domain-config.js with a text editor:

To the following:

Again, by using the guest. your_domain hostname that you used earlier this configuration tells Jitsi Meet what internal hostname to use for the un-authenticated guests.

Next, open /etc/jitsi/jicofo/sip-communicator.properties :

And add the following line to complete the configuration changes:

This configuration points one of the Jitsi Meet processes to the local server that performs the user authentication that is now required.

Your Jitsi Meet instance is now configured so that only registered users can create conference rooms. After a conference room is created, anyone can join it without needing to be a registered user. All they will need is the unique conference room address and an optional password set by the room’s creator.

Now that Jitsi Meet is configured to require authenticated users for room creation you need to register these users and their passwords. You will use the prosodyctl utility to do this.

Run the following command to add a user to your server:

The user that you add here is not a system user. They will only be able to create a conference room and are not able to log in to your server via SSH.

Finally, restart the Jitsi Meet processes to load the new configuration:

The Jitsi Meet instance will now request a username and password with a dialog box when a conference room is created.

Image showing the Jitsi username and password box

Your Jitsi Meet server is now set up and securely configured.

Conclusion

In this article, you deployed a Jitsi Meet server that you can use to host secure and private video conference rooms. You can extend your Jitsi Meet instance with instructions from the Jitsi Meet Wiki.

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

Сейчас во время пандемии коронавируса (COVID-19) многие люди работают и проводят собрания онлайн. Многие пользователи выбрали бесплатные решения для видеоконференций, такие как Zoom.

Однако, такие сервисы оказались подвержены различным уязвимостям, например «зумбомбингу». Это когда постороннее лицо подключается к веб-конференции и прерывает собрание. Таким образом, все же лучше воспользоваться более безопасным и приватным решением для видеоконференций.

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

Что такое Jitsi?


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

Jitsi предлагает несколько стандартных для сервисов видеоконференций функций:

  • Передача звука и видеоизображения
  • Текстовые чаты
  • Парольная защита для сеансов видеоконференций
  • Поддержка большого количества участников

Установка Jitsi на Vultr VPS


Jitsi может быть установлен на виртуальной машине Linux всего за несколько шагов, потому что большая часть процесса установки автоматизирована разработчиками Jitsi. Для использования сервиса вам потребуется сервер Linux на базе Ubuntu. Проще всего настроить Jitsi можно в облачном сервисе Vultr.

Воспользуйтесь следующей инструкцией, чтобы настроить собственное решение для видеоконференций в рамках собственного аккаунта Vultr.

Установка платформы видеоконференций Jitsi Meet на сервер Ubuntu 18.04

Рассмотрим установку серверной части платформы видеоконференций Jitsi Meet на сервер Ubuntu 18.04. В качестве примера будет показана установка платформы при использовании хостинг-провайдера Vultr.

Необходимые условия:

  • Операционная система Ubuntu 18.0.4 или выше, или Debian 9 или выше
  • Параметры сервера – 1 CPU и 1 ГБ оперативной памяти, минимум.
  • Доменное имя. Достаточно поддомена с доступом по изменению настроек DNS.

Приступаем к установке Jitsi Meet.

Выбор сервера

В качестве примера используется хостинг-провайдер Vultr. Регистрируемся на сайте, выбираем сервер Cloud Compute. В качестве расположения сервера стоит выбрать локацию с наиболее близкой страной. В моем случае это Германия (Frankfurt). Операционная система Ubuntu 18.04.


Создаём swap-файл подкачки

Рекомендуется создать файл подкачки с тем же размером, что объем оперативной памяти. В нашем случае оперативной памяти 1 ГБ, соответственно файл подкачки создадим с таким же размером. В терминале выполните следующие команды:


Доменное имя и создание хост-имени

Для использования шифрования платформы Jitsi Meet необходимо использовать доменное имя. Если у вас уже есть доменное имя, то достаточно будет создать поддомен и настроить DNS.

Примечание: при покупке домена стоит обращать внимание не только на стоимость покупки (первого года), но и на стоимость продления. Зачастую стоимость продления может быть значительно выше стоимости покупки.


На скриншоте отображена стоимость и продление домена в различных зонах регистратора TimeWeb. У этого же регистратора можно подобрать домен в зоне ru по цене в 99 рублей и продлении в 399 рублей.


После покупки домена, если есть необходимость, то создаем поддомен.



В настройках домена, либо поддомена меняем настройки DNS, заменяя А-запись на IP-адрес сервера.


Если на сервере используется адрес ipv6, то в настройках домена/поддомена укажите его в качестве AAA-записи.

Смена хост-имени сервера

Для смены хост-имени выполняем следующие команды (где jitsi это имя сервера, а jitsi.example.com название поддомена):


Проверяем имя хоста:

Настройка правил фаервола для работы платформы Jitsi Meet

При отображении следующего предложения: Command may disrupt existing ssh connections. Proceed with operation (y|n)? выберите y и затем нажмите клавишу Enter.

Обновляем и перезагружаем систему

Устанавливаем OpenJDK Java Runtime Environment (JRE) 8

Для платформы Jitsi Meet требуется установка Java Runtime Environment. Выполняем команду в терминале:

Проверяем результат следующей командой:

Вывод должен быть примерно таким:

Кроме того, вы можете настроить переменную среды JAVA_HOME следующим образом:

Установка веб-сервера Nginx

Для лучшей работы Jitsi Meet стоит установить веб-сервер Nginx:

Установив веб-сервер Nginx, нет необходимости настраивать его вручную, потому что установщик Jitsi Meet справится с этой задачей чуть позже.

Примечание: Если Nginx или Apache отсутствуют, установщик Jitsi Meet автоматически установит Jetty вместе с программой Jitsi Meet.

Установка Jitsi Meet на сервер

В современной системе Ubuntu или Debian вы можете легко установить Jitsi Meet с помощью официального DEB репозитория Jitsi. Добавляем репозиторий:

Устанавливаем платформу Jitsi Meet:

Во время установки появится несколько уведомлений.

Уведомление о хост-имени: The hostname of the current installation.


Необходимо указать созданное нами хост-имя в виде доменного имени (или поддомена), затем подтвердить изменения нажатием клавиши Enter.

В следующем уведомлении нас спросят о SSL сертификате, выбираем строчку Generate a new self-signed certificate (You will later get a chance to obtain a Let's Encrypt certificate) и нажимаем клавишу Enter.


После успешной установки Jitsi Meet используйте следующий скрипт, чтобы подать заявку на бесплатный SSL-сертификат от Let' Encrypt:

Во время установки надо будет указать адрес электронной почты и подтвердите нажатием на Enter. Этот скрипт будет автоматически обрабатывать любые задачи, связанные с SSL-сертификатом Let's Encrypt.




Защита видеоконференций Jitsi с помощью пароля

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

Сделать это можно следующим образом в веб-интерфейсе Jitsi:

  • В нижнем правом углу Jitsi Meet нажмите иконку дополнительной информации.


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

Безопасный сервис с открытым исходным кодом

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

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

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


И сейчас мы вам расскажем как всего за 15-30 минут вы сможете быстро установить собственный частный сервер видеоконференций на платформе Jitsi, а также обеспечить его безопасность от сторонних людей.
После этого вы сможете организовывать видеоконференции со своими друзьями или проводить срочные видео совещания с сотрудниками на своей работе.

Так как статья у нас охватывает все сразу, то мы разобьем ее на несколько частей.

Что же позволяет этот чудесный сервис

1. Описание функционала сервиса

Сервис Jitsi Meet Jitsi – это надежный, простой способ видеосвязи, который работает по принципу “точка – точка”, от браузера к браузеру. Он создает виртуальные залы и позволяет организовывать профессиональные вебинары, видеоконференции и проведение презентаций на несколько человек, для доступа к которым требуется только браузер и которые обеспечивают функции, аналогичные Zoom или Skype.

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

Каким же еще функционалом он обладает?

А также, можно в чате Jitsi смотреть видео с YouTube всем вместе, совместно редактировать документы в Etherpad, и имеется возможность подключения участников через телефонный шлюз Jigasi.
У участников конференции есть возможность виртуально поднять руку с помощью собственной кнопки — сигнализировать, что вы хотите получить слово следующим.
Все потоки данных передаваемые между клиентом и сервером шифруются (подразумевается, что сервер работает на собственных мощностях).

Сервис может обрабатывать в реальном времени тысячи видеопотоков по WebRTC. Такой вариант может подойти компаниям, которые не хотят отдавать трафик наружу и могут сами организовать видеоконференции.

Ограничения

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

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

Итак, приступим к установке этого чудесного сервиса.

2. Установка сервиса на Ubuntu 18.04

Для этого нам потребуется готовый установленный чистый Ubuntu Server 18.04 c минимальным требованием к оборудованию: жестким диском 10G, памятью 2G и процессор с 2-я ядрами.
Следует учесть, что это минимальные ресурсы, что бы он заработал. По мере увеличения количества залов конференции и одновременных участников будет необходимость в увеличении оперативной памяти и процессорных мощностей. А также если вы будете записывать видеоконференции, то надо будет увеличить и объем жесткого диска.
Не стоит забывать и про скорости канала связи с сервером, чем больше участником и чем выше качество передаваемого изображения, тем шире необходим канал.
Следующая информация о тесте собрана на основе одноядерной виртуальной машины с использованием настроек видео высокого качества:

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

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

Подготовка сервера

Если у вас в файле не было строчки 127.0.1.1 , то вторая команда ничего не выполнит.
Для этого сами откройте файл /etc/hosts на редактирование и добавьте в него следующую строчку

Теперь проверьте правильность установленного имени хоста командами

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

При выполнении последней команды сервер отобразит следующее предложение:
Command may disrupt existing ssh connections. Proceed with operation (y|n)?
Выберите Y и затем нажмите клавишу Enter.
И проверим что у нас получилось с помощью команды:

2.3. Обновляем сервер
Для этого приводим к следующему виду файл источника репозиториев /etc/apt/sources.list

Если сервер ругается на отсутствие ключа, то действуем как описано здесь:

Вначале файла после строки pid /run/nginx.pid; добавить include /etc/nginx/modules-enabled/*.conf; :

Перезагрузить сервис и включить автоматический его запуск при старте системы:

Как только Nginx установлен, можно проверить статус службы Nginx следующей командой:

В дальнейшем настройке веб-сервера Nginx, нет необходимости, так как установщик Jitsi Meet чуть позже справится с этой задачей сам.

Установка платформы Jitsi Meet

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

И импортировать официальный ключ подписи Jitsi Meet, чтобы apt могла проверить подлинность пакетов:

Теперь необходимо обновить информацию о пакетах и установить платформу Jitsi Meet:

Во время установки появится несколько уведомлений.

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

3. Работа с сервисом


Итак, сервис установлен и готов к работе!

Использование через веб-браузер.

После этого у вас откроется окно конференции. Она будет выглядеть следующим образом. Справа вверху ваше окно, по центру граватар (если ввели почту). Снизу панель управления.


Рассмотрим панель управления

  • весь экран монитора
  • окно приложения или программы
  • определенная вкладка браузера


Может быть полезно, когда вы объясняете другим собеседникам, как совершать то или иное действие на компьютере и демонстрируете это сами. Или, наоборот, увидеть, что у них не в порядке.


Посередине экрана расположились три основных иконки.

  • Микрофон – позволяет включать и отключать микрофон вашего устройства.
  • Завершить. Красная кнопка – выход с трансляции.
  • Камера – включение и выключение веб-камеры вашего устройства.


В завершении последних три иконки справа


Рассмотрим их по порядку сверху вниз.


В разделе профиль заполнить имя (будут видеть другие участники) и по желанию E-mail. Если почта прописана, сервис подтянет ваш граватар на экран.



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


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

Использование с мобильного устройства.

Для работы в конференции с мобильного телефона придется загрузить приложение из Play Маркета. В принципе, если вы не организатор конференции, то не обязательно его предварительно устанавливать.
Если вы откроете ссылку которую вам дали на существующую конференцию в браузере на Android или iOS-устройстве, то будете автоматически перенаправлены в магазин приложений, где сможете загрузить клиент Jitsi Meet. Как только он установится, появится кнопка «продолжить», которая мгновенно перенаправит вас к видеозвонку. Опять же, вам ничего не потребуется делать, кроме как нажать «загрузить» и «продолжить».

Функций этого клиента немного меньше, но это не помешает организовывать или участвовать в конференциях, стримах и вебинарах.

Как и в браузерной версии нужно придумать название новой комнаты для трансляции или ввести переданное вам название существующей.

В разделе недавние будут отображаться все трансляции, которые посещали ранее, кликнув по нужной, зайдете в нее снова.

4. Дополнительно


Хотел уделить внимание еще на пару моментов в использовании, не входящих в рамки базовой установки и использования.

Администраторы конференций

Создание Jitsi-пользователей с правами создавать новые конференции

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

Изменив в нем запись:
.
authentication = "anonymous"
.

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

Затем добавьте в конец этого файла следующий раздел:
.
VirtualHost "guest.jmeet.ualinux.com"
authentication = "anonymous"
c2s_require_encryption = false

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

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

  • Для завершения изменений конфигурации отредактируем последний файл /etc/jitsi/jicofo/sip-communicator.properties

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

И теперь вам нужно зарегистрировать этих пользователей и их пароли. Для этого мы используем утилиту prosodyctl .

Добавляемый здесь ПОЛЬЗОВАТЕЛЬ и ПАРОЛЬ не является системным пользователем. Это пользователь только Jitsi Meet для создания конференций, но это не тот пользователь, который сможет войти на ваш сервер через SSH.

Увидеть список созданных пользователей можно в виде файлов с расширением .dat в котором храниться пароль. Они находятся в папке /var/lib/prosody/ВАШ ДОМЕН/accounts
В нашем случае это будет выглядеть вот так:

В названии папки вместо символа (точки) используется %2.

Изменить пароль у пользователя:

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


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

Брендирование Jitsi Meet

Большинству стандартное оформление подойдет, но вы же не такой как все
Вы хотите, что бы зайдя на страничку, вы наблюдали собственный логотип, или вы более творческий человек и вам не нравятся стандартные иконки.

Все звуки вы найдете в папке /usr/share/jitsi-meet/sounds

Внимание! не забываем что после очередного обновления самого сервиса, ваши надписи, логотипы и иконки могут быть заменены на стандартные.
Поэтому рекомендуем хранить в отдельной папке все ваши изменения, что бы после очередного обновления сервиса можно было быстро востановить все ваши изменения по оформлению.

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

Заключение

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

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Читайте также: