Coturn centos 7 настройка
сетевой протокол, который позволяет сетевым устройствам, находящимся за 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, которая в настоящее время совершенствуется.
После make будут сгенерированы три файла stunserver, stunclient и stuntestcdoe
stunserver - это файл сервера
stunclient - это файл клиента
Просмотр справочной информации
./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 и, наконец, указать порт прослушивания
Конфигурация с одной сетевой картой
Запустить сервис
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
Далее мы устанавливаем модули LibEvent (механизм для выполнения функций обратного вызова):
Следующим шагом нам необходимо скачать и установить модули самого TURN:
Настройка
Вся настройка нашего TURN-сервера выполняется с помощью редактирования файла turnserver.conf. Открываем его любым удобным текстовым редактором и выставляем необходимые нам настройки (файл хорошо закомментирован, а его сэмпл лежит в архиве с модулем, так что проблем с настройкой возникнуть не должно)
Для первичной настройки нас заинтересуют параметры:
- Прослушиваемый порт
- Прослушиваемый интерфейс
- Прослушиваемый 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 с использованием шлюза 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.
Читайте также: