Александр Михеенко
04.02.2020
4021

Подключение IP-телефонов Htek UC902 и Htek UC902P по протоколу ZRTP, через Asterisk.

Рассмотрим безопасный вариант подключения IP-телефонов и то какие сложности возникают в процессе. ZRTP — протокол шифрования для передачи голоса по IP-сетям, использует метод получения ключей по алгоритму Диффи — Хелмана. ZRTP + Asterisk что нам известно: ZRTP использует Secure RTP для шифрования данных ZRTP реализует короткую строку аутентификации (SAS), чтобы смягчить атаку Man in the […]

Рассмотрим безопасный вариант подключения IP-телефонов и то какие сложности возникают в процессе.

ZRTP — протокол шифрования для передачи голоса по IP-сетям, использует метод получения ключей по алгоритму Диффи — Хелмана.

ZRTP + Asterisk что нам известно:

  • ZRTP использует Secure RTP для шифрования данных
  • ZRTP реализует короткую строку аутентификации (SAS), чтобы смягчить атаку Man in the Middle / “человека по середине”.
  • ZRTP инициируется вызывающим абонентом, и вызываемый абонент должен ответить на него
  • Нам нужно выбирать между использованием TLS + SRTP или TLS + ZRTP , нельзя использовать оба в одном безопасном вызове.
  • Asterisk не понимает ZRTP и не может позволить ZRTP проходить между участвующими учетными записями SIP, поэтому RTP (который фактически является пакетами ZRTP) между учетными записями SIP должен быть прямым одноранговым без вмешательства Asterisk
  • Возможны трудности с девайсами за NAT

Обзор на каждый из IP-телефонов есть у нас на сайте. Отмечу что оба они начального уровня и поддерживают протоколы защиты на транспортном уровне TLS, SRTP, ZRTP. Аппараты находятся в одной локальной сети и имеют доступ к внешнему серверу на CentOS 7 с установленным Asterisk 13.

Приступим к настройке сервера и Asterisk.

На сервере отключаем SELINUX

# sed -i s/SELINUX=enforcing/SELINUX=disabled/g /etc/selinux/config
# reboot 

Проверить его работу можно командой:

# sestatus

Теперь нужно правильно сконфигурировать Asterisk для работы с TLS. На сайте подробная статья с установкой и настройкой Настройка TLS в Asterisk. Шифруем SIP и RTP.

            Прямой одноранговый (peer-to-peer) RTP между учетными записями SIP в Asterisk требует соблюдения определенных условий. На каждой учетной записи SIP вы должны установить следующее:

  • Отключите поддержку NAT, установив nat для no каждого peer
  • Отключить SRTP, установив , encryption=no на каждый peer, и включить поддержку transport=tls
  • Включите peer-to-peer media установив directmedia=yes для каждого из peer
  • Установить directrtpsetup=yes на глобальном уровне
  • Запретите и разрешите кодек одинаковым для всех peer SIP, например, установив disallow=all после allow=ulaw

Пример настроек sip.conf :

[general]
directrtpsetup=yes
tcpenable=yes
tlsenable=yes
tlsbindaddr=0.0.0.0:5070
tlscertfile=/etc/asterisk/keys/asterisk.pem
tlscafile=/etc/asterisk/keys/ca.crt
tlscipher=ALL
tlsdontverifyserver=no
disallow=all
allow=ulaw
context=default

[101]
host=dynamic
type=friend
context=from-internal
qualify=yes
nat=no
encryption=no
directmedia=yes
transport=tls
secret=2x2MEUoAJXUNJzPq
...
Конфигурация файла sip.conf
Конфигурация файла sip.conf

            Перейдем к конфигурации extensions.conf

  [from-internal]
exten = 101,1,Dial(SIP/101)
exten = 102,1,Dial(SIP/102)
exten = 103,1,Dial(SIP/103)
exten = 104,1,Dial(SIP/104)
        same = n,Hangup

Можно использовать и шаблон типа: exten = _10X,1,Dial(SIP/${EXTEN}). правда у некоторых пользователей бывают проблемы и вызов может быть не шифрованным, советуем проверять.

Dial без опций, контролирующих канал, например, T или t. Никаких записей разговоров.
Конфигурация файла extensions.conf точно рабочая.
Конфигурация файла extensions.conf точно рабочая.

Перезагружаем Asterisk:

# systemctl stop asterisk 
# systemctl start asterisk

Выполним необходимые настройки на IP-телефонах.

Переходим в web-интерфейс по IP адресу телефону. Узнать его можно на аппарате:

Press Menu→ Status→Information.

Профиль-Основные
В поле основной SIP-сервер прописываем адрес сервера с портом TLS

192.168.32.63:5070

В транспорт SIP ставим точку на TLS.

Сохраняем.

Настройка профиля на IP-телефоне Htek
Настройка профиля на IP-телефоне Htek

Профиль-Основные-Расширенные
            Разрешаем шифрование по ZRTP и отключаем режим SRTP.

Включение протокола ZRTP IP-телефоне Htek
Включение протокола ZRTP IP-телефоне Htek

Необходимо установить прошивку с шифрованием её можно найти на офф. сайте производителя.

Устанавливается прошивка так:

В web-интерфейсе Управление-Обновление- Обновление прошивки ПЗУ — Выбрать файл.

Файл прошивки в формате name.rom
Обновление IP-телефонов Htek
Обновление IP-телефонов Htek

После обновления проверяем подключение аппарата к серверу на домашней вкладке web-интерфейса.
            Настройки IP- телефонов Htek аналогичные.

Домашняя вкладка IP-телефонов Htek
Домашняя вкладка IP-телефонов Htek

Я так же подключил два софтфона Blink для тестирования Asterisk как описано здесь.

С единственным отличием:

Preferences — Accounts- Media — RTP Options — Encryption: ZRTP

            Номера им задал 103 и 104. В Asterisk проверяю подключенные аппараты.

# asterisk -rvvv
> sip show peers
Проверяем в Asterisk подключенные телефоны.
Проверяем в Asterisk подключенные телефоны.

Пробный звонок с Blink (103) на Blink (104). Перед этим в астериск включим rtb debug  чтобы убедиться в том, что звонок зашифрованный.

> rtp set debug on

Прилетел вызов подтверждаем валидацию Validate.  Всё получилось звонок в Asterisk идёт по Channel SIP/103-00000021 joined ‘simple_bridge’ basic-bridge.

Зашифрованный вызов в Asterisk.
Зашифрованный вызов в Asterisk.
Валидация в софтфонах Blink
Валидация в софтфонах Blink

Вот теперь можно совершить звонок и по Htek.

Телефон Htek UC 902
Телефон Htek UC 902
Вызываем абонента 102  Htek UC 902P
Вызываем абонента 102  Htek UC 902P
Вот и заветный значок зашифрованного вызова.
Вот и заветный значок зашифрованного вызова.

Как мы выяснили официальной поддержки протокола ZRTP в Asterisk нет и это накладывает определённые трудности. Мы уже отмечали выше, что даже шаблон вызова в extensions.conf может приводить к потери потери подключения по протоколу. Также и опции контролирующих канал приводят к потери безопасного соединения. Но как мы уже показали возможно выполнять такие вызовы через Asterisk.

Получается не очень удобная зашифрованная связь.

Подписаться
Уведомить о
guest
0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

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

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

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


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

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 сим-карты и настроить маршрутизацию вызовов по наиболее выгодному тарифу. Всё это позволяет экономить с первых минут пользования станцией.