⚡ Ќовый онлайн курс по —етевым “ехнологи€м

до запуска осталось

ћерион Ќетворкс

10 минут чтени€

Jitsi Meet - это бесплатное программное обеспечение дл€ видеоконференций с открытым исходным кодом на базе WebRTC, которое работает на Linux, macOS, Windows, iOS и Android. ≈сли вы не довер€ете Zoom, вы можете запустить собственную платформу дл€ видеоконференций на собственном сервере. ѕреимущество Jitsi Meet заключаетс€ в том, что все ваши данные передаютс€ только через ваш сервер, а шифрование TLS обеспечивает защиту от перехвата и прослушивани€. Ёто руководство покажет вам, как установить Jitsi Meet на сервер Ubuntu 18.04 и 20.04, а также Debian 10.

> –уководство по установке Jitsi Meet в Linux

ќсобенности Jitsi Meet

  • —овершенно бесплатно
  • ѕоделитесь экраном своего компьютера с другими (Screensharing)
  • –ежим докладчика, который позвол€ет одновременно использовать экран и камеру
  • ¬ы можете поделитьс€ системным звуком во врем€ демонстрации экрана
  • ¬ы можете назначить авторизованных пользователей модераторами. ћодератор может отключить звук у каждого участника одним щелчком мыши
  • —в€зь по сети зашифрована с использованием DTLS-SRTP
  • —квозное шифрование
  • ¬ы можете установить пароль дл€ своей конференции, чтобы предотвратить вход случайных незнакомцев
  • «апишите конференцию и сохраните ее в Dropbox
  • “ранслируйте на YouTube Live и сохран€йте запись на YouTube
  • ѕриложени€ дл€ Android и iOS
  • “екстовый чат
  • ¬ы можете поделитьс€ текстовым документом
  • “елефонный доступ к конференции
  • »сход€щий вызов телефонному абоненту
  • ¬ы можете встроить вызов Jits Meet на любую веб-страницу с помощью всего нескольких строк кода

—истемные требовани€

¬ам понадобитс€:

  • Linux сервер и non-root user с привилеги€ми sudo
  • ƒоменное им€, указывающее на ваш сервер

Ўаг 1. ”становите Jitsi Meet из официального репозитори€ пакетов

Jitsi Meet не включен в репозиторий Ubuntu по умолчанию. ћы можем установить его из официального репозитори€ пакетов Jitsi, который также содержит несколько других полезных программных пакетов. ¬ойдите на свой сервер через SSH, затем выполните следующую команду, чтобы добавить официальный репозиторий Jitsi.

echo 'deb https://download.jitsi.org stable/' | sudo tee /etc/apt/sources.list.d/jitsi-stable.list

»мпортируйте открытый ключ Jitsi, чтобы менеджер пакетов APT мог провер€ть целостность пакетов, загруженных из этого репозитори€.

wget -qO -  https://download.jitsi.org/jitsi-key.gpg.key | sudo apt-key add -

ѕоскольку дл€ репозитори€ Jitsi требуетс€ HTTPS-соединение, нам нужно установить пакет apt-transport-https, чтобы APT установил HTTPS-соединение с репозиторием Jitsi.

sudo apt install apt-transport-https

«атем обновите локальный индекс пакета и установите Jitsi Meet в Ubuntu.

sudo apt update
sudo apt install jitsi-meet

¬о врем€ установки вам необходимо ввести им€ хоста дл€ вашего экземпл€ра Jitsi. Ёто им€ хоста, которое будет отображатьс€ в адресной строке веб-браузера, когда посетители присоедин€тс€ к вашей видеоконференции. ¬ы можете использовать описательное им€ хоста, например meet.example.com.

»м€ хоста

Ќа следующем экране вы можете выбрать создание нового самозавер€ющего сертификата TLS (Generate a new self-signed certificate), чтобы позже вы могли получить и установить доверенный сертификат LetТs Encryption.

Generate a new self-signed certificate

¬ процессе установки будут настроены некоторые параметры €дра Linux, которые сохран€ютс€ в файле /etc/sysctl.d/20-jvb-udp-buffers.conf. ѕосле завершени€ установки Jitsi Meet автоматически запуститс€. ¬ы можете проверить его статус с помощью:

systemctl status jitsi-videobridge2

ѕример вывода:

? jitsi-videobridge2.service - Jitsi Videobridge
   Loaded: loaded (/lib/systemd/system/jitsi-videobridge2.service; enabled; vendor preset: enabled)
   Active: active (running) since Fri 2020-04-24 12:11:13 UTC; 3min 27s ago
 Main PID: 3665 (java)
    Tasks: 37 (limit: 65000)
   CGroup: /system.slice/jitsi-videobridge2.service
           L-3665 java -Xmx3072m -XX:+UseConcMarkSweepGC -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp -Dnet.java.sip.communicator.SC_HOME_DIR_LOCATION=/etc/jitsi -Dnet.java.sip.communicator.SC_HO	

ѕакет jitsi-meet также извлекал другие пакеты в качестве зависимостей, например

  • openjdk-8-jre-headless: среда выполнени€ Java. Ёто необходимо, потому что Jitsi Meet написан на €зыке Java.
  • jicofo: Jitsi Conference Focus (systemctl status jicofo)
  • prosody: Ћегкий сервер Jabber / XMPP (systemctl status prosody)
  • coturn: сервер TURN и STUN дл€ VoIP (systemctl status coturn)

Ўаг 2. ќткройте порты в брандмауэре

Jitsi Meet прослушивает несколько портов UDP, что можно увидеть с помощью следующей команды. (≈сли на вашем сервере Ubuntu нет команды netstat, вы можете запустить команду sudo apt install net-tools, чтобы установить ее.)

sudo netstat -lnptu | grep java
sudo netstat -lnptu | grep java

„тобы участники могли присоединитьс€ к видеоконференции из веб-браузера, вам необходимо открыть TCP-порт 80 и 443. ј дл€ передачи видео по сети откройте UDP-порт 10000 и 5000. ≈сли вы используете брандмауэр UFW, запустите следующую команду, чтобы открыть эти порты.

sudo ufw allow 80,443/tcp
sudo ufw allow 10000,5000/udp	

Ўаг 3. ѕолучите доверенный сертификат Let's Encrypt TLS

ѕерейдите в службу хостинга DNS (обычно это ваш регистратор домена), чтобы создать запись DNS A дл€ вашего имени хоста Jitsi (meet.example.com). «атем запустите следующий скрипт, чтобы получить доверенный сертификат LetТs Encrypt TLS:

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

¬ведите свой адрес электронной почты, чтобы получать важные уведомлени€ об учетной записи. «атем он загрузит certbot и получит сертификат TLS.

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]:

≈сли все в пор€дке, вы увидите следующее сообщение, указывающее, что сертификаты TLS были успешно получены и установлены.

TLS

ќбратите внимание, что этот сценарий использует запрос http-01, что означает, что ваш веб-сервер Apache или Nginx должен прослушивать порт 80 общедоступного IP-адреса. ≈сли ваша серверна€ среда не поддерживает вызов http-01, вам не следует запускать приведенный выше сценарий. ¬ам нужно использовать другие типы задач. ¬ этом случае используем вызов DNS.

sudo certbot --agree-tos -a dns-cloudflare -i nginx --redirect --hsts --staple-ocsp --email me@example.com -d meet.example.com

√де:

  • --agree-tos: примите услови€ использовани€.
  • -a dns-cloudflare: используем плагин DNS cloudflare дл€ аутентификации, потому что используем службу Cloudflare DNS.
  • -i nginx: использовать плагин nginx дл€ установки сертификата TLS. ≈сли вы используете Apache, вам необходимо заменить nginx на apache.
  • --redirect: принудительно использовать HTTPS с помощью 301 редиректа.
  • --hsts: добавл€ть заголовок Strict-Transport-Security к каждому ответу HTTP. «аставить браузер всегда использовать TLS дл€ домена. «ащищает от удалени€ SSL/TLS.
  • --staple-ocsp: включает сшивание OCSP. ƒопустимый ответ OCSP прикреплен к сертификату, который сервер предлагает во врем€ TLS.

Ўаг 4. ¬ключите HTTP2

HTTP2 может улучшить скорость загрузки веб-страницы. „тобы включить HTTP2 в Nginx, отредактируйте файл конфигурации виртуального хоста.

sudo nano /etc/nginx/sites-enabled/meet.example.com.conf

Ќайдите следующие две строки.

listen 443 ssl;
listen [::]:443 ssl;	

ƒобавьте http2 в конце каждой строки.

listen 443 ssl http2;
listen [::]:443 ssl http2;

—охраните и закройте файл. «атем перезагрузите Nginx, чтобы изменени€ вступили в силу.

sudo systemctl reload nginx

Ўаг 5. Ќачните новую онлайн-встречу

“еперь посетите https://meet.example.com, и вы сможете начать конференцию. ƒл€ передачи звука вам необходимо разрешить веб-браузеру использовать ваш микрофон. ј дл€ передачи видео вам необходимо разрешить веб-браузеру доступ к вашей камере.

Jitsi Meet

ƒайте вашей встрече название и нажмите кнопку Go. ѕосле начала собрани€ вы можете при желании установить пароль дл€ собрани€.

¬идеозвонок

Ўаг 6. Ќастройте аутентификацию пользовател€

ѕо умолчанию любой может перейти к вашему серверу Jitsi Meet, создать комнату и начать собрание. „тобы настроить аутентификацию пользовател€, отредактируйте файл конфигурации Prosody.

sudo nano /etc/prosody/conf.d/meet.example.com.cfg.lua

Ќайдите следующую строку.

authentication = "anonymous"

»змените его на следующее, что потребует от пользовател€ ввода имени пользовател€ и парол€ дл€ начала конференции.

authentication = "internal_plain"

ќднако мы не хотим, чтобы участники вводили им€ пользовател€ и пароль при присоединении к конференции, поэтому нам нужно создать анонимный вход дл€ гостей, добавив следующие строки в конец этого файла. ќбратите внимание, что вам не нужно создавать запись A DNS дл€ guest.meet.example.com.

VirtualHost "guest.meet.example.com"
    authentication = "anonymous"
    c2s_require_encryption = false

—охраните и закройте файл. «атем отредактируйте файл конфигурации Jitsi Meet.

sudo nano /etc/jitsi/meet/meet.example.com-config.js

Ќайдите следующую строку:

// anonymousdomain: 'guest.example.com',

”далите двойные косые черты и измените гостевой домен. «амените meet.example.com своим насто€щим именем хоста Jitsi Meet.

anonymousdomain: 'guest.meet.example.com',

—охраните и закройте файл. «атем отредактируйте файл конфигурации Jicofo.

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

ƒобавьте следующую строку в конец этого файла.

org.jitsi.jicofo.auth.URL=XMPP:meet.example.com

—охраните и закройте файл. ѕерезапустите службы systemd, чтобы изменени€ вступили в силу.

sudo systemctl restart jitsi-videobridge2 prosody jicofo

„тобы создать учетные записи пользователей в Jisi Meet, выполните следующую команду. ¬ам будет предложено ввести пароль дл€ нового пользовател€.

sudo prosodyctl register username meet.example.com

“еперь, если вы создаете комнату в Jitsi Meet, вам нужно будет ввести им€ пользовател€ и пароль.

»м€ пользовател€ и пароль

—оветы по устранению неполадок

≈сли вы столкнулись с ошибками, вы можете проверить журнал ошибок Nginx (/var/log/nginx/error.log), чтобы узнать, что не так. “акже проверьте журналы служб systemd.

sudo journalctl -eu jitsi-videobridge2
sudo journalctl -eu prosody
sudo journalctl -eu jicofo	

≈сли вы видите ошибку You have been disconnected (¬ы были отключены) при запуске собрани€ в Jitsi, возможно, вы забыли изменить meet.example.com на свое насто€щее им€ хоста Jitsi Meet в файлах конфигурации.

You have been disconnected

ќпционально: настроить Jigasi дл€ телефонного набора или исход€щего вызова

Jitsi предлагает телефонный интерфейс, который позвол€ет пользовател€м подключатьс€ к конференции или делать звонки с напоминанием. ”становите пакет jigasi (шлюз Jitsi дл€ SIP).

sudo apt install jigasi

¬о врем€ установки вам нужно будет ввести свое им€ пользовател€ и пароль SIP. ≈сли у вас его нет, вы можете создать бесплатную учетную запись SIP на сайте OnSIP.com.

SIP Username

≈сли вы настроили аутентификацию пользовател€ на шаге 6, вам необходимо отредактировать файл конфигурации Jigasi.

sudo nano /etc/jitsi/jigasi/sip-communicator.properties

Ќайдите следующие строки.

# org.jitsi.jigasi.xmpp.acc.USER_ID=SOME_USER@SOME_DOMAIN
# org.jitsi.jigasi.xmpp.acc.PASS=SOME_PASS
# org.jitsi.jigasi.xmpp.acc.ANONYMOUS_AUTH=false	

–аскомментируйте их и введите учетную запись и пароль, которые вы создали на шаге 6.

org.jitsi.jigasi.xmpp.acc.USER_ID=user1@meet.example.com
org.jitsi.jigasi.xmpp.acc.PASS=user1_password
org.jitsi.jigasi.xmpp.acc.ANONYMOUS_AUTH=false	

—охраните и закройте файл. ѕерезапустите службу jigasi systemd.

sudo systemctl restart jigasi

ќпционально: настроить Coturn

≈сли во врем€ установки Jitsi Meet вы видите следующее сообщение, вам необходимо настроить Coturn, чтобы он работал правильно.

Warning! Could not resolve your external ip address! Error:^
Your turn server will not work till you edit your /etc/turnserver.conf config file.
You need to set your external ip address in external-ip and restart coturn service.

ќтредактируйте файл конфигурации Coturn.

sudo nano /etc/turnserver.conf

Ќайдите следующую строку.

external-ip=127.0.0.1

«амените 127.0.0.1 общедоступным IP-адресом вашего сервера. —охраните и закройте файл. «атем перезапустите Coturn.

sudo systemctl restart coturn

»тоги

√отово! ћы успешно установили Jitsi Meet на наш Linux сервер.


>