User Tools

Site Tools


asterisk._телефонное_оборудование_и_безопасность_2025

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
asterisk._телефонное_оборудование_и_безопасность_2025 [2025/05/27 12:11]
val created
asterisk._телефонное_оборудование_и_безопасность_2025 [2025/05/27 12:47] (current)
val [3.2 Настройка NAT и FIREWALL на интернет шлюзе предприятия]
Line 1: Line 1:
 ====== Asterisk. Телефонное оборудование и безопасность 2025 ====== ====== Asterisk. Телефонное оборудование и безопасность 2025 ======
  
 +===== Программа курса =====
 +
 +  * [[http://​www.specialist.ru/​course/​asterisk2|Asterisk. Уровень 2. Телефонное оборудование и безопасность]]
 +===== Модуль 0. Подготовка стенда в классе =====
 +
 +  * Узнать свой номер стенда
 +
 +===== Модуль 1. Развертывание компьютерной и телефонной сети предприятия =====
 +
 +==== Теория ====
 +
 +  * Базовая схема компьютерной сети предприятия
 +  * Базовая схема телефонии предприятия
 +
 +==== Лабораторные работы:​ Настройка ip и voip сети предприятия ====
 +
 +
 +==== 1.1 Схема стенда,​ импорт,​ настройка и запуск VM gate и server ====
 +<​code>​
 +Запустите с правами Administrator
 +
 +C:​\cmder\Cmder.exe
 +
 +λ bash
 +
 +λ cd
 +
 +λ test -d conf && rm -rf conf
 +
 +λ git clone http://​val.bmstu.ru/​unix/​conf.git
 +
 +λ cd conf/​virtualbox/​
 +
 +!!! 2 - это номер курса, вместо X укажите Ваш номер стенда,​ если не помните,​ спросите преподавателя !!!
 +
 +λ ./setup.sh X 2
 +</​code>​
 +==== 1.2 Настройка сети VM gate и server ====
 +
 +  * [[Настройка стендов слушателей#​Настройка виртуальных систем Unix]] с использованием [[Настройка стендов слушателей#​Скрипты автоконфигурации]]
 +
 +  * gate
 +<​code>​
 +# sh net_gate.sh
 +
 +# init 6
 +</​code>​
 +
 +  * server
 +<​code>​
 +# sh net_server.sh
 +
 +# init 6
 +</​code>​
 +
 +  * Создать в Putty профили gate, server и подключиться
 +
 +==== 1.3 Настройка сервисов DHCP и DNS ====
 +
 +  * [[Сервис DHCP]]
 +<​code>​
 +gate:~# sh conf/​dhcp.sh
 +</​code>​
 +
 +  * [[Финальная настройка DNS сервера]]
 +<​code>​
 +server:~# sh conf/dns.sh
 +</​code>​
 +
 +  * Настройка клиента DNS на gate и server
 +<​code>​
 +# cat /​etc/​resolv.conf
 +</​code><​code>​
 +search corpX.un
 +nameserver 192.168.X.10
 +</​code><​code>​
 +# nslookup ns
 +</​code>​
 +
 +==== 1.4 Настройка сервера Asterisk, sip каналов и базового плана звонков ====
 +
 +  * [[Сервис Asterisk#​Установка]]
 +  * [[Сервис Asterisk#​Настройка CHAN_SIP каналов]]
 +  * [[Сервис Asterisk#​Настройка базового плана нумерации]]
 +  * Самостоятельная работа **"​Ручная"​** настройка пользовательского оборудования SIP Phone Panasonic KX-HDVXXX ([[SIP Phone Panasonic KX-HDVXXX#​Настройка через WEB интерфейс]]) на номер 401
 +
 +===== Вопросы =====
 +
 +  * Перечислите варианты,​ позволяющие узнать IP адрес, полученный оборудованием?​
 +
 +===== Модуль 2: Подключение телефонного оборудования к Asterisk =====
 +
 +==== Теория ====
 +
 +==== Обзор типов телефонного оборудования и вариантов подключения его к Asterisk ====
 +
 +  * [[https://​ru.wikipedia.org/​wiki/​IP-%D1%82%D0%B5%D0%BB%D0%B5%D1%84%D0%BE%D0%BD|IP-телефон]]
 +  * [[https://​ru.wikipedia.org/​wiki/​%D0%A2%D0%B5%D0%BB%D0%B5%D1%84%D0%BE%D0%BD%D0%BD%D1%8B%D0%B5_%D0%BF%D0%BB%D0%B0%D1%82%D1%8B_%D1%80%D0%B0%D1%81%D1%88%D0%B8%D1%80%D0%B5%D0%BD%D0%B8%D1%8F|Телефонные платы расширения]]
 +  * [[https://​www.digium.com/​products/​telephony-cards|Digium Telephony Cards]]
 +  * [[https://​ru.wikipedia.org/​wiki/​VoIP-%D1%88%D0%BB%D1%8E%D0%B7|VoIP-шлюз]]
 +
 +==== Интерфейсы FXS, FXO и PRI ====
 +
 +  * [[https://​ru.wikipedia.org/​wiki/​FXS|FXS (Foreign Exchange Station или Subscriber)]]
 +  * [[https://​ru.wikipedia.org/​wiki/​FXO|FXO (Foreign eXchange Office)]]
 +  * [[https://​en.wikipedia.org/​wiki/​Loop_start|Loop start (often called kewlstart)]]
 +  * [[https://​ru.wikipedia.org/​wiki/​Мультиплексирование_с_разделением_по_времени|Мультиплексирование с разделением по времени]]
 +  * [[https://​ru.wikipedia.org/​wiki/​ISDN|ISDN (Integrated Services Digital Network)]]
 +  * [[https://​ru.wikipedia.org/​wiki/​PRI|Интерфейс первичного уровня (Primary Rate Interface, PRI)]]
 +  * [[https://​ru.wikipedia.org/​wiki/​Q.931|Q.931 - протокол управления соединениями для цифровой телефонии ISDN]]
 +==== Схема интеграции VoIP и классического телефонного оборудования предприятия ====
 +
 +  * [[https://​ru.wikipedia.org/​wiki/​%D0%9E%D1%84%D0%B8%D1%81%D0%BD%D0%B0%D1%8F_%D0%90%D0%A2%D0%A1|Офисная АТС, учрежденческая АТС (УАТС)]]
 +  * [[https://​ru.wikipedia.org/​wiki/​IP-%D0%90%D0%A2%D0%A1|IP-АТС,​ IP-УАТС (IP-PBX, от Internet Protocol и Private Branch Exchange)]]
 +
 +==== Использование методик расчета количества каналов для подключения Asterisk к PSTN и PBX ====
 +
 +  * [[https://​ru.wikipedia.org/​wiki/​%D0%AD%D1%80%D0%BB%D0%B0%D0%BD%D0%B3|Эрланг (обозначение Эрл) — безразмерная единица интенсивности нагрузки]]
 +
 +
 +
 +
 +
 +==== Лабораторные работы:​ Подключение голосовых шлюзов и IP телефонов к Asterisk ====
 +
 +
 +
 +
 +==== 2.1 Интеграция Asterisk с классической PBX с использованием персонального голосового шлюза Linksys SPA-3102 ====
 +
 +**Сценарий**:​ Забыли про номерной план 4XX!!! В компании используется аналоговая ATC с номерным планом 1XX, разворачиваем рядом Asterisk, и переводим отдельных абонентов на более высокий класс обслуживания с помощью персональных шлюзов.
 +
 +**Методическая рекомендация**:​ Выполнять лабораторную работу в два этапа, отдельно для интерфейсов FXS и FXO
 +
 +  * 2.1.1 Переключение телефона 1XX сотрудника на Asterisk и предоставление ему услуг
 +
 +<​code>​
 +server# cat /​etc/​asterisk/​sip.conf
 +</​code><​code>​
 +...
 +[101+X]
 +type=friend
 +secret=tpassword101+X
 +host=dynamic
 +</​code><​code>​
 +gate# dhcp-lease-list
 +</​code>​
 +
 +  * [[Linksys SPA-3102#​Включение WEB интерфейса на WAN интерфейсе]] (Узнать назначенный устройству IP адрес)
 +  * [[Linksys SPA-3102#​Настройка VoIP параметров]]
 +  * Подключение к VoIP ([[Сервис Asterisk#​Шаблон конфигурации для осуществления исходящих вызовов]])
 +  * Сервис FollowMe ([[Сервис Asterisk#​Переадресация вызовов на внешний номер]])
 +
 +<​code>​
 +server# cat /​etc/​asterisk/​extensions.conf
 +</​code>​
 +См. /* возможно,​ стоит переделать с использованием макросов */ комментарий
 +<​code>​
 +...
 +exten => 101+X,​1,​Dial(SIP/​${EXTEN},​10)
 +      same => n,​FollowMe(${EXTEN})
 +      ​
 +;exten => 101+Y,​1,​Dial(SIP/​${EXTEN},​10)
 +;      same => n,​FollowMe(${EXTEN})
 +...
 +</​code>​
 +
 +  * 2.1.2 Соединение телефонов 1XX, подключенных к Asterisk с телефонами,​ подключенными к АТС
 +
 +<​code>​
 +server# cat /​etc/​asterisk/​sip.conf
 +</​code><​code>​
 +...
 +[fxo101+X]
 +type=friend
 +secret=fpassword101+X
 +host=dynamic
 +</​code><​code>​
 +server# cat /​etc/​asterisk/​extensions.conf
 +</​code><​code>​
 +...
 +exten => _1XX/​101+X,​1,​Dial(SIP/​fxo101+X/​${EXTEN})
 +
 +;exten => _1XX/​101+Y,​1,​Dial(SIP/​fxo101+Y/​${EXTEN})
 +</​code>​
 +
 +  * Linksys SPA-3102 ([[Linksys SPA-3102#​Настройка FXO/​LINE/​PSTN Line]])
 +
 +==== 2.2 Отладка и мониторинг телефонного оборудования по протоколу Syslog ====
 +
 +  * [[Локализация системы#​Локализация временной зоны]]
 +  * [[Регистрация событий в Linux#​Регистрация сообщений,​ переданных по сети]] в Linux
 +  * Linksys SPA-3102 [[Linksys SPA-3102#​Отладка через Syslog]]
 +
 +==== 2.3 Подключение оборудования к Asterisk с использованием телефонных плат ====
 +
 +**Сценарий**:​ Делаем Linksys из Asterisk и Платы Digium TDM
 +
 +  * [[Плата Digium TDM]]
 +
 +==== 2.4 Подключение телефонного оборудования к MGMT сети ====
 +
 +**Методическая рекомендация**:​ проверку доступности стойки со стендов слушателей можно совместить с первой половиной (многопортовый FXS шлюз) следующей работы
 +
 +<​code>​
 +Для системы server использовать алиасы и адрес 192.168.1.10/​24
 +
 +Для системы host (win у прохода) использовать адрес 192.168.X.5/​24
 +плюс дополнительный адрес 192.168.1.5/​24 на LAN 
 +(!!! сделать,​ чтобы не было два default и зависимости от gate)
 +
 +Для системы client1 оставить dhcp (поможет в отладке лабы provisioning для spa3102)
 +</​code>​
 +
 +  * Debian/​Ubuntu:​ [[Настройка сети в Linux#​Статическая настройка параметров]]
 +  * Настройка IP параметров [[TAU-32M.IP]]
 +  * Настройка IP параметров [[SMG-1016]]
 +
 +==== 2.5 Интеграция Asterisk с PBX с использованием многопортового голосового шлюза TAU-32M.IP ====
 +
 +**Сценарий **: В компании используется аналоговая ATC с номерным планом 1XX, разворачиваем рядом Asterisk, и переводим отдельных абонентов на более высокий класс обслуживания с помощью многопортового шлюза с FXO/FXS интерфейсами.
 +
 +Примечание:​
 +
 +  * Закомментировать все элементы конфигурации,​ относящиеся к spa3102
 +  * К линиям на столах слушателей подключены телефоны,​ которые играют роль абонентов Asterisk с номерами 103 ... 108, подключенными к порты FXS 3..8. Их линии ATC подключаются к портам FXO 11..16
 +  * В 109-ю линию включается телефон преподавателя - абонент классической PBX
 +  * Методически преподавтель показывает все этапы, слушатели делают окончательный вариант
 +  * Для тестирования доступности оборудования в стойке,​ при ее передаче,​ убрать на шлюзе алиас 192.168.1.1/​24
 +
 +Конфигурация:​
 +
 +  * TAU-32M.IP [[TAU-32M.IP#​Настройка параметров SIP и плана номеров]]
 +
 +<​code>​
 +server# cat /​etc/​asterisk/​sip.conf
 +</​code><​code>​
 +;[101+X]
 +;...
 +...
 +;[fxo101+X]
 +;...
 +...
 +[tau32m]
 +type=peer
 +host=192.168.1.2
 +;​directmedia=no
 +</​code>​
 +
 +  * TAU-32M.IP [[TAU-32M.IP#​Настройка FXS интерфейсов]]
 +  * TAU-32M.IP [[TAU-32M.IP#​Настройка FXO интерфейсов для звонков PBX->​TAU32->​SIP]]
 +  * TAU-32M.IP [[TAU-32M.IP#​Настройка FXO интерфейсов для звонков SIP->​TAU32->​PBX]]
 +
 +<​code>​
 +server# cat /​etc/​asterisk/​extensions.conf
 +</​code><​code>​
 +...
 +;exten => _1XX,​1,​Dial(SIP/​${EXTEN},​10)
 +;...
 +
 +;exten => _1XX/​101+X,​1,​Dial(SIP/​fxo101+X/​${EXTEN})
 +
 +exten => _1XX,​1,​Dial(SIP/​tau32m/​${EXTEN},​10)
 +;      same => n,​NoOp(${DIALSTATUS})
 +
 +      same => n,​GotoIf($["​${DIALSTATUS}"​ = "​CHANUNAVAIL"​]?​call_pbx) ​  
 +
 +      same => n,​FollowMe(${EXTEN})
 +      same => n,Hangup()
 +      ​
 +      same => n(call_pbx),​Dial(SIP/​tau32m/​fxo${CALLERID(num)},,​D(ww${EXTEN}))
 +...
 +</​code>​
 +
 +==== 2.6 Подключение "​Городских линий"​ через оборудование с интерфейсом FXO к Asterisk ====
 +
 +  * Подготовительное задание:​ [[Сервис Asterisk#​Шаблон конфигурации для обработки входящих вызовов]]
 +
 +Демонстрирует преподаватель,​ поскольку конфигурация не отличается от ранее выполненных заданий. !!! На преподавательском астериске,​ убедиться что шлюзы с него видны!!!
 +
 +**Общий сценарий**:​ Старую АТС выключили. В компанию приходит несколько городских линий для абонентов 4XX.
 +
 +**Сценарий 1**:  Подключаем несколько (2-3) городских линий 84951234560+X к Asterisk с помощью однопортовых шлюзов слушателей с FXO интерфейсом. Телефон на столе преподавателя (84951234560) и телефоны слушателей,​ шлюзы которых не используются,​ играют роль абонентов PSTN. Так же, нужно добавить функционал отправки вызова обратно в город (на телефон слушателя) в случае отсутствия ответа.
 +
 +  * [[Linksys SPA-3102#​Настройка параметров аналоговой линии]] (Демонстрация важности настройки Disconnect Tone)
 +
 +<​code>​
 +server# cat /​etc/​asterisk/​sip.conf
 +</​code><​code>​
 +...
 +[pstn2]
 +type=friend
 +secret=ppassword2
 +host=dynamic
 +
 +[pstn3]
 +type=friend
 +secret=ppassword3
 +host=dynamic
 +
 +[pstn4]
 +type=friend
 +secret=ppassword4
 +host=dynamic
 +</​code><​code>​
 +server# cat /​etc/​asterisk/​extensions.conf
 +</​code><​code>​
 +...
 +exten => _8XXXXXXXXXX,​1,​Dial(SIP/​voip1_00000X/​${EXTEN})
 +exten => _8XXXXXXXXXX,​n,​Dial(SIP/​pstn2/​${EXTEN})
 +exten => _8XXXXXXXXXX,​n,​Dial(SIP/​pstn3/​${EXTEN})
 +exten => _8XXXXXXXXXX,​n,​Dial(SIP/​pstn4/​${EXTEN})
 +...
 +exten => frompstn,​1,​Dial(SIP/​401&​SIP/​402,​10)
 +       same => n,​Goto(default,​84951234565,​1)
 +...
 +</​code>​
 +
 +  * Linksys SPA-3102 ([[Linksys SPA-3102#​Настройка FXO/​LINE/​PSTN Line]])
 +
 +**Сценарий 2**:  Подключаем городские линии Asterisk с помощью много-портового шлюза с FXO интерфейсами. ​
 +
 +Реализация:​
 +
 +  * Номера 84951234560 и 84951234561 играют роль городских линий, пришедших в офис и подключаются к портам FXO 9 и 10, которые объединяются в fxogroup 84951234569 (выдуманный номер, играющий роль общего номера для обоих линий).
 +  * Телефонные линии слушателей 84951234560+X включены в телефоны играют роль абонентов PSTN 
 +  * Звонок из города,​ производится на любой из номеров 84951234560 или 84951234561 эмулируя передачу телефонным оператором вызова номера 84951234569 в свободную линию клиента.
 +  * Звонок в город производится с телефона 402 преподавателя (два параллельных звонка с двух каналов)
 +
 +Конфигурация:​
 +
 +  * TAU-32M.IP [[TAU-32M.IP#​Объединение FXO интерфейсов в группу для звонков SIP->​TAU32->​PBX]]
 +
 +<​code>​
 +server# cat /​etc/​asterisk/​extensions.conf
 +</​code><​code>​
 +...
 +exten => _8XXXXXXXXXX,​1,​Dial(SIP/​tau32m/​84951234569,,​D(ww${EXTEN}))
 +...
 +exten => 84951234569,​1,​Dial(SIP/​401&​SIP/​402,​10)
 +;       same => n,​Goto(default,​84951234567,​1)
 +...
 +</​code>​
 +
 +==== 2.7 Подключение Asterisk к PBX через оборудование с интерфейсом PRI ====
 +
 +**Сценарий**:​ В компании используется классическая ATC с PRI интерфейсом,​ разворачиваем рядом Asterisk, новые IP телефоны,​ план нумерации для них. Соединяем абонентов старой АТС и Asterisk с помощью шлюза с PRI интерфейсом. Программируем в классической ATC транк в номерной план Asterisk через PRI интерфейс.
 +
 +=== Настройка Asterisk и голосового шлюза ===
 +
 +  * [[SMG-1016]]
 +
 +<​code>​
 +server# cat /​etc/​asterisk/​sip.conf
 +</​code><​code>​
 +...
 +;[tau32m]
 +; ...
 +...
 +[smg1016]
 +type=peer
 +host=192.168.1.3
 +;​directmedia=no
 +</​code><​code>​
 +server# cat /​etc/​asterisk/​extensions.conf
 +</​code><​code>​
 +...
 +;exten => _1XX,​1,​Dial(SIP/​tau32m/​${EXTEN})
 +;...
 +...
 +exten => _1XX,​1,​Dial(SIP/​smg1016/​${EXTEN})
 +...
 +exten => _8XXXXXXXXXX,​1,​Dial(SIP/​smg1016/​${EXTEN})
 +...
 +</​code>​
 +
 +==== 2.8 Подключение к Asterisk телефонных аппаратов ====
 +
 +  * Настройка SIP каналов
 +
 +<​code>​
 +server# cat /​etc/​asterisk/​sip.conf
 +</​code><​code>​
 +...
 +;[101+X]
 +; ...
 +...
 +[403]
 +type=friend
 +secret=tpassword403
 +host=dynamic
 +
 +[404]
 +type=friend
 +secret=tpassword404
 +host=dynamic
 +</​code>​
 +
 +  * [[Сервис Asterisk#​Мониторинг текущего состояния абонента (BLF)]] (поддержка должна быть включена до настройки в телефоне)
 +  * Для дополнительных кнопочных панелей требуется внешний блок питания
 +
 +
 +==== 2.9 Использование Provisioning для настройки пользовательского телефонного оборудования ====
 +
 +=== Настройка сервисов DHCP, TFTP и HTTP для поддержки Provisioning ===
 +
 +  * Сервис DHCP [[Сервис DHCP#​Стандартная конфигурация]] [[Сервис DHCP#​Проверка конфигурации и запуск]]
 +  * [[Сервис ТFTP]]
 +  * [[Сервис HTTP#​Установка и запуск сервера Apache]]
 +
 +<​code>​
 +gate# dhcp-lease-list
 +</​code>​
 +
 +=== Подготовка файлов конфигурации VoIP оборудования для Provisioning ===
 +
 +  * [[Cisco 7912#​Использование Provisioning]] для Cisco 7912
 +  * [[Linksys SPA-3102#​Использование Provisioning]] для Linksys SPA-3102
 +  * [[SIP Phone Panasonic KX-HDVXXX#​Использование Provisioning]] для SIP Phone Panasonic KX-HDVXXX
 +  * [[SIP Phone Digium D40#​Использование Provisioning]] для Digium D40
 +
 +<​code>​
 +server# tcpdump -n -e -s0 -A host 192.168.X.IPPHONE
 +</​code>​
 +
 +  * Linksys SPA-3102 [[Linksys SPA-3102#​Восстановление фабричных настроек]]
 +  * SIP Phone Panasonic KX-HDVXXX [[SIP Phone Panasonic KX-HDVXXX#​Сброс к заводским установкам]]
 +
 +
 +
 +=== Дополнительные задания ===
 +
 +  * [[Сервис Asterisk#​Интеграция с Microsoft AD и LDAP]]
 +  * [[Сервис Asterisk#​Provisioning]]
 +
 +==== 2.10 Подключение Asterisk к PBX через плату с интерфейсом PRI ====
 +
 +  * [[Плата OpenVox D130]]
 +===== Вопросы =====
 +
 +  * В чем разница между FXO и FXS интерфейсами?​
 +  * Чем отличаются сети с коммутацией пакетов от сетей с коммутацией каналов?​
 +  * Какая формула используется для расчета необходимого количества телефонных линий?
 +  * Какое сообщение используется в PRI для инициализации исходящего вызова?​
 +  * Как определить,​ поддерживает ли оборудование Provisioning?​
 +  * В каком файле хранится конфигурация драйвера для телефонной платы?
 +===== Модуль 3: Управление прохождением голосового трафика через NAT и FIREWALL =====
 +
 +==== Теория ====
 +
 +  * [[https://​www.mango-office.ru/​support/​tekhnicheskaya_podderzhka/​sip_oborudovanie/​obshchie_voprosy_po_sip_telefonam/​translyatsiya_setevykh_adresov_nat_vidy_skhemy_raboty/​|Трансляция сетевых адресов (NAT) и SIP]]
 +  * [[http://​voiplab.by/​wiki/​asterisk/​61-asterisk-13-za-nat-net-zvuka-v-odnu-storonu-net-slyshimosti|Asterisk 11 за NAT, нет звука в одну сторону,​ нет слышимости... Что делать?​]]
 +  * [[http://​asterisk.ru/​knowledgebase/​RTP+Symmetric|Симметричный RTP]]
 +  * Варианты расположения VoIP участников с точки зрения NAT и FIREWALL
 +  * Особенности протоколов сигнализации SIP и IAX с точки зрения NAT и FIREWALL
 +  * Элементы конфигурации Asterisk с точки зрения NAT и FIREWALL
 +==== Лабораторные работы:​ Прохождения голосового трафика через NAT и FIREWALL ====
 +
 +==== 3.1 Распространение IP телефонии за пределы офиса ====
 +
 +  * [[Сервис Asterisk#​Подключение Asterisk к Asterisk по протоколу IAX]]
 +
 +или, для видеозвонков:​
 +
 +  * [[Сервис Asterisk#​Видеозвонки]]
 +  * [[Сервис Asterisk#​Настройка базового функционала IP PBX]] для подключение Asterisk к Asterisk по протоколу SIP
 +  * [[Сервис Asterisk#​Настройка плана нумерации]]
 +
 +==== 3.2 Настройка NAT и FIREWALL на интернет шлюзе предприятия ====
 +
 +  * Отключаем маршруты в сети слушателей
 +  * Настраиваем NAT ([[Сервис NAT#​Трансляция на основе адреса отправителя]])
 +
 +==== 3.3 Подключение SIP абонента (server.corpX.un),​ находящегося за NAT к Asterisk провайдера ====
 +
 +<​code>​
 +voip1.un# cat /​etc/​asterisk/​sip.conf
 +</​code><​code>​
 +...
 +[000001]
 +...
 +;nat=yes
 +nat=force_rport,​comedia
 +;​canreinvite=no
 +directmedia=no
 +qualify=yes
 +...
 +[000006]
 +...
 +;nat=yes
 +nat=force_rport,​comedia
 +qualify=yes
 +;​canreinvite=no
 +directmedia=no
 +...
 +</​code><​code>​
 +server# service asterisk restart
 +</​code>​
 +
 +==== 3.4 Подключение Asterisk, находящегося за NAT к VoIP провайдеру ====
 +
 +=== CHAN SIP ===
 +
 +!!!Примечание!!!
 +
 +Эксперимент работает не сразу, попробовать ​
 +
 +  * pfctl -F states на voip1.un
 +  * отключить windows firewall на host системе
 +
 +<​code>​
 +server# cat /​etc/​asterisk/​sip.conf
 +</​code><​code>​
 +[general]
 +...
 +localnet=192.168.1.0/​255.255.255.0
 +localnet=192.168.X.0/​255.255.255.0
 +
 +;;​externip=172.16.1.X
 +;​externaddr=172.16.1.X:​6050
 +externaddr=172.16.1.X
 +;;​defaultexpiry=60
 +...
 +[voip1_00000X]
 +...
 +nat=comedia
 +qualify=yes
 +directmedia=no
 +...
 +</​code>​
 +
 +=== PJSIP ===
 +
 +  * [[https://​wiki.asterisk.org/​wiki/​display/​AST/​Configuring+res_pjsip+to+work+through+NAT|Asterisk and Phones Connecting Through NAT to an ITSP]]
 +  * [[Сервис Asterisk#​Настройка RES_PJSIP каналов]]
 +==== 3.5 Использование DNS View для подключения к Asterisk предприятия ====
 +
 +  * [[Сервис NAT#​Трансляция портов сервисов]]
 +  * Настраиваем DNS View ([[Финальная настройка DNS сервера]])
 +
 +
 +==== 3.6 Подключение пользователей к Asterisk, находящемуся за NAT ====
 +
 +!!!Примечание!!!
 +
 +На преподавательской системе прописать маршруты в сети слушателей (из-за сети 192.168.1.5/​24)
 +
 +<​code>​
 +server# cat /​etc/​asterisk/​sip.conf
 +</​code><​code>​
 +...
 +[402]
 +...
 +nat=force_rport,​comedia
 +directmedia=no
 +qualify=yes
 +...
 +[corpY]
 +...
 +nat=force_rport,​comedia
 +directmedia=no
 +;;​qualify=yes
 +...
 +</​code>​
 +
 +==== 3.7 Подключение Asterisk к Asterisk ====
 +
 +  * Достаточно перезапустить сервисы Asterisk для вступления в силу новых параметров DNS (см. /​etc/​asterisk/​dnsmgr.conf)
 +
 +<​code>​
 +server# service asterisk restart
 +</​code>​
 +
 +
 +===== Вопросы =====
 +
 +  * Верно ли, что для получения входящих вызовов от VoIP провайдера Asterisk должен иметь публичный адрес?
 +  * Перечислите,​ какие задачи решают директивы конфигурации nat, directmedia,​ qualify, localnet/​externip?​
 +  * Когда требуется открывать доступ к Asterisk из внешней сети?
 +  * В каком файле конфигурации Asterisk можно указать диапазон портов для голосового трафика?​
 +  * Что должны разрешать правила в пакетном фильтре для передачи голосового трафика?​
 +  * Что должны разрешать правила в пакетном фильтре для передачи SIP сигнализации?​
 +
 +===== Модуль 4: Подключение внешних пользователей к телефонии предприятия =====
 +
 +==== Теория ====
 +
 +  * [[http://​voipapplication.blogspot.com/​2009/​01/​120000-phone-bill-voip-hacked-small.html|"​Voip hackers runs up a phone bill worth $120,​000"​.]]
 +==== Вопросы безопасности при подключении внешних пользователей ====
 +
 +  * [[Сервис Asterisk#​Поддерживаемые версии]]
 +  * [[Сервис Asterisk#​Список проблем безопасности]]
 +
 +==== Варианты защиты Asterisk от несанкционированного использования ====
 +
 +  * Сервис Asterisk ([[Сервис Asterisk#​Зашита от несанкционированного использования]])
 +  * [[https://​code.google.com/​p/​sipvicious/​|SIPVicious security tools]]
 +
 +==== Лабораторные работы:​ Внешние пользователи и безопасность ====
 +
 +==== 4.1 Использование хешей паролей ====
 +
 +  * [[http://​asterisk-support.ru/​forum/​topics/​3032/​|SIP авторизация и MD5]]
 +  * [[Сервис Asterisk#​Использование хешей паролей для каналов типа user]]
 +
 +==== 4.2 Настройка безопасного распространения файлов конфигурации VoIP оборудования ====
 +
 +<​code>​
 +gate# dhcp-lease-list
 +
 +server# tcpdump -n -e -s0 -A host 192.168.X.IPPHONE and port 80
 +</​code>​
 +
 +<​code>​
 +server# cd /​var/​www/​html/​
 +
 +server# mv -v spa-000E08NNNNNN.cfg /root/
 +</​code>​
 +
 +  * [[Пакет OpenSSL#​Использование алгоритмов симметричного шифрования]]
 +  * Linksys SPA-3102 [[Linksys SPA-3102#​Безопасное распространение файлов конфигурации]]
 +  * Linksys SPA-3102 [[Linksys SPA-3102#​Восстановление фабричных настроек]]
 +
 +  * [[Пакет OpenSSL#​Создание самоподписанного сертификата]] для системы server.corpX.un
 +  * [[Сервис HTTP#​Поддержка протокола HTTPS]]
 +  * SIP Phone Panasonic KX-HDVXXX [[SIP Phone Panasonic KX-HDVXXX#​Использование Provisioning]]
 +
 +
 +==== 4.3 Шифрование телефонного трафика ====
 +
 +  * Требует телефона с поддержкой TLS SRTP, например - [[ZoIPer]] 3.15 (требует добавление самоподписанного сертификата в систему) или [[PhonerLite]] (принимает самоподписанный сертификат)
 +  * Прослушивание голосового трафика (на gate, [[Утилита Wireshark]],​ [[Файловый сервер SAMBA#​Публичный каталог доступный на запись]])
 +
 +<​code>​
 +gate# tcpdump -ni eth1 -s0 -w file1.dmp ​
 +</​code>​
 +
 +  * [[Пакет OpenSSL#​Создание самоподписанного сертификата]] для системы server.corpX.un
 +  * [[Сервис Asterisk#​Использование TLS]] в Asterisk
 +
 +
 +
 +==== 4.4 Настройка Asterisk для защиты от несанкционированного использования ====
 +
 +  * [[https://​val.bmstu.ru/​unix/​voip/​python-2.7.10.msi]]
 +  * [[https://​val.bmstu.ru/​unix/​voip/​sipvicious-0.2.8.zip]]
 +
 +=== Ищем сервера Asterisk ===
 +<​code>​
 +C:​\bin\sipvicious-0.2.8>​svmap.py 172.16.1.1-172.16.1.254
 +
 +C:​\>​c:​\Python27\python.exe C:​\sipvicious-0.2.8\svmap.py 172.16.1.1-172.16.1.10
 +...
 +</​code>​
 +
 +  * [[Сервис Asterisk#​Сокрытие версии]]
 +
 +=== Подключаемся под произвольной учетной записью ===
 +<​code>​
 +server# cat /​etc/​asterisk/​sip.conf
 +</​code><​code>​
 +[general]
 +...
 +autocreatepeer=no
 +...
 +</​code><​code>​
 +server# asterisk -rx 'sip show settings'​ | grep AutoCreate
 +</​code><​code>​
 +  AutoCreate Peer:        Off
 +</​code>​
 +
 +=== Звоним анонимно ===
 +
 +!!! Для демонстрации необходимо установить струю версию [[ZoIPer]] !!!
 +
 +<​code>​
 +server# cat /​etc/​asterisk/​sip.conf
 +</​code><​code>​
 +[general]
 +...
 +allowguest=no
 +...
 +</​code><​code>​
 +server# asterisk -rx 'sip show settings'​ | grep unknown
 +</​code><​code>​
 +  Allow unknown access: Yes
 +</​code>​
 +
 +=== Определяем имена каналов ===
 +
 +<​code>​
 +c:​\Python27\python.exe C:​\sipvicious-0.2.8\svwar.py --force -e100-999 172.16.1.X
 +...
 +server# asterisk -rx 'sip show settings'​ | grep rejects
 +</​code><​code>​
 +  Always auth rejects: No
 +</​code><​code>​
 +server# cat /​etc/​asterisk/​sip.conf
 +</​code><​code>​
 +[general]
 +...
 +alwaysauthreject=yes
 +...
 +</​code>​
 +
 +=== Подбираем пароль к каналу ===
 +<​code>​
 +server# cat /​etc/​asterisk/​sip.conf
 +</​code><​code>​
 +...
 +[401]
 +secret=1234
 +...
 +</​code><​code>​
 +C:​\bin\sipvicious-0.2.8>​svcrack.py -u401 -r1-9999 -z4 172.16.1.X
 +
 +C:​\bin\sipvicious-0.2.8>​svcrack.py -u401 -d passwd.txt 172.16.1.X
 +</​code>​
 +
 +=== Ограничиваем доступ к каналу ===
 +
 +  * [[Сервис Asterisk#​Использование шаблонов в именах CHAN_SIP каналов]]
 +==== 4.5 Использование контекстов,​ для построения матрицы доступа SIP каналов к номерным планам ====
 +
 +<​code>​
 +server# cat /​etc/​asterisk/​sip.conf
 +</​code><​code>​
 +[general]
 +...
 +context=default
 +...
 +subscribecontext=blf
 +...
 +[office](!)
 +context=from-office
 +...
 +
 +[internet](!)
 +context=from-internet
 +...
 +
 +[401]
 +context=from-office
 +...
 +[402]
 +context=from-internet
 +...
 +[403]
 +context=from-office
 +...
 +[404]
 +context=from-office
 +...
 +[voip1_00000X]
 +context=incoming
 +...
 +</​code><​code>​
 +server# cat /​etc/​asterisk/​iax.conf
 +</​code><​code>​
 +...
 +[corpY]
 +;type=user
 +context=from-corp
 +...
 +</​code><​code>​
 +server# cat /​etc/​asterisk/​extensions.conf
 +</​code><​code>​
 +[default]
 +
 +exten => _X.,​1,​Playback(vm-goodbye)
 +exten => _X.,​n,​Hangup()
 +
 +[blf]
 +exten => _4XX,​hint,​SIP/​${EXTEN}
 +
 +[from-office]
 +include => to-office
 +include => to-corp
 +include => to-pstn
 +
 +[from-internet]
 +include => to-office
 +include => to-corp
 +
 +[from-corp]
 +include => to-office
 +
 +[to-office]
 +;exten => _1XX ...
 +
 +exten => 301 ...
 +
 +exten => _4XX ...
 +
 +[to-corp]
 +exten => _00Y[41]XX,​1,​Set(CALLERID(num)=00X${CALLERID(num)})
 +exten => _00Y[41]XX,​n,​Dial(IAX2/​corpY/​${EXTEN:​3})
 +
 +[to-pstn]
 +exten => _8XXXXXXXXXX,​1,​Dial(SIP/​voip1_00000X/​${EXTEN})
 +
 +[incoming]
 +exten => voip1_00000X,​1,​Dial(SIP/​401&​SIP/​402&​SIP/​403&​SIP/​404)
 +</​code>​
 +
 +  * Сервис FollowMe ([[Сервис Asterisk#​Переадресация вызовов на внешний номер]])
 +
 +<​code>​
 +server# cat /​etc/​asterisk/​extensions.conf
 +</​code><​code>​
 +...
 +[to-pstn]
 +;!!! Authenticate !!!
 +
 +exten => _89XXXXXXXXX,​1,​Dial(SIP/​voip1_00000X/​${EXTEN})
 +
 +exten => _8495XXXXXXX,​1,​Dial(SIP/​voip1_00000X/​${EXTEN})
 +
 +exten => _8499XXXXXXX,​1,​Dial(SIP/​voip1_00000X/​${EXTEN})
 +...
 +</​code>​
 +
 +==== 4.6 Меняем порт sip для внешних подключений к asterisk ====
 +
 +  * [[Финальная настройка DNS сервера]]
 +  * [[Сервис NAT#​Трансляция портов сервисов]]
 +
 +<​code>​
 +# nslookup -q=SRV _sip._udp.corpX.un
 +</​code>​
 +==== 4.7 Использование возможностей пакетных фильтров и дополнительного ПО для защиты Asterisk от несанкционированного использования ====
 +
 +  * [[Сервис Fail2ban]]
 +
 +===== Вопросы =====
 +
 +  * Почему не рекомендуется использовать решения VPN для IP телефонии?​
 +  * На что следует обратить внимание при настройке защиты Asterisk в первую очередь?​
 +  * Что определяют параметры конфигурации autocreatepeer,​ allowguest, alwaysauthreject в конфигурации Asterisk?
 +
 +===== Модуль 5: Итоговая работа =====
 +
 +==== Задание 1: Настройка SIP оборудования ====
 +
 +  * [[Сервис Asterisk#​Настройка базового функционала IP PBX]]
 +<​code>​
 +gate# dhcp-lease-list
 +</​code>​
 +  * [[Базовая станция DECT KX-UDS124]]
 +  * [[Микросотовый терминал KX-UDTXXX]]
asterisk._телефонное_оборудование_и_безопасность_2025.1748337066.txt.gz · Last modified: 2025/05/27 12:11 by val