LINUX.ORG.RU
ФорумAdmin

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

 ,


0

1

Захотел поднять свой, приватныйТМ coturn сервер. С шифрованием и куртизанками, для своего же приватного Matrix сервера.

Что сделал: Создал 2 поддомена: turn.example.com, stun.example.com

Прописал SRV записи:

_stun._udp.example.com.  14400 IN SRV  5 0 3478 turn.example.com.
_stun._tcp.example.com.  14400 IN SRV  5 0 3478 turn.example.com.
_stuns._tcp.example.com. 14400 IN SRV  5 0 5349 turn.example.com.

_turn._udp.example.com.   14400 IN SRV  5 0 3478 turn.example.com.
_turn._tcp.example.com.   14400 IN SRV  5 0 3478 turn.example.com.
_turns._tcp.example.com.  14400 IN SRV  5 0 5349 turn.example.com.

Даже прописал NAPTR запись:

@ IN NAPTR 10 0 "s" "RELAY:turn.udp" "" _turn._udp.example.com

Создал сертификат для поддомена: turn.example.com

Создал каталог для сертификатов, дал на него права turnserver. Сертификатам назначил права 0644.

Конфиг сервера:

tls-listening-port=5349
use-auth-secret
static-auth-secret=LOR_CAKE
realm=turn.example.com
verbose 3
log-file=/var/log/coturn/turnserver.log
user-quota=12
total-quota=1200
no-tcp-relay
no-tcp
no-loopback-peers
no-multicast-peers
cert=/etc/coturn/fullchain.pem
pkey=/etc/coturn/privkey.pem
cipher-list="ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384"
dh2066
no-tlsv1
no-tlsv1_1
no-tlsv1_2
no-cli

В конфиге Matrix указал:

turns_uris: [ "turn:turn.example.com?transport=udp", "turn:turn.example.com?transport=tcp" ]
turn_user_lifetime: 86400000

В логах turnserver следующее.

Вопрос: Как мне проверить, что соединения идут через мой turnserver? Я запускал аудио звонки, с двух аккаунтов на одном сервере. Но остановив coturn, я все равно смог дозвониться.

★★★

В логах у тебя пусто. Значит его не используют.

turnserver.conf:

no-tcp
В конфиге Matrix:
turns_uris: [ "turn:turn.example.com?transport=udp", "turn:turn.example.com?transport=tcp" ]
turn_user_lifetime: 86400000
Зачем указывать в turns_uris tcp транспорт который у тебя отключен? В логах об этом есть строка.

Для тестирования stun/turn есть отдельная утиль

vel ★★★★★
()

bigbit, я проверял между клиентами element. Не через браузер, что бы отсечь ошибки WebRTC.

Зачем клиенту соединяться через TURN, если он может напрямую?

Затем, что так указано в конфигурации сервера, соединение идет через клиентов одного сервера. Если есть возможность использовать свой turn сервер, то почему бы и да?

Riniko ★★★
() автор топика
Ответ на: комментарий от anonymous

Через сервер ЕМНИП в Matrix идут только текстовые сообщения, всё остальное - напрямую. В условиях NAT это напрямую естественно работает хреново, поэтому и используются STUN/TURN

Pinkbyte ★★★★★
()
Ответ на: комментарий от anonymous

Это пожалуй не ко мне вопрос, а к авторам протокола :-)

Скажу только что синхронизация текстовой истории в p2p-мессенджерах с одним аккаунтом на разных устройствах - это адЪ. Начиная с того, что не все p2p-мессенджеры вообще поддерживают один аккаунт на нескольких устройствах

Pinkbyte ★★★★★
()
Ответ на: комментарий от Pinkbyte

Ну да в этом плане понятно, хранение и тд. Тут вопрос больше к разрабам, что не включили такую функцию в спецификацию сервера. Поднимать и администрировать 2 сервера не хотелось бы

anonymous
()

Зачем тебе вообще домен? Просто используй порты, самоподписанный черт, а то что то ваш приватный сервер не особо приватен.

А точно забыл, так в гайде на анонимный сервер написано :D

anonymous
()
Ответ на: комментарий от anonymous

гайде на анонимный сервер написано :D

Там еще нужно обязательно с Kali Linux производить данные манипуляциию. Иначе не Ъ :D

Если серьёзно, то приватный - что оба сервера на моем железе, где я отключил логи (да, да, я знаю про логи на уровне провайдера).

Riniko ★★★
() автор топика