Установка и настройка TURN-сервера
Обзор удаленного подключения
Удаленный доступ к Android-устройству предполагает установление соединения с помощью WebRTC (Web Real-Time Communication) - технологии потоковой передачи данных, которая обеспечивает одноранговые соединения между двумя браузерами или мобильными приложениями. Передача данных с использованием WebRTC осуществляется через сервер TURN (Traversal Using Relays around NAT), который выступает в качестве посредника и ретранслирует трафик между участниками соединения.
Процесс удаленного подключения представлен на рисунке ниже.

TURN-сервер должен быть доступен как для браузера, с которого вы подключаетесь к устройству, так и для самого устройства. Если браузер находится в локальной сети, а мобильное устройство - в интернете, TURN-сервер можно разместить в демилитаризованной зоне. Информация для установления соединения передается на устройство по мобильному протоколу. Для установления соединения необходимо настроить диапазон портов на TURN-сервере. Для одного соединения используются два порта.
TURN-сервер выполняет следующие функции:
- Установление соединения
TURN-сервер обеспечивает процесс обмена кандидатами ICE (Interactive Connectivity Establishment) для выбора оптимального пути соединения между Kaspersky Security Center Web Console и мобильным устройством. По запросу от устройства TURN-сервер возвращает ICE-кандидат - потенциальный сетевой маршрут (порт 5349 на рисунке выше), который можно использовать для установления соединения.
- Передача видеоданных
TURN-сервер действует как туннель, который принимает подключения от Kaspersky Security Center и мобильного устройства. Оба участника соединения отправляют свои медиапотоки на TURN-сервер, который затем передает их другому участнику и тем самым обеспечивает передачу данных.
Установка и настройка TURN-сервера
- Установите TURN-сервер
Системные требования для TURN-сервера:
- 2 CPU или vCPU;
- 4 ГБ ОЗУ;
- 15 ГБ HDD;
- 512 КБ/с на одно активное соединение.
Мы рекомендуем использовать одну из реализаций TURN-сервера - coturn. Coturn можно установить из репозитория GitHub или пакетного менеджера вашей операционной системы. Приведенный ниже пример относится к версии coturn 4.5.2.
Ниже приведена инструкция по установке coturn на примере операционной системы Ubuntu:
- Установите пакет coturn на сервере в демилитаризованной зоне, используя команды:
sudo apt-get updatesudo apt install coturn - После успешного завершения установки проверьте статус запущенного сервиса coturn:
systemctl status coturn.service - Добавьте службу coturn в автозапуск:
sudo systemctl enable coturn
- Настройте TURN-сервер
- Укажите необходимые параметры в конфигурационном файле TURN-сервера, используя текстовый редактор, например, Vim или nano. Путь к файлу:
/etc/turnserver.conf.Используйте параметры TURN-сервера, приведенные в примере. Неиспользуемые параметры необходимо закомментировать.
- Настройте Firewall на сервере, открыв порты, указанные в конфигурационном файле TURN-сервера:
sudo ufw allow 5349/tcpsudo ufw allow 50010:50120/udp
- Укажите необходимые параметры в конфигурационном файле TURN-сервера, используя текстовый редактор, например, Vim или nano. Путь к файлу:
- Получите и настройте сертификат TURN-сервера
Вы можете получить сертификат от центра сертификации (CA) или сгенерировать самоподписанный сертификат.
- Сертификат от CA должен быть выдан в формате PEM для полного доменного имени сервера, указанного в конфигурационном файле TURN-сервера.
- Чтобы сгенерировать самоподписанный сертификат (например, с использованием утилиты OpenSSL):
- Сгенерируйте ключ CA:
openssl genrsa -out ca_key.key 2048 - Сгенерируйте самоподписанный сертификат CA, используя данные для вашей организации или произвольные данные:
openssl req -x509 -new -nodes -key ca_key.key -sha256 -days 365 -subj "/C=<Country>/ST=<State or Province>/L=<Locality>/O=<Organization>/CN=<Common Name>" -out root_cert.pem - Сгенерируйте закрытый ключ сервера:
openssl genrsa -out cert_key.key 2048 - Создайте Certificate Signing Request (CSR) для сервера, используя данные для вашей организации или произвольные данные:
openssl req -new -key cert_key.key -subj "/C=<Country>/ST=<State or Province>/L=<Locality>/O=<Organization>" -out server_cert.csr - Создайте конфигурацию для расширений SAN, EKU и KeyUsage - файл
ext.cnfс содержимым:[ v3_req ]subjectAltName = @alt_namesextendedKeyUsage = serverAuthkeyUsage = digitalSignature, keyCertSign, cRLSign[ alt_names ]DNS.1 = <TURN server FQDN> - Подпишите серверный сертификат CA:
openssl x509 -req -in server_cert.csr -CA root_cert.pem -CAkey ca_key.key -CAcreateserial -out server_cert.crt -days 365 -sha256 -extfile ext.cnf -extensions v3_req - Преобразуйте закрытый ключ сервера в формат PEM для использования в конфигурационном файле TURN-сервера:
openssl rsa -in cert_key.key -out cert_key.pem -outform PEM - Преобразуйте серверный сертификат, подписанный CA, в формат PEM для использования в конфигурационном файле TURN-сервера:
openssl x509 -in server_cert.crt -out server_cert.pem - Преобразуйте самоподписанный корневой сертификат в формат CRT для установки в хранилище сертификатов доверенного центра сертификации на компьютере администратора:
openssl x509 -in root_cert.pem -out root_cert.crt - Укажите путь к ранее полученным файлам
server_cert.pemиcert_key.pemв конфигурационном файле TURN-сервера. Этот путь должен быть доступен TURN-серверу, например,/var/opt/turn.Убедитесь, что пользователю
turnserverвыданы права на чтение. - Установите файл
root_cert.crtв хранилище сертификатов доверенного центра сертификации на компьютере администратора, а затем перезапустите браузер.
- Сгенерируйте ключ CA:
- Завершение настройки
- Перезапустите coturn:
systemctl restart coturn.service
- Перезапустите UFW:
systemctl restart ufw
- Перезапустите coturn: