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

Задача: имеется 5 аппаратов Yealink SIP-T46U и 20 аппаратов SIP-T31P. Их необходимо настроить, то есть, перевести из состояния "новый из коробки" в состояние "готов к использованию".

Процесс автопровижининга можно разделить на 5 этапов:

  • определение сценария развертывания;

  • подготовка конфигурационных файлов;

  • размещение конфигурационных файлов на файловом сервере;

  • развертывание службы/сервера, которые будут направлять телефон на файловый сервер;

  • запуск процедуры автопровижининга.

Этапы 1-2 мы обсудили в предыдущих статьях и в этой статье не будем подробно на них останавливаться.

Этап 1. Определение сценария развертывания

Исходя из количества телефонов и сетевой инфраструктуры, необходимо выбрать оптимальный сценарий их развертывания.

Подробнее о выборе сценария развертывания

Среди множества способов обнаружения адреса автопровижининг-сервера выделяется метод опций DHCP, как наиболее доступный и универсальный. Рассмотрим процесс на базе данного метода. В примере автопровижининг будет настроен через 66 опцию DHCP-сервера.

Описание процесса

При включении телефон отправляет широковещательный запрос DHCP Discover, ответом на который устройство получит DHCP Offer. В DHCP Offer, помимо предлагаемого IP-адреса, содержатся иные сетевые параметры (маска, шлюз, DNS и пр.), передаваемые в формате так называемых DHCP-опций. Одной из таких опций может стать 43 опция (vendor-specific information), 66 опция (TFTP-сервер), а также пользовательская опция. Эти опции могут содержать адрес автопровижининг-сервера.

screenshot1.PNG

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

Этап 2. Подготовка конфигурационных файлов

Подробнее о подготовке конфигурационных файлов

Мы подготовили 2 общих конфигурационных файла (y000000000108.cfg и y000000000123.cfg), которые содержат настройки SIP-сервера, DSS-клавиш, рингтона и некоторые другие параметры, и 25 персонифицированных конфигурационных файлов MAC.cfg, содержащих настройки учетных записей SIP.

screenshot2.PNG

Описание процесса

Сначала все телефоны получат настройки из общего конфигурационного файла, а затем каждый из аппаратов получит свою персонифицированную конфигурацию из конфигурационного файла MAC.cfg.

Этап 3. Размещение конфигурационных файлов на сервере

Размещаем конфигурационные файлы на файловом сервере.

В качестве файлового сервера выберем Tftpd64, который свободно распространяется и не требует какой-либо специальной настройки.

Порядок установки сервера и размещения на нем конфигурационных файлов

1. Перейдите по ссылке и скачайте установочный файл Tftpd64-4.64-setup.exe.

screenshot3.PNG

2. Установите сервер.

3. TFTP-сервер уже включен в настройках по умолчанию, в качестве сетевого хоста используется localhost (если на ПК используется несколько IP-адресов, необходимо выбрать нужный в поле Server interfaces).

4. В поле Current Directory укажите директорию, которая будет использоваться TFTP-сервером как "домашняя".

5. В данную директорию помещаем конфигурационные файлы, подготовленные на этапе 2.

screenshot4.PNG

Примечание: по умолчанию 66 опция работает по протоколу TFTP, но при выборе данной опции можно использовать сервер, работающий по протоколам FTP/HTTP/HTTPS. Если при выборе 66 опции используется файловый сервер, работающий по любому другому протоколу, необходимо указать протокол в явном формате, например http://192.168.5.115.

Этап 4. Настройка DHCP-опции

Необходимо перейти в настройки маршрутизатора/DHCP-сервера и настроить на нем DHCP-опцию. В качестве примера рассмотрим, как настроить DHCP-опцию на маршрутизаторах Openwrt и Mikrotik.

1. Маршрутизатор с прошивкой Openwrt

Авторизовавшись в веб, откройте настройки интерфейсов (Network – Interfaces).

screenshot5.PNG

Выберите интерфейс, войдите в режим редактирования интерфейса, нажав Edit.

screenshot6.PNG

Перейдите в настройки DHCP-сервера интерфейса (Advanced Settings – DHCP Server - Advanced Settings) и кликните на иконку Add напротив раздела DHCP-Options.

screenshot7.PNG

Укажите номер опции и ее содержимое в формате <Номер опции, Значение опции>, сохраните настройки. Убедитесь, что настроенная опция появилась в списке опций.

2. Маршрутизатор Mikrotik

Авторизовавшись в веб, откройте окно настроек WebFig. Перейдите в меню IP – DHCP Server – Options – Add New.

screenshot8.PNG

Заполните поля Name (Имя опции), Code (Номер опции), Value (Значение опции), после чего нажмите OK. Убедитесь, что настроенная опция появилась в списке опций.

screenshot9.PNG

Этап 5. Запуск процедуры автопровижининга

Теперь можно подключить телефоны к сети. Если все действия выполнены правильно, после загрузки телефона и получении им сетевых настроек устройство автоматически начнет процесс автопровижининга. С файлового сервера будут последовательно запрошены файлы — сначала common.cfg, затем MAC.cfg. Во время скачивания этих файлов светодиод в углу экрана телефона будет мигать красным.

Процесс применения некоторых системных параметров может потребовать перезагрузки телефона.

В логах TFTP-сервера можно увидеть сообщения о запросе и скачивании телефонами конфигурационных файлов.

screenshot10.png

Процесс завершен! Телефоны настроены и готовы к использованию.

screenshot11.jpg

Следите за нашими обзорами и новостями!

Комментарии (3)


  1. Andrey_Renteev
    27.10.2023 12:43

    Прочитал. Очень интересная статья, спасибо! Но очевидный вопрос - это безопасность. В описанном протоколе Autoprovision не применяется шифрование. По сути идентификация только по MAC-адресу телефона. Получается, что по DHCP опция 66 легко опознать присутствие Autoprovision, а если подделать "MAC-адрес" легко и ненапрягаясь можно получить конфигурацию аккаунта для любого телефона. Конечно, я надеюсь, регистрационные данные (пароль для SIP аккаунта) зашифрованы MD5, но современными техническими средствами MD5 легко вскрывается: https://habr.com/ru/articles/595013/ Как защитить персональные настройки от взлома?


    1. CmpeJ1ok
      27.10.2023 12:43

      В идеале ваша телефонная сеть и основная с компьютерами, как минимум разделена виланами, а максимум - это две разные физических сети, с своей сетевой обвязкой в виде роутера, dhcp и dns, а так же vpnом для ужаленных сотрудников к носимыми устр-ми


    1. 3vi1_0n3
      27.10.2023 12:43

      В своё время работал с провиженингом девайсов от разных производителей (ealink, правда, мало застал, в основном Cisco и Polycom), лучшая защита передаваемых данных - это использовать HTTPS, а не TFTP. Тогда можно использовать клиентские сертификаты устройств и двустороннюю TLS аутентификацию.

      Многие, если не все, производители добавляют в прошивку клиентские сертификаты, содержащие Mac-адрес телефона. В этом случае можно отсекать нелигитимные запросы прямо на этапе хэндшейка (мак-адрес из сертификата, название запрашиваемого файла, intermediate сертификат производителя, которым подписан сертификат телефона), и заодно китайские подделки с клонированными чипами. Правда мы это делали в промышленном масштабе, 5+20 - это мало, у нас были пяти-шестизначные цифры, но, тем не менее, приципиально это ничего не меняет. Просто валидация CA на сервере, без всего остального, сильно усложняет запросы от всего, что не телефон, причем быстро.

      TFTP в пределах одной организации вполне себе может быть, если SIP-шлюз тоже внутри. Не все хотят заморачиваться с безопасностью в локальной сети в малых организациях. Любой выход наружу - HTTPS, плюс защитные меры выше, плюс еще кучу проверок можно добавить если запрос каким-то чудом проскочил mutual authentication, можно валидировать вообще всё, что приходит в запросе, до отдачи конфига (заголовки HTTP-запроса, например, размер запроса, и так далее). Ломать SSL/TLS - так себе занятие. Дорого, скучно, проще другого провайдера найти, с защитой попроще. Ломать SSL/TLS + проверки провиженинг-сервера - это надо быть очень целеустремлённым.

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

      В общем, хотите безопасности - используйте провиженинг-сервер и HTTPS, а не DHCP+TFTP.