====== Asterisk. Телефонное оборудование и безопасность ====== ===== Вебинар ===== ===== Программа курса ===== * [[http://www.specialist.ru/course/asterisk2|Asterisk. Уровень 2. Телефонное оборудование и безопасность]] ===== Модуль 0. Подготовка стенда в классе ===== * Узнать свой номер стенда * Удалить виртуалки * Удалить профили putty * Отключить не используемые адаптеры * Записать логин пароль и IP (сообщить преподавателю) рабочей станции * Проверить наличие дистрибутивов и образов ===== Модуль 1. Развертывание компьютерной и телефонной сети предприятия ===== ==== Теория ==== * Базовая схема компьютерной сети предприятия * Базовая схема телефонии предприятия ==== Лабораторные работы: Настройка ip и voip сети предприятия ==== * [[Настройка стендов слушателей#Скрипты автоконфигурации]] ==== 1.1 Настройка интернет шлюза и сервера ==== будущий_gate# sh conf/net_gate.sh будущий_gate# init 6 будущий_server# sh conf/net_server.sh будущий_server# init 6 ==== 1.2 Настройка сервисов DHCP и DNS ==== gate# sh conf/dhcp.sh server# sh conf/dns.sh ==== 1.3 Настройка клиентской системы Windows ==== * Настройка IP протокола на использование DHCP C:\> ipconfig /release C:\> ipconfig /renew gate# dhcp-lease-list gate# ip n ==== 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 и предоставление ему услуг server# cat /etc/asterisk/sip.conf ... [101+X] type=friend secret=tpassword101+X host=dynamic gate# dhcp-lease-list * [[Linksys SPA-3102#Включение WEB интерфейса на WAN интерфейсе]] (Узнать назначенный устройству IP адрес) * [[Linksys SPA-3102#Настройка VoIP параметров]] * Подключение к VoIP ([[Сервис Asterisk#Шаблон конфигурации для осуществления исходящих вызовов]]) * Сервис FollowMe ([[Сервис Asterisk#Переадресация вызовов на внешний номер]]) server# cat /etc/asterisk/extensions.conf См. /* возможно, стоит переделать с использованием макросов */ комментарий ... exten => 101+X,1,Dial(SIP/${EXTEN},10) same => n,FollowMe(${EXTEN}) ;exten => 101+Y,1,Dial(SIP/${EXTEN},10) ; same => n,FollowMe(${EXTEN}) ... * 2.1.2 Соединение телефонов 1XX, подключенных к Asterisk с телефонами, подключенными к АТС server# cat /etc/asterisk/sip.conf ... [fxo101+X] type=friend secret=fpassword101+X host=dynamic server# cat /etc/asterisk/extensions.conf ... exten => _1XX/101+X,1,Dial(SIP/fxo101+X/${EXTEN}) ;exten => _1XX/101+Y,1,Dial(SIP/fxo101+Y/${EXTEN}) * 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 шлюз) следующей работы Для системы 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) * 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 и плана номеров]] server# cat /etc/asterisk/sip.conf ;[101+X] ;... ... ;[fxo101+X] ;... ... [tau32m] type=peer host=192.168.1.2 ;directmedia=no * 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]] server# cat /etc/asterisk/extensions.conf ... ;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})) ... ==== 2.6 Подключение "Городских линий" через оборудование с интерфейсом FXO к Asterisk ==== * Подготовительное задание: [[Сервис Asterisk#Шаблон конфигурации для обработки входящих вызовов]] Демонстрирует преподаватель, поскольку конфигурация не отличается от ранее выполненных заданий. !!! На преподавательском астериске, убедиться что шлюзы с него видны!!! **Общий сценарий**: Старую АТС выключили. В компанию приходит несколько городских линий для абонентов 4XX. **Сценарий 1**: Подключаем несколько (2-3) городских линий 84951234560+X к Asterisk с помощью однопортовых шлюзов слушателей с FXO интерфейсом. Телефон на столе преподавателя (84951234560) и телефоны слушателей, шлюзы которых не используются, играют роль абонентов PSTN. Так же, нужно добавить функционал отправки вызова обратно в город (на телефон слушателя) в случае отсутствия ответа. * [[Linksys SPA-3102#Настройка параметров аналоговой линии]] (Демонстрация важности настройки Disconnect Tone) server# cat /etc/asterisk/sip.conf ... [pstn2] type=friend secret=ppassword2 host=dynamic [pstn3] type=friend secret=ppassword3 host=dynamic [pstn4] type=friend secret=ppassword4 host=dynamic server# cat /etc/asterisk/extensions.conf ... 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) ... * 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]] server# cat /etc/asterisk/extensions.conf ... 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) ... ==== 2.7 Подключение Asterisk к PBX через оборудование с интерфейсом PRI ==== **Сценарий**: В компании используется классическая ATC с PRI интерфейсом, разворачиваем рядом Asterisk, новые IP телефоны, план нумерации для них. Соединяем абонентов старой АТС и Asterisk с помощью шлюза с PRI интерфейсом. Программируем в классической ATC транк в номерной план Asterisk через PRI интерфейс. === Настройка Asterisk и голосового шлюза === * [[SMG-1016]] server# cat /etc/asterisk/sip.conf ... ;[tau32m] ; ... ... [smg1016] type=peer host=192.168.1.3 ;directmedia=no server# cat /etc/asterisk/extensions.conf ... ;exten => _1XX,1,Dial(SIP/tau32m/${EXTEN}) ;... ... exten => _1XX,1,Dial(SIP/smg1016/${EXTEN}) ... exten => _8XXXXXXXXXX,1,Dial(SIP/smg1016/${EXTEN}) ... ==== 2.8 Подключение к Asterisk телефонных аппаратов ==== * Настройка SIP каналов server# cat /etc/asterisk/sip.conf ... ;[101+X] ; ... ... [403] type=friend secret=tpassword403 host=dynamic [404] type=friend secret=tpassword404 host=dynamic * [[Сервис Asterisk#Мониторинг текущего состояния абонента (BLF)]] (поддержка должна быть включена до настройки в телефоне) * Для дополнительных кнопочных панелей требуется внешний блок питания ==== 2.9 Использование Provisioning для настройки пользовательского телефонного оборудования ==== === Настройка сервисов DHCP, TFTP и HTTP для поддержки Provisioning === * Сервис DHCP [[Сервис DHCP#Стандартная конфигурация]] [[Сервис DHCP#Проверка конфигурации и запуск]] * [[Сервис ТFTP]] * [[Сервис HTTP#Установка и запуск сервера Apache]] gate# dhcp-lease-list === Подготовка файлов конфигурации 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 server# tcpdump -n -e -s0 -A host 192.168.X.IPPHONE * 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 на интернет шлюзе предприятия ==== # cat /etc/resolv.conf search corpX.un nameserver 192.168.X.10 * Отключаем маршруты в сети слушателей * Настраиваем NAT ([[Сервис NAT#Трансляция на основе адреса отправителя]]) ==== 3.3 Подключение SIP абонента (server.corpX.un), находящегося за NAT к Asterisk провайдера ==== voip1.un# cat /etc/asterisk/sip.conf ... [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 ... server# service asterisk restart ==== 3.4 Подключение Asterisk, находящегося за NAT к VoIP провайдеру ==== === CHAN SIP === !!!Примечание!!! Эксперимент работает не сразу, попробовать * pfctl -F states на voip1.un * отключить windows firewall на host системе server# cat /etc/asterisk/sip.conf [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 ... === 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) server# cat /etc/asterisk/sip.conf ... [402] ... nat=force_rport,comedia directmedia=no qualify=yes ... [corpY] ... nat=force_rport,comedia directmedia=no ;;qualify=yes ... ==== 3.7 Подключение Asterisk к Asterisk ==== * Достаточно перезапустить сервисы Asterisk для вступления в силу новых параметров DNS (см. /etc/asterisk/dnsmgr.conf) server# service asterisk restart ===== Вопросы ===== * Верно ли, что для получения входящих вызовов от 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 оборудования ==== gate# dhcp-lease-list server# tcpdump -n -e -s0 -A host 192.168.X.IPPHONE and port 80 server# cd /var/www/html/ server# mv -v spa-000E08NNNNNN.cfg /root/ * [[Пакет 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#Публичный каталог доступный на запись]]) gate# tcpdump -ni eth1 -s0 -w file1.dmp * [[Пакет 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 === 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 ... * [[Сервис Asterisk#Сокрытие версии]] === Подключаемся под произвольной учетной записью === server# cat /etc/asterisk/sip.conf [general] ... autocreatepeer=no ... server# asterisk -rx 'sip show settings' | grep AutoCreate AutoCreate Peer: Off === Звоним анонимно === !!! Для демонстрации необходимо установить струю версию [[ZoIPer]] !!! server# cat /etc/asterisk/sip.conf [general] ... allowguest=no ... server# asterisk -rx 'sip show settings' | grep unknown Allow unknown access: Yes === Определяем имена каналов === 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 Always auth rejects: No server# cat /etc/asterisk/sip.conf [general] ... alwaysauthreject=yes ... === Подбираем пароль к каналу === server# cat /etc/asterisk/sip.conf ... [401] secret=1234 ... 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 === Ограничиваем доступ к каналу === * [[Сервис Asterisk#Использование шаблонов в именах CHAN_SIP каналов]] ==== 4.5 Использование контекстов, для построения матрицы доступа SIP каналов к номерным планам ==== server# cat /etc/asterisk/sip.conf [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 ... server# cat /etc/asterisk/iax.conf ... [corpY] ;type=user context=from-corp ... server# cat /etc/asterisk/extensions.conf [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) * Сервис FollowMe ([[Сервис Asterisk#Переадресация вызовов на внешний номер]]) server# cat /etc/asterisk/extensions.conf ... [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}) ... ==== 4.6 Меняем порт sip для внешних подключений к asterisk ==== * [[Финальная настройка DNS сервера]] * [[Сервис NAT#Трансляция портов сервисов]] # nslookup -q=SRV _sip._udp.corpX.un ==== 4.7 Использование возможностей пакетных фильтров и дополнительного ПО для защиты Asterisk от несанкционированного использования ==== * [[Сервис Fail2ban]] ===== Вопросы ===== * Почему не рекомендуется использовать решения VPN для IP телефонии? * На что следует обратить внимание при настройке защиты Asterisk в первую очередь? * Что определяют параметры конфигурации autocreatepeer, allowguest, alwaysauthreject в конфигурации Asterisk? ===== Модуль 5: Итоговая работа ===== ==== Задание 1: Настройка SIP оборудования ==== * [[Сервис Asterisk#Настройка базового функционала IP PBX]] gate# dhcp-lease-list * [[Базовая станция DECT KX-UDS124]] * [[Микросотовый терминал KX-UDTXXX]]