Coturn centos 7 настройка

Обновлено: 03.07.2024

сете­вой про­то­кол, кото­рый поз­во­ля­ет сете­вым устрой­ствам, нахо­дя­щим­ся за NAT узна­вать свои внеш­ние IP-адре­са. По умол­ча­нию рабо­та­ет на пор­ту 3478 (no SSL ) или 5349 ( TLS ).

Чаще все­го, необ­хо­ди­мость сер­ве­ра, кото­рый предо­став­ля­ет дан­ную воз­мож­ность, воз­ни­ка­ет при нали­чии служб пере­да­чи меди­а­кон­тен­та. Напри­мер, осо­бен­ность неко­то­рых из них ( VOIP или WebRTC) заклю­ча­ет­ся в попыт­ке уста­но­вить соеди­не­ние точ­ка-точ­ка, что про­ти­во­ре­чит идеи исполь­зо­ва­ния NAT . Конеч­но же, дан­ное соеди­не­ние не будет выпол­не­но, так как два раз­лич­ных узла с IP-адре­са­ми из диа­па­зо­на локаль­ных сетей не смо­гут «най­ти» друг дру­га. STUN-сер­вер поз­во­ля­ет дан­ным узлам исполь­зо­вать для режи­ма точ­ка-точ­ка не внут­рен­ние адре­са, а внеш­ние, делая воз­мож­ным их соединение.

Для реа­ли­за­ции воз­мож­но­стей про­то­ко­ла мож­но исполь­зо­вать один из бес­плат­ных сер­ве­ров, например:

… или раз­вер­нуть свой соб­ствен­ный сер­вер под Linux или Windows. При­мер про­грамм, кото­рые поз­во­ля­ют реа­ли­зо­вать сер­вер­ную часть:

Аль­тер­на­ти­ва STUN — TURN . Послед­ний может созда­вать допол­ни­тель­ную нагруз­ку на сеть, но более гаран­ти­ро­ва­но обес­пе­чи­ва­ет соеди­не­ние меж­ду узла­ми. Одна­ко, в свя­зи с боль­шой нагруз­кой, кото­рую он может создать на сеть, сто­ит отдать пред­по­чте­ние про­то­ко­лу STUN .

Дан­ный сер­вер нам может пона­до­бить­ся для кор­рект­ной пере­да­чи меди­а­кон­тен­та, напри­мер, VOIP или посред­ством WebRTC

Подготовка системы

Для кор­рект­ной рабо­ты сер­ве­ра мы долж­ны открыть пор­ты в бранд­мау­э­ре и отклю­чить SELinux.

1. Настройка firewalld

Доба­вим порт 3478 для нешиф­ро­ван­ных соединений:

firewall-cmd --add-port=3478/ --permanent

Доба­вим порт 5349 для TLS :

firewall-cmd --add-port=5349/ --permanent

Пере­за­пус­ка­ем кон­фи­гу­ра­цию для при­ме­не­ния правил:

2. Отключение SELinux

Для отклю­че­ния SELinux вво­дим 2 команды:

sed -i 's/^ SELINUX =.*/ SELINUX =disabled/g' /etc/selinux/config

Про­ве­ря­ем, что настрой­ки применились:

Установка и запуск

Уста­нов­ка паке­та coturn выпол­ня­ет­ся из репо­зи­то­рия EPEL . Сна­ча­ла ста­вим его командой:

yum install epel-release

После мож­но уста­нав­ли­вать сер­вер STUN / TURN :

yum install coturn

Раз­ре­ша­ем авто­за­пуск сер­ви­са и стар­ту­ем его:

systemctl enable coturn --now

Сер­вер готов при­ни­мать запросы.

Проверка работы

Для про­вер­ки сер­ве­ра нам нуж­но уста­но­вить кли­ен­та stun. Это мож­но сде­лать либо на тот же сер­вер, либо на дру­гой компьютер.

а) Под Ubuntu доста­точ­но выпол­нить одну команду:

apt-get install stun-client

б) В CentOS нуж­но уста­но­вить ста­рый репо­зи­то­рий, после саму программу:

yum install stun

После уста­нов­ки про­грам­мы мож­но попро­бо­вать отпра­вить запрос на сер­вер. В зави­си­мо­сти от вари­ан­та Linux коман­ды будут разные.

stun-client <IP-адрес сер­ве­ра STUN / TURN >

stun <IP-адрес сер­ве­ра STUN / TURN >

* в при­ме­рах ниже мы будем исполь­зо­вать вари­ант для CentOS.

И так, при­мер для выпол­не­ния тесто­во­го запроса:

* где 192.168.0.15 — IP-адрес во внут­рен­ней сети наше­го сер­ве­ра STUN / TURN .

Мы долж­ны полу­чить ответ:

STUN client version 0.96
Primary: Open
Return value is 0x000001

Если сер­вер не рабо­та­ет, мы полу­чим что-то на подобие:

STUN client version 0.96
Primary: Blocked or could not reach STUN server
Return value is 0x00001c

Если наш сер­вер досту­пен из сети Интер­нет, мы можем выпол­нить онлайн тест на пор­та­ле Trickle ICE .

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

После уста­нов­ки сер­вер мож­но не настра­и­вать — не будет рабо­тать с настрой­ка­ми по умол­ча­нию. В дан­ном раз­де­ле рас­смот­рим при­ме­ры неко­то­рых настро­ек, кото­рые могут пока­зать­ся интересными.

1. Пароль для подключения

Что­бы огра­ни­чить под­клю­че­ния к наше­му сер­ве­ру, мы можем задать пароль­ную фра­зу. Для это­го откры­ва­ем файл с настрой­ка­ми сервера:

Установка и использование stun-сервера, Turn Server, Coturn Server

Условие: сервер с двумя сетевыми картами

Какой СТУН

STUN (Простой обход протокола пользовательских дейтаграмм через трансляторы сетевых адресов (NAT), NAT UDP, простой обход) - это сетевой протокол, который позволяет клиентам, расположенным за NAT (или несколькими NAT), найти свой собственный общедоступный сетевой адрес, проверить Узнайте, за каким типом NAT вы находитесь и к какому интернет-порту привязан NAT для определенного локального порта. Эта информация используется для установления связи UDP между двумя хостами, которые находятся за маршрутизатором NAT. Этот протокол определен RFC 3489. В настоящее время протокол RFC 3489 был заменен протоколом RFC 5389. В новом протоколе STUN определен как инструмент, облегчающий прохождение NAT, и не обеспечивает решение обхода независимо. Он также имеет обновленную версию RFC 7350, которая в настоящее время совершенствуется.

stun server、turn server、coturn server

После make будут сгенерированы три файла stunserver, stunclient и stuntestcdoe

stunserver - это файл сервера
stunclient - это файл клиента

stun server、turn server、coturn server

Просмотр справочной информации
./stunserver --help

--mode Определяет режим. Есть два режима «основной» и «полный»
--primaryinterface указывает первый отслеживаемый локальный IP-адрес или сетевую карту
--altinterface Укажите второй контролируемый локальный IP-адрес или сетевую карту.
--primaryport указать первый порт прослушивания (по умолчанию 3478)
--altport указать первый порт прослушивания (по умолчанию 3479)
- тип семейной сети, 4 означает IPV4, 6 означает IPV6
--protocol указывает тип сетевого подключения, udp или tcp, по умолчанию используется udp
--maxconn установить максимальное количество соединений
--verbosity Устанавливает уровень журнала, 0 - наименьшее, 1 - второе, 2 - наибольшее и 3 - наибольшее. По умолчанию 0
--ddp Распределенный доступ запрещен. Когда эта опция включена, если клиент попадает на сервер со слишком большим количеством пакетов, ему будет отказано в доступе на короткое время, и последующая база данных IP будет удалена.
--primaryadvertised
--altadvertised --primaryadvertised и --altadvertised используются для установки ip общедоступной сети, вы должны использовать полный режим, только когда ваш stunserver работает в частной среде за NAT. Например, через внутреннее и внешнее сопоставление портов, через переадресацию услуг и так далее.
--configfile указать файл конфигурации
--help Просмотр справочной информации

Использование после трансляции адреса брандмауэра:
nohup ./stunserver --mode full --primaryinterface IP1 --altinterface IP2 --primaryadvertised public IP --altadvertised public IP

Что такое поворот

Используйте среду:
Внутренний сетевой сервер openfire предоставляет видеоуслуги и использует stunserver для пересылки во внешнюю сеть. , , , , , В любом случае, stunserver не будет работать, не сможет проникнуть и не сможет гарантировать успешность видеозвонков, поэтому используйте turnserver.

установка

Установите libconfuse-devel
yum install libconfuse-devel -y

Загрузите загруженный файл turnserver-0.7.3.tar.bz2 и распакуйте его.
tar axf turnserver-0.7.3.tar.bz2
Скомпилируйте и установите
cd turnserver-0.7.3
./configure
make && make install && echo $?
Генерация и изменение файлов конфигурации
cp extra/turnserver.conf.template /etc/turnserver.conf
vim /etc/turnserver.conf

Создание и изменение файлов сертификации
cp extra/turnusers.txt.template /etc/turnusers.txt

toto - пользователь по умолчанию, пароль - пароль по умолчанию, за которым следует фиксированный формат, вы можете изменить имя пользователя и пароль

Coturn является обновленной версией хода, тот же автор, старый автор хода больше не поддерживается, при следующей загрузке coturn нужно перейти в githup, рекомендуется использовать coturn

Установить котурн

После загрузки введите каталог установки
Проверьте файл INSTALL, процесс установки подробно объяснен (многословно)
Установить зависимости

Если ошибка libevent2 конфликтует с libevent, удалите libevent и установите libevent 2. Если у источника yum нет libevent2, перейдите к пакету rpm или пакету исходного кода. Если есть другие ошибки, это будет рассматриваться как ошибка.
Скомпилируйте и установите
Используйте c ++ вместо c компиляции

После завершения установки он будет сгенерирован (centos7 сгенерирует исполняемый файл в каталоге bin каталога установки coturn)
/usr/local/bin/turnadmin
/usr/local/bin/turnserver
/usr/local/bin/turnutils_natdiscovery
/usr/local/bin/turnutils_oauth
/usr/local/bin/turnutils_peer
/usr/local/bin/turnutils_stunclient
/usr/local/bin/turnutils_uclient

конфигурация

Создать файл аутентификации (пароль MD5)

Создайте основной файл конфигурации

Измените файл конфигурации (добавьте по одной в соответствии с инструкциями внутри) (ниже моя конфигурация)

-u указать пароль пользователя -w -p порт -v использовать Verbose и, наконец, указать порт прослушивания

Конфигурация с одной сетевой картой

stun server、turn server、coturn server

Запустить сервис
turnserver -o -a
Тест соединения
turnutils_uclient -v -t -T -y -u USERNAME -w PASSWORD IP
Успех заключается в следующем


Введение

При работе с телефонией приходится постоянно сталкиваться с проблемами связанными с NAT, многие из них решаются использованием STUN/TURN серверов, в большинстве своем публичных. В данной статье будет рассмотрен процесс поднятия собственного сервера TURN на CentOS 6.10.

Установка

Первым делом начнем с установки зависимостей. Для стабильной работы потребуются:

  • GNU Compiler Collection
  • LibEvent
  • MySQL
  • OpenSSL
Все команды необходимо выполнять с правами суперпользователя (root), в противном случае будут возникать множественные ошибки permission-denied.

Установка зависимостей

Установка зависимостей

Установка зависимостей

Установка зависимостей

Установка зависимостей

Установка зависимостей

Далее мы устанавливаем модули LibEvent (механизм для выполнения функций обратного вызова):

Загрузка пакета LibEvent

Загрузка пакета LibEvent

Распаковываем

Распаковываем

Выводы команд make и make install

Выводы команд make и make install

Выводы команд make и make install

Выводы команд make и make install

Следующим шагом нам необходимо скачать и установить модули самого TURN:

Распаковываем

Распаковываем

Вывод команд установки

Вывод команд установки

Настройка

Вся настройка нашего TURN-сервера выполняется с помощью редактирования файла turnserver.conf. Открываем его любым удобным текстовым редактором и выставляем необходимые нам настройки (файл хорошо закомментирован, а его сэмпл лежит в архиве с модулем, так что проблем с настройкой возникнуть не должно)

Для первичной настройки нас заинтересуют параметры:

  • Прослушиваемый порт
  • Прослушиваемый интерфейс
  • Прослушиваемый ip
  • Учетные записи

Настройка порта и интерфейса

Настройка порта и интерфейса

Список ip

Список ip

Учетные записи

Учетные записи

При редактировании файла можно настроить использование либо только TURN, либо только STUN, или же оба одновременно. Можно включать или отключать использование TLS, разрешать анонимное подключение или использование динамических/статических аккаунтов. Настройка предоставляется достаточно гибкая.

И теперь немного о запуске сервера. Сделать это можно разово или же добавить его в автозагрузку. Делается это следующими командами:

Для разового запуска:

где ip:port – это ваш ip и порт заданный в turnserver.conf Для постоянной работы в начале команды подставляем nohup.


Остались вопросы?

Я - Виталий Шелест, менеджер компании Voxlink. Хотите уточнить детали или готовы оставить заявку? Укажите номер телефона, я перезвоню в течение 3-х секунд.

категории

VoIP оборудование

Fanvil X3S
3 900 руб

Fanvil X3S
2 990 руб

Fanvil X3S
2 990 руб

Fanvil X3S
2 990 руб

Fanvil X3S
2 990 руб

Fanvil X3S
2 990 руб

ближайшие курсы

Курсы по Asterisk
последняя неделя
каждого месяца


Записаться

Новые статьи

Отправка уведомлений о звонках в Telegram

Настройка и подключение к Asterisk потока Е1

Настройка и подключение к Asterisk потока Е1 с использованием шлюза Yeastar TE

Управление внутренними номерами абонентов

Управление внутренними номерами абонентов во FreePBX 14







ближайшие Вебинары

Mikrotik User Meeting: конференция по сетевым технологиям

10 доводов в пользу Asterisk

Распространяется бесплатно.

Asterisk – программное обеспечение с открытым исходным кодом, распространяется по лицензии GPL. Следовательно, установив один раз Asterisk вам не придется дополнительно платить за новых абонентов, подключение новых транков, расширение функционала и прочие лицензии. Это приближает стоимость владения станцией к нулю.

Безопасен в использовании.

Любое программное обеспечение может стать объектом интереса злоумышленников, в том числе телефонная станция. Однако, сам Asterisk, а также операционная система, на которой он работает, дают множество инструментов защиты от любых атак. При грамотной настройке безопасности у злоумышленников нет никаких шансов попасть на станцию.

Надежен в эксплуатации.

Время работы серверов некоторых наших клиентов исчисляется годами. Это значит, что Asterisk работает несколько лет, ему не требуются никакие перезагрузки или принудительные отключения. А еще это говорит о том, что в районе отличная ситуация с электроэнергией, но это уже не заслуга Asterisk.

Гибкий в настройке.

Зачастую возможности Asterisk ограничивает только фантазия пользователя. Ни один конструктор шаблонов не сравнится с Asterisk по гибкости настройки. Это позволяет решать с помощью Asterisk любые бизнес задачи, даже те, в которых выбор в его пользу не кажется изначально очевидным.

Имеет огромный функционал.

Во многом именно Asterisk показал какой должна быть современная телефонная станция. За многие годы развития функциональность Asterisk расширилась, а все основные возможности по-прежнему доступны бесплатно сразу после установки.

Интегрируется с любыми системами.

То, что Asterisk не умеет сам, он позволяет реализовать за счет интеграции. Это могут быть интеграции с коммерческими телефонными станциями, CRM, ERP системами, биллингом, сервисами колл-трекинга, колл-бэка и модулями статистики и аналитики.

Позволяет телефонизировать офис за считанные часы.

В нашей практике были проекты, реализованные за один рабочий день. Это значит, что утром к нам обращался клиент, а уже через несколько часов он пользовался новой IP-АТС. Безусловно, такая скорость редкость, ведь АТС – инструмент зарабатывания денег для многих компаний и спешка во внедрении не уместна. Но в случае острой необходимости Asterisk готов к быстрому старту.

Отличная масштабируемость.

Очень утомительно постоянно возвращаться к одному и тому же вопросу. Такое часто бывает в случае некачественного исполнения работ или выбора заведомо неподходящего бизнес-решения. С Asterisk точно не будет такой проблемы! Телефонная станция, построенная на Asterisk может быть масштабируема до немыслимых размеров. Главное – правильно подобрать оборудование.

Повышает управляемость бизнеса.

Asterisk дает не просто набор полезных функций, он повышает управляемость организации, качества и комфортности управления, а также увеличивает прозрачность бизнеса для руководства. Достичь этого можно, например, за счет автоматизации отчетов, подключения бота в Telegram, санкционированного доступа к станции из любой точки мира.

Снижает расходы на связь.

Связь между внутренними абонентами IP-АТС бесплатна всегда, независимо от их географического расположения. Также к Asterisk можно подключить любых операторов телефонии, в том числе GSM сим-карты и настроить маршрутизацию вызовов по наиболее выгодному тарифу. Всё это позволяет экономить с первых минут пользования станцией.

В этом руководстве объясняются первые основные шаги, которые необходимо выполнить после установки минимальной системы CentOS 7 без графической среды, чтобы получить информацию об установленной системе, аппаратная часть которой работает, и настроить другие конкретные системные задачи, такие как сети, привилегии root, программное обеспечение, сервисы и другие.

Обновление системы CentOS 7

Чтобы полностью обновить систему CentOS 7, введите следующие команды с привилегиями root.

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


Установите системные утилиты на CentOS 7

Следующие пакеты утилит могут оказаться полезными для повседневного системного администрирования: nano (текстовый редактор для замены редактора vi), wget, curl (утилиты, используемые в основном для загрузки пакетов по сети) net-tools, lsof (утилиты для управления локальная сеть) и bash-завершение (автозаполнение командной строки).

Установите их все в один выстрел, выполнив следующую команду.


Настройка сети в CentOS 7

CentOS 7 имеет широкий спектр инструментов, которые можно использовать для настройки и управления сетью, от ручного редактирования файла конфигурации сети до использования таких команд, как ip, ifconfig, nmtui, nmcli или route.

Чтобы изменить имя хоста системы с помощью утилиты nmtui, выполните команду nmtui-hostname, задайте имя хоста своего компьютера и нажмите OK для завершения, как показано на снимке экрана ниже.


Чтобы управлять сетевым интерфейсом, выполните команду nmtui-edit, выберите интерфейс, который вы хотите редактировать, и выберите правку в правом меню, как показано на скриншоте ниже.

Когда вы перейдете в графический интерфейс, предоставленный утилитой nmtui, вы можете настроить параметры IP сетевого интерфейса, как показано на снимке экрана ниже. Когда вы закончите, перейдите к OK, используя клавишу [tab], чтобы сохранить конфигурацию и выйти.


Чтобы применить новую конфигурацию сетевого интерфейса, выполните команду nmtui-connect, выберите интерфейс, которым вы хотите управлять, и нажмите опцию Деактивировать / Активировать, чтобы вывести из эксплуатации и поднять интерфейс с настройками IP, как показано на скриншотах ниже.


Чтобы просмотреть настройки сетевого интерфейса, вы можете проверить содержимое файла интерфейса или выполнить приведенные ниже команды.

Другими полезными утилитами, которые можно использовать для управления скоростью, состоянием канала или получения информации о сетевых интерфейсах машины, являются ethtool и mii-tool.

Важным аспектом работы вашей машины в сети является составление списка всех открытых сетевых сокетов, чтобы увидеть, какие программы прослушивают какие порты и в каком состоянии установлены сетевые соединения.

Управление услугами в CentOS 7

CentOS 7 управляет демонами или сервисом с помощью утилиты systemctl. Чтобы вывести список всех служб, выполните следующую команду.


Чтобы проверить, включен ли демон или служба для автоматического запуска при запуске системы, введите следующую команду.


Чтобы просмотреть список старых служб SysV, имеющихся в вашей системе, и отключить их, выполните следующие команды chkconfig.

5. Отключите нежелательные сервисы в CentOS 7

После установки CentOS 7 рекомендуется перечислить, какие службы работают в системе, выполнив указанные выше команды, отключить и удалить их, чтобы уменьшить векторы атак на вашу систему.

Например, демон Postfix установлен и включен по умолчанию в CentOS 7. Если вашей системе не требуется запуск почтового сервера, лучше всего остановить, отключить и удалить службу postfix, выполнив следующие команды.

В дополнение к командам netstat, ss, lsof или systemctl вы также можете запускать команды ps, top или pstree, чтобы обнаружить и определить, какие нежелательные службы работают в вашей системе, а также отключить или удалить их.

По умолчанию утилита pstree не установлена ​​в CentOS 7. Для ее установки выполните следующую команду.


Включить брандмауэр в CentOs 7

Чтобы включить, запустить и проверить брандмауэр в CentOS 7, выполните следующие команды.

Если служба уже определена в правилах firewalld, вы можете вручную добавить порт службы, как показано в примере ниже.

Включить разрешения Sudo для учетных записей пользователей

Чтобы предоставить полномочия root обычному пользователю, сначала создайте пользователя, введя команду adduser, задайте пароль для пользователя и предоставьте пользователю права root, выполнив приведенную ниже команду, которая добавляет нового пользователя в группу административных колес.

Чтобы проверить, есть ли у нового пользователя права root, войдите в систему с учетными данными пользователя и выполните команду yum с разрешениями sudo, как показано в приведенной ниже выдержке.


Настройка аутентификации с помощью открытого ключа SSH в CentOS 7

Чтобы защитить SSH-сервер и настроить аутентификацию с открытым ключом, чтобы повысить безопасность вашего сервера с помощью закрытого ключа SSH для входа в систему, сначала сгенерируйте пару ключей SSH с помощью следующей команды.

Не вводите ключевую фразу, если вы хотите автоматизировать управление сервером через SSH.

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

После того, как открытый ключ SSH был скопирован на удаленный сервер, войдите в систему на удаленном сервере SSH с помощью следующей команды.

Наконец, чтобы защитить сервер SSH, убедитесь, что вы запрещаете удаленный доступ SSH к учетной записи root, открыв файл конфигурации SSH / etc / ssh / sshd_config с вашим текстовым редактором в качестве пользователя root и изменив его с Да на Нет.

Чтобы применить настройку, необходимо перезапустить службу SSH, чтобы она использовала новую конфигурацию.

Выводы

Готово! Настройка сервера CentOS 7 после установки проведена. Это всего лишь несколько основных настроек и команд, которые каждый системный администратор должен знать и применять в новой установленной системе CentOS или для выполнения повседневных задач в системе.

Чтобы обезопасить и защитить сервер CentOS 7, ознакомьтесь со следующими статьями.

Если вы планируете развертывать веб-сайты в этой системе CentOS 7, узнайте, как установить и настроить стек LAMP.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Читайте также: