Установка сервера Spreed WebRTC на Ubuntu 16.04

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

Spreed WebRTC предоставляет возможность выполнения ряда задач.

  • Чат с безопасным обменом аудио, видео и текстовыми сообщениями.
  • Веб-конференции
  • Индивидуальные видеозвонки

Данный учебник научит вас, как установить сервер Spreed WebRTC на виртуальном частном сервере или выделенной машине с операционной системой Ubuntu 16.04.

Установка сервера Spreed WebRTC на Ubuntu 16.04 с использованием официального PPA.

Установка сервера Spreed WebRTC на Ubuntu 16.04 из официального PPA осуществляется с легкостью.

sudo apt-add-repository ppa:strukturag/spreed-webrtc sudo apt update sudo apt install spreed-webrtc

По завершении установки сервер spreed-webrtc автоматически активируется, и его встроенный веб-сервер начнет прослушивание на 127.0.0.1:8080. Вы можете проверить его состояние с помощью:

systemctl status spreed-webrtc

spreed-webrtc.service - Служба сервера Spreed WebRTC Загружено: успешно загружено (/lib/systemd/system/spreed-webrtc.service;включеноАктивный статус: включен (предустановленный параметр).действует активно

Apache

Если вы работаете с Apache, выполните следующие шаги.

Настройте веб-сервер Apache.

sudo apt install apache2

После этого необходимо создать файл виртуального хоста для Spreed.

sudo nano /etc/apache2/sites-available/spreed-webrtc.conf

Сохраните следующий текст в файл. Замените spreed. your-domain.com на доменное имя, которое вы выбрали, и обязательно настройте A запись.

ServerName spreed. your-domain.com Примените ProxyPass для http://127.0.0.1:8080/ и используйте ProxyPassReverse для http://127.0.0.1:8080/. Проксировать ws://127.0.0.1:8080/ProxyVia Включен, ProxyPreserveHost Активирован.

Сохраните изменения и закройте документ. После этого необходимо активировать модуль proxy_http.

sudo a2enmod proxy_http

После этого активируйте данный виртуальный хост.

sudo a2ensite spreed-webrtc.conf

Проверьте настройки и перезапустите Apache.

sudo apachectl configtest sudo systemctl reload apache2

Теперь вы должны иметь возможность использовать Spreed WebRTC, зайдя на доменное имя через веб-браузер.

Сервер для передачи данных через WebRTC

Активирование HTTPS

Теперь давайте получим бесплатный TLS-сертификат от Let’s Encrypt. Для этого выполните следующие команды, чтобы установить клиент Let’s Encrypt (certbot) из официального PPA.

sudo apt install certbot

Если вы работаете с веб-сервером Apache, обязательно установите плагин Certbot для Apache.

sudo apt install python3-certbot-apache

После этого введите следующую команду для получения бесплатного сертификата TLS/SSL.

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] - d spreed. example.com

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

sudo apt install python3-certbot-nginx

Затем примените плагин Nginx для получения и установки сертификата, выполнив следующую команду.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] - d spreed. example.com

На экране появится следующий текст, подтверждающий успешное получение TLS сертификата.

Использование Spreed WebRTC с Certbot для HTTPS

Настройка сервера TURN/STUN

WebRTC не сможет функционировать, если пользователи находятся за различными NAT-устройствами, так как в этом случае связь будет заблокирована. Чтобы преодолеть ограничения NAT, необходимо настроить сервер TURN/STUN, который будет действовать в качестве посредника между веб-браузерами. TURN расшифровывается как Traversal Using Relays around NAT. Coturn — это бесплатный и открытый сервер TURN и STUN, предназначенный для VoIP и WebRTC.

Coturn можно установить из репозитория Ubuntu, используя следующую команду:

sudo apt install coturn

После установки программа запустится автоматически. Чтобы узнать о её статусе, используйте:

systemctl status coturn

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

sudo systemctl start coturn

Также активируйте автоматический запуск при старте системы.

sudo systemctl enable coturn

Конфигурация Coturn для Spreed WebRTC

Внесите изменения в главный файл настроек.

sudo nano /etc/turnserver.conf

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

  • Замените your-domain.com на название вашего домена для NextCloud или Spreed WebRTC.
  • Поменяйте 12.34.56.78 на внешний IP-адрес вашего сервера.
  • Создайте длинный и надежный пароль для аутентификации. (Для генерации случайной строки можно воспользоваться командой openssl rand - base64 20.)

# Работать только как TURN сервер, все запросы STUN будут игнорироваться. no-stun # Укажите порт прослушивания. Измените на 80 или 443, чтобы обойти некоторые строгие NAT. listening-port=8443 tls-listening-port=5349 # Укажите IP-адрес для прослушивания, если не установлен, то Coturn слушает на всех системных IP. listening-ip=12.34.56.78 relay-ip=12.34.56.78Эти строки содержат поддержку отпечатков механизма lt-cred-mech в рамках WebRTC.your-domain.comМетод проверки подлинности use-auth-secret static-auth-secret=your-auth-secret total-quota=100 # Общая пропускная способность в байтах в секунду, которую TURN сервер может выделить # для сессий, комбинированных (входные и выходные сетевые потоки обрабатываются отдельно). bps-capacity=0 # Эта строка обеспечивает дополнительную безопасность. stale-nonce log-file=/var/log/turnserver/turn.log no-loopback-peers no-multicast-peers

Сохраните файл и закройте его. После этого перезапустите сервер coturn, используя следующую команду:

sudo systemctl restart coturn

Coturn функционирует в роли пользователя turnserver. Запустите следующую команду, и вы должны заметить, что он прослушивает порт 8443.

sudo ss - lnpt | grep turnserver

Теперь приступим к редактированию файла конфигурации Spreed WebRTC.

sudo nano /etc/spreed/server.conf

Включите следующие две строки в раздел [app]. Замените текст, выделенный красным, на соответствующий.

turnURIs = turn:coturn-server-ip8443?transport=udp turnSecret =your-auth-secrect

Сохраните изменения и закройте файл. После этого перезапустите сервер Spreed WebRTC.

sudo systemctl restart spreed-webrtc

Необходимо разрешить доступ к TCP и UDP порту 8843 в файрволе для корректной работы Coturn. Если у вас установлен файрвол UFW, используйте следующие команды.

sudo ufw allow 8443/tcp sudo ufw allow 8443/udp

После запуска Coturn и повторного запуска Spreed WebRTC пользователи, находящиеся за NAT, должны успешно подключаться к аудио - и видеозвонкам.

Следующий этап

Я надеюсь, что данный учебник оказался полезным для вас при установке сервера Spreed WebRTC на Ubuntu с помощью Docker-образа. Также у вас есть возможность интегрировать Spreed. Me с NextCloud.

  • Интеграция Spreed Me WebRTC с NextCloud: пошаговое руководство.

Надеюсь, этот гид оказался полезным для вас при установке сервера Spreed WebRTC на Ubuntu 16.04. Как обычно, если вы считаете этот материал ценным, не забудьте подписаться на нашу бесплатную рассылку.

Читайте также:  Настройка и использование команды tmux для работы с терминалом в Linux