On Fri, 15 May 2020 at 20:46, Konstantin Kuzov <master.nosfer...@gmail.com>
wrote:

> Да, там проблема в том, что при использовании конфига в любом
> виде stale-nonce по умолчанию включен на 600 секунд, комментарий какой-то
> невнятный и лично у меня оставляет впечатление что по умолчанию
> всё-же nonce вечная:
> # Uncomment if extra security is desired,
> # with nonce value having limited lifetime.
> # By default, the nonce value is unique for a session,
> # and has unlimited lifetime.
> # Set this option to limit the nonce lifetime.
> # It defaults to 600 secs (10 min) if no value is provided. After that
> delay,
> # the client will get 438 error and will have to re-authenticate itself.
>
> А на деле всё своеобразно, проверим поведение с таким хаком:
> diff -urN a/src/apps/relay/mainrelay.c b/src/apps/relay/mainrelay.c
> --- a/src/apps/relay/mainrelay.c        2019-03-03 00:06:19.000000000 +0300
> +++ b/src/apps/relay/mainrelay.c        2020-05-15 16:02:43.371533695 +0300
> @@ -1282,6 +1282,7 @@
>                 break;
>         case STALE_NONCE_OPT:
>                 turn_params.stale_nonce = get_int_value(value,
> STUN_DEFAULT_NONCE_EXPIRATION_TIME);
> +               printf("DEBUG 1: %d\n", turn_params.stale_nonce);
>                 break;
>         case MAX_ALLOCATE_LIFETIME_OPT:
>                 turn_params.max_allocate_lifetime = get_int_value(value,
> STUN_DEFAULT_MAX_ALLOCATE_LIFETIME);
> diff -urN a/src/apps/relay/netengine.c b/src/apps/relay/netengine.c
> --- a/src/apps/relay/netengine.c        2019-03-03 00:06:19.000000000 +0300
> +++ b/src/apps/relay/netengine.c        2020-05-15 16:02:57.564643335 +0300
> @@ -1637,6 +1637,8 @@
>         bufferevent_setcb(rs->auth_in_buf, relay_receive_auth_message,
> NULL, NULL, rs);
>         bufferevent_enable(rs->auth_in_buf, EV_READ);
>
> +       printf("DEBUG 2: %d\n", turn_params.stale_nonce);
> +       exit(0);
>         init_turn_server(&(rs->server),
>                          rs->id, turn_params.verbose,
>                          rs->ioa_eng, turn_params.ct, 0,
>
> тестим без конфига:
> [root@om b]# ./bin/turnserver 2>&1 | grep DEBUG
> DEBUG 1: 0
> DEBUG 2: 0
>
> тестим с абсолютно пустым конфигом:
> [root@om b]# ./bin/turnserver -c turnserver.conf 2>&1 | grep DEBUG
> DEBUG 2: 600
>
> тестим оверрайд через параметр:
> [root@om b]# ./bin/turnserver -c turnserver.conf --stale-nonce=0 2>&1 |
> grep DEBUG
> DEBUG 1: 0
> DEBUG 2: 0
>
> А вот пример пострадальцев:
>
> https://medium.com/confrere/gone-in-1100-seconds-hunting-bugs-on-the-edge-of-webrtc-132a186c45dd
>
> Перевод:
> https://habr.com/ru/company/Voximplant/blog/352730/


эту статью на хабре я даже нашёл
про "=0" там нет :(
пришлось найти код :)
спасибо!


>
> пт, 15 мая 2020 г. в 16:20, Maxim Solodovnik <solomax...@gmail.com>:
>
> > я так понимаю имеется в виду втот этот
> >
> >
> https://github.com/coturn/coturn/blob/master/src/server/ns_turn_server.c#L3322
> >  код
> >
> > On Fri, 15 May 2020 at 19:53, Maxim Solodovnik <solomax...@gmail.com>
> > wrote:
> >
> > > конфиг /etc/turnserver.cfg
> > >
> > > On Fri, 15 May 2020 at 19:45, green_gen...@mail.ru.INVALID
> > > <green_gen...@mail.ru.invalid> wrote:
> > >
> > >> Maxim Solodovnik пишет:
> > >> > On Fri, 15 May 2020 at 16:58, Konstantin Kuzov <
> > >> master.nosfer...@gmail.com>
> > >> > wrote:
> > >> >
> > >> >
> > >> >> Да, документация оставляет местами желать лучшего,
> > >> >>
> > >> >
> > >> >
> > >> > каждый норовит маленького обидеть ...
> > >> > видите что можно улучшить - PRs are welcome :)
> > >> >
> > >> >
> > >> >
> > >> >> но вроде по-тихоньку
> > >> >> ситуация выправляется, к тому же 5.0.0 ещё не релизнулся ещё, а
> > >> стабильной
> > >> >> 4.x версии с флешем и red5 все эти мансы не касаются.
> > >> >> Я сам когда первый раз полтора месяца назад ставил OM прошелся по
> > всем
> > >> >> возможным граблям ^_^
> > >> >> К примеру, о том что TURN вообще нужен в тогдашних туториалах не
> было
> > >> >> сказано ни слова. Не говоря уже о том что его надо прописывать в
> > >> >> webapps/openmeetings/WEB-INF/classes/applicationContext.xml, это я
> > >> прочитал
> > >> >> уже много после архиве в рассылки... А изначально настроил его не в
> > >> режиме
> > >> >> статического ключа (static-auth-secret), а через аккаунт
> пользователя
> > >> >> (user). и отредактировал WebRtcEndpoint.conf.ini, через подачу
> > >> >> переменных KMS_EXTERNAL_ADDRESS,
> > >> >> KMS_STUN_IP, KMS_STUN_PORT и KMS_TURN_URL. И это даже работало, но
> > были
> > >> >> проблемы с продлением сессий и большая часть пользователей
> > отваливалась
> > >> >> каждые 10 минут по channel-lifetime,. А учитывая что M3 не умел в
> > >> реконнект
> > >> >> вообще, а тупо вырубал камеру с микрофоном при любой ошибке - это
> > было
> > >> то
> > >> >> ещё веселье.
> > >> >> Кстати, даже когда я настроил всё по рекомендуемой схеме у
> некоторых
> > 10
> > >> >> минутные отвалы реденько но продолжали быть, но теперь уже по
> nonce,
> > >> >> который по-умолчанию включен и 600 секунд несмотря на комментарий в
> > >> конфиге
> > >> >> говорящий об обратном. Покурив слегка исходники coturn нашел что
> его
> > >> можно
> > >> >> вырубить через stale-nonce=0. После этого левые отвалы прекратились
> > >> >> окончательно.
> > >> >>
> > >> >>
> > >> >
> > >> > а вот про это не знал
> > >> > интересно
> > >> >
> > >> >
> > >> >
> > >> >
> > >> >> ,  чт, 14 мая 2020 г. в 11:37, Eugene <roginovi...@hotmail.com>:
> > >> >>
> > >> >>
> > >> >>> Спасибо за информацию! Жалко, что в туториале не объяснены эти
> > детали,
> > >> >>> сэкономило бы пользователям много времени.
> > >> >>>
> > >> >>>
> > >> >>>
> > >> >
> > >> >
> > >> >
> > >> а где это настраевается "нашел что его можно вырубить через
> > >> stale-nonce=0. После этого левые отвалы прекратились окончательно."
> > >>
> > >
> > >
> > > --
> > > Best regards,
> > > Maxim
> > >
> >
> >
> > --
> > Best regards,
> > Maxim
> >
>


-- 
Best regards,
Maxim

Ответить