TURN сервер

SergeyP

Member
Добрый день.
Установлен TURN сервер coturn, у него в настройках есть диапазон UDP портов:
# Lower and upper bounds of the UDP relay endpoints:
#min-port=49152
#max-port=65535

Какие правильно указать порты? Должны ли они входить в диапазон портов WebCallServer?
media_port_from =40001
media_port_to =65535

Спасибо.
 

Max

Administrator
Staff member
Добрый день.
Это порты на стороне TURN сервера. Если coturn и WCS расположены на одной машине, то диапазоны не должны пересекаться, в противном случае - могут.
Отметим, что есть проблемы в работе Firefox через coturn, соединение не всегда устанавливается.
 

SergeyP

Member
Помимо пользователя/пароля, которые по сути публичная информация, как можно защитить TURN сервер от использования посторонними?
Встречал рекомендацию сделать UDP порты Webcallserver доступными только для TURN сервера. Но ведь тогда клиенты не смогут использовать UDP.
 

Max

Administrator
Staff member
TURN relay на интернет-пользователей смотрит по TCP 443 (в идеале).
А на WCS по UDP портам.

Нужно разрешить TURN серверу отправлять и получать UDP пакеты только c WCS. На уровне firewall.
А TCP пакеты на порт TURN сервера 443 разрешить всем.
Тогда все смогут соединяться с вашим TURN сервером, но он будет бесполезен для всех кроме тех, кто через него идет на WCS.

Аналогично с встроенным TURN сервером.
Внешние UDP пакеты с портов TURN сервера запрещаем. Оставляем только локальные.
 

SergeyP

Member
Спасибо.
Я извиняюсь, но у вас не найдется примера такого ограничения на UDP порты для iptables?
 

Max

Administrator
Staff member
Как-то так.
Здесь: 192.168.88.22 WCS сервер с настройками UDP потов 21000 - 22000
53 порт - это DNS
Т.е. разрешаем только обмен UDP пакетами с WCS сервером и DNS. Остальной UDP трафик запрещаем.

Code:
iptables -A INPUT -p udp -s 192.168.88.22 --match multiport --dports 21000:22000 -j ACCEPT
iptables -A INPUT -p udp -dport 53 -j ACCEPT
iptables -A INPUT -p udp -j DROP

iptables -A OUTPUT -p udp -d 192.168.88.22 --match multiport --dports 21000:22000 -j ACCEPT
iptables -A OUTPUT -p udp -dport 53 -j ACCEPT
iptables -A OUTPUT -p udp -j DROP
 

SergeyP

Member
Огромное спасибо.
Я правильно понимаю, что это закрытие портов только предотвращает проигрывание публикуемой через TURN сервер трансляции?
То есть, злоумышленник все равно может подключиться к TURN серверу и начать передавать видео?

И второй вопрос. Не встречались ли вам случаи, почему TURN сервер (а именно coturn) может временами кратковременно генерировать огромный исходящий трафик, забивающий всю пропускную способность канала?
 

Max

Administrator
Staff member
Я правильно понимаю, что это закрытие портов только предотвращает проигрывание публикуемой через TURN сервер трансляции?
Нет, это касается как воспроизведения, так и публикации. UDP порты используются в обоих случаях.
почему TURN сервер (а именно coturn) может временами кратковременно генерировать огромный исходящий трафик
Мы тестировали coturn только на совместную работу с WCS и различными браузерами. Вообще говоря, мы не рекомендуем coturn к использованию, если среди ваших пользователей есть клиенты с Firefox, поскольку этот браузер нестабильно работает с ним работает.
 

SergeyP

Member
Что вы рекомендуете вместо coturn? Если встроенный TURN сервер в WCS, то работает ли он лучше у тех пользователей, у которых проблемы с coturn?
Без TURN сервера не вариант, у мобильных пользователей без него не работает проигрывание.
 

Max

Administrator
Staff member
В качестве примера в документации рассматривается turnserver. Можно также использовать встроенный TURN сервер. Для более стабильной работы Firefox рекомендуется отключить все дополнительные сетевые адаптеры, это касается и работы WebRTC over TCP.
 
Top