Varulv

Искатель

Настройка 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.

Обсудить этот пост