Весенние конференции Труконф

Как настроить reverse proxy (проброс портов) для TrueConf Server

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

Обратный прокси (reverse proxy) – это специальный узел (сервис) в структуре сети, позволяющий настроить перенаправление трафика от клиентских устройств к веб-серверам компании так, чтобы снаружи сети не было видно реальных адресов этих серверов. То есть в нашем случае веб-служба TrueConf Server будет закрыта от прямого доступа извне. В качестве прокси будем использовать NGINX.

Техническая поддержка Труконф не рекомендует пропускать через NGINX медиатрафик, хоть это технически возможно. Мы не можем гарантировать корректную работу NGINX при работе с большим объёмом медиатрафика. Весь трафик по порту 4307 проприетарного протокола TrueConf шифруется алгоритмом AES-256 и потому достаточно файрвола.

В нашем примере прокси-машина будет управляться ОС Debian 11, на которой установлены следующие версии ПО:

Если вы используете TrueConf Server на Windows, то там можно также установить NGINX и тогда общая логика настроек будет такая же.

Настройка прокси-сервера

Сначала настроим NGINX в качестве прокси для веб-службы TrueConf Server. В нашей конфигурации он будет проксировать трафик, приходящий на стандартные HTTP и HTTPS порты: 80 и 443 соответственно. Если вы используете другие порты (как их поменять, смотрите в документации сервера), то укажите их в соответствующих строках в настройках ниже.

Настройка выполняется путём прописывания директив в конфигурационном файле. По умолчанию он называется nginx.conf и располагается в одном из следующих каталогов:

  • /etc/nginx;
  • /usr/local/nginx/conf;
  • /usr/local/etc/nginx.

Директивы должны быть расположены внутри блока server { … }. Состоит настройка из следующих шагов:

  • Задайте порты, которые будут прослушиваться – 80 и 443.
  • Укажите пути к файлу SSL-сертификата и его ключа, чтобы настроить HTTPS-соединение у NGINX (Если у вас нет сертификата, вы можете сгенерировать его самостоятельно при помощи библиотеки OpenSSL). Обратите внимание, что это не отменяет настройки HTTPS на стороне TrueConf Server: чтобы работали планировщик, вход в личный кабинет, расширенное управление конференцией всё равно требуется активировать HTTPS на стороне сервера.

    HTTPS нужен для работы TrueConf Server API. Без него вы не сможете получить токен OAuth2, необходимый для работы API.

  • Пропишите блок location с конфигурацией для проксирования.

    В директиве proxy_pass укажите внутренний адрес TrueConf Server в вашей локальной сети, доступный хосту с NGINX. Благодаря этой директиве трафик, приходящий на ранее заданные порты, будет перенаправляться на указанный адрес. Помимо проксирования в этом блоке настраивается передача HTTP-заголовков и отключение верификации SSL-сертификата.

  • Если предполагается использовать подключение по WebRTC (через браузер), то с новой строки после предыдущего блока пропишите ещё один блок location с конфигурацией для проксирования WebSocket-запросов на порт 4307 и укажите адрес вашего TrueConf Server. Этот порт может помимо протокола TrueConf использоваться для передачи сигнального (то есть управляющего) трафика между сервером видеосвязи и браузерным клиентским приложением. Это позволит не нагружать веб-сервер обработкой лишнего трафика.

    WebSocket-запросы должны проксироваться только через HTTP. В противном случае подключиться к конференции будет невозможно.

    Конфигурация прокси-сервера Nginx завершена. Чтобы внесённые изменения вступили в силу, необходимо его перезапустить. Для этого в терминале под суперпользователем выполните команду:

Настройка файервола

Помимо рассмотренных протоколов HTTP, HTTPS и WebSocket для всех возможностей видеосвязи Труконф могут использоваться протоколы, использующие другие порты, например:

  • 4307 – основной и единственный необходимый TCP-порт для передачи медиаданных между TrueConf Server и TrueConf-клиентом;
  • 554 – TCP-порт для работы по RTSP-протоколу;
  • 1720 – TCP-порт для установки соединения с H.323-устройствами;
  • 52000–52499 – TCP-порты для согласования параметров соединения по протоколу H.323;
  • 5060 – порт TCP или UDP для инициализации соединения по протоколу SIP;
  • 50000–51999 – UDP-порты для передачи медиапотоков по протоколам SIP/H.323.

В списке для примера приведены некоторые из необходимых портов. Подробнее про список используемых в TrueConf Server портов можно почитать в соответствующей инструкции.

В этом случае перенаправления HTTP/HTTPS-трафика через веб-сервер NGINX будет недостаточно. Настроить трансляцию остальных портов можно с помощью фаервола. Для примера воспользуемся пакетом firewalld:

Для выполнения перечисленных далее команд используйте программу sudo, или предварительно перейдите в режим суперпользователя, выполнив в терминале команду su - и введя root-пароль.

  • Сначала необходимо его установить:
  • Затем разрешите обращение к NGINX командами:

    Расшифровка используемых параметров:

    • --permanent – позволяет добавить настройку на постоянной основе, сохранив её после перезапуска ОС или файeрвола;
    • --zone="public" – устанавливает, к какой зоне будет применяться настройка;
    • --add-service – добавляет сервис к указанной зоне.
  • Выполните команды для проброса TCP и UDP портов. Они могут настраивать проброс как одного порта, так и целого диапазона. Мы для примера покажем по одной команде каждого типа: одна будет пробрасывать 554 порт (для RTSP), вторая будет пробрасывать диапазон портов 50000-51999 (для SIP/H.323):
    Аналогичными командами выполните проброс остальных необходимых портов.

    Расшифровка используемых параметров:

    • --add-forward-port – позволяет пробросить порт с одной машины на другую;
    • port – задаёт пробрасываемый порт/диапазон портов;
    • proto – задаёт протокол передачи данных через порт;
    • toport – задаёт целевой порт;
    • toaddr – задаёт адрес машины, на которую пробрасываем исходный порт.
  • Выполните команды, которые настроят подмену адреса проксируемой машины (с установленным TrueConf Server) на адрес прокси-сервера. Тем самым мы перенаправим входящий и исходящий трафик через прокси, скрыв реальный IP сервера видеосвязи. Список портов для протоколов TCP и UDP настраивается по отдельности, например:

    Расшифровка используемых параметров:

    • --direct – включает direct-синтаксис, позволяющий сделать более тонкую настройку (по сути это синтаксис пакета iptables);
    • --add-rule – позволяет добавить правило iptables;
    • ipv4указываем, что настройка производится для трафика IPv4;
    • nat – включаем таблицу NAT;
    • POSTROUTING – включаем цепочкуPOSTROUTING;
    • 0 – приоритет задаваемого правила (0 — наивысший);
    • POSTROUTING – задаёт адрес машины, на которую пробрасываем исходный порт.
    • -p tcpзадаём сетевой протокол TCP;
    • -p updзадаём сетевой протокол UDP;
    • -m multiport – включаем использование правилом нескольких портов;
    • --dportsсписок портов, на которых правило будет действовать;
    • -j SNAT – задаём действие, которое будет выполняться, если пакет подходит под описанное правило;
    • --to-source 192.168.10.2указываем IP-адрес, на который будем подменять исходный (в нашем случае это IP-адрес прокси).

Проверка настроек

После того как настройка произведена, перезапустите firewalld, чтобы сохранить изменения:

Затем проверьте, применились ли настройки. Для этого необходимо в терминале выполнить точно такую же команду, как для проброса порта, только заменив --add-forward-port на -–query-forward-port. Например, чтобы проверить, проброшен ли 554 порт, выполните следующую команду:

Если в консоль вывелось слово no – это значит, что порт не проброшен. Причиной этому может быть то, что вы не прописали ключ --permanent в соответствующей команде. Выполните команду в терминале снова, удостоверившись, что этот ключ присутствует.

Если же в консоль вывелось слово yes – значит настройка проброса порта на машину с TrueConf Server успешно выполнена.

Предыдущая статья Следующая статья

Попробуйте безопасную ВКС-платформу Труконф!

ВКС-решение TrueConf Server работает внутри вашей закрытой сети без подключения к интернету
и позволяет собирать до 1500 человек в одной конференции!

Труконф

Крупнейшее ВКС-сообщество в России

Живой диалог с разработчиками, помощь с настройкой ВКС-систем, полезные материалы, ранние доступы и бета-версии — всё в специальном чате @trueconf_talks.

Подписаться
Видео+Конференция

Актуальные новости из мира ВКС

Подписывайтесь на канал нашего информационного партнёра «Видео+Конференция», чтобы быть в курсе последних новостей в сфере видеоконференцсвязи и AV-оборудования.

Подписаться Перейти на сайт

Содержание