Настройка TURN сервера для Nextcloud Talk
Nextcloud Talk позволяет совершать видеозвонки. По умолчанию все настройки ведут на TURN сервера разработчиков Nextcloud. Из "коробки" у меня проходил только сам вызов, экран оставался чёрным, звука не было. И тогда просмотрев кучу сайтов, решил настроить свой TURN сервер. Устанавливаем Coturn:
sudo apt-get install coturn
Включаем coturn как службу:
sudo nano /etc/default/coturn
Расскоментируем последнюю строчку, сохраняем файл.
# Uncomment it if you want to have the turnserver running as # an automatic system service daemon # TURNSERVER_ENABLED=1
Теперь настроим Coturn для работы с Nextcloud. Для этого откроем файл конфигурации:
sudo nano /etc/turnserver.conf
Ищем следующие записи:
#listening-port=3478 #tls-listening-port=5349
Это порты, которые coturn использует по умолчанию, раскоментируем и поменяем значения:
listening-port=80 tls-listening-port=443
Я планирую использовать защищёное соединение, поэтому раскоментировал только tls-listening-port.
Далее ищем строку:
#listening-ip=172.17.19.101
Если оставить закоментариненной эту строку, то Coturn будет прослушивать все доступные IP-адреса для этого хоста. У меня есть выделенный IP-адресс, поэтому я раскоментировал эту строку и изменил IP-адрес на свой выделенный.
Тоже самое проделываем для relay-ip, т.е. раскоментируем и меняем IP-адрес на свой:
relay-ip=XXX.XX.XXX.XXX
Далее найдём и раскоментируем:
fingerprint lt-cred-mech use-auth-secret static-auth-secret=north
открываем новое окно и пишем команду:
openssl rand -hex 32
Полученный отпечаток подставляем вместо north, должно получиться что-то типа такого:
static-auth-secret=751c45cae60a2839711a94c8d6bf0089e78b2149ca602fdXXXXXXXXXXXXXXXXX
Включение «use-auth-secret» и установка «static-auth-secret» предотвратит несакционированное использование вашего TURN сервера.
Дальше ищем realm и указываем доменное имя нашему TURN серверу:
realm=aaa.example.com
Затем ищем следующию запись, раскоментируем и устанавливаем:
total-quota=100
Раскоментируем: stale-nonce
Если вы хотите использовать TLS(transport layer security), то необходимо получить сертификат SSL, например через Letsencrypt, а хатем указать путь к сертификатам, например так:
cert=/etc/ssl/example.com/fullchain.pem pkey=/etc/ssl/example.com/your_private.pem
Не забудем установить cipher-list:
cipher-list="ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES: DH+3DES:RSA+AES:RSA+3DES:!ADH:!AECDH:!MD5"
Последний штрих, раскоментируем:
no-loopback-peers no-multicast-peers
Не забываем сохранить изменения и перезагружаем Coturn
sudo service coturn restart
В принципе всё должно работать, можно попробовать установить соединение в Nextcloud Talk.
UPD: Заходим через браузер в настройки Nextcloud, выбираем вкладку разговор(Talk).
В окошке Сервер STUN пишем: <Ваш_домен>:<назначенный_порт>, домен прописываем без https
В окошке Сервер TURN прописываем аналогичную информацию, в поле секретной фразы пишем значение static-auth-secret из файла turnserver.conf.
Обсудить этот пост