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

This is an old revision of the document!


Table of Contents

Asterisk. Телефонное оборудование и безопасность

Вебинар

Программа курса

Модуль 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 каналов и базового плана звонков

Вопросы

  • Перечислите варианты, позволяющие узнать IP адрес, полученный оборудованием?

Модуль 2: Подключение телефонного оборудования к Asterisk

Теория

Обзор типов телефонного оборудования и вариантов подключения его к Asterisk

Интерфейсы FXS, FXO и PRI

Схема интеграции VoIP и классического телефонного оборудования предприятия

Использование методик расчета количества каналов для подключения Asterisk к PSTN и PBX

Обзор интерфейсов для настройки телефонного оборудования (DTMF, Web интерфейс, Provisioning)

Обзор процедур и форматов файлов конфигурации оборудования Cisco, LinkSys, Panasonic и Элтекс

Лабораторные работы: Подключение голосовых шлюзов и 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
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})

2.2 Отладка и мониторинг телефонного оборудования по протоколу Syslog

2.3 Подключение оборудования к Asterisk с использованием телефонных плат

Сценарий: Делаем Linksys из Asterisk и Платы 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)

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

Конфигурация:

server# cat /etc/asterisk/sip.conf
;[101+X]
;...
...
;[fxo101+X]
;...
...
[tau32m]
type=peer
host=192.168.1.2
;directmedia=no
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

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

Общий сценарий: Старую АТС выключили. В компанию приходит несколько городских линий для абонентов 4XX.

Сценарий 1: Подключаем несколько (2-3) городских линий 84951234560+X к Asterisk с помощью однопортовых шлюзов слушателей с FXO интерфейсом. Телефон на столе преподавателя (84951234560) и телефоны слушателей, шлюзы которых не используются, играют роль абонентов PSTN. Так же, нужно добавить функционал отправки вызова обратно в город (на телефон слушателя) в случае отсутствия ответа.

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)
...

Сценарий 2: Подключаем городские линии Asterisk с помощью много-портового шлюза с FXO интерфейсами.

Реализация:

  • Номера 84951234560 и 84951234561 играют роль городских линий, пришедших в офис и подключаются к портам FXO 9 и 10, которые объединяются в fxogroup 84951234569 (выдуманный номер, играющий роль общего номера для обоих линий).
  • Телефонные линии слушателей 84951234560+X включены в телефоны играют роль абонентов PSTN
  • Звонок из города, производится на любой из номеров 84951234560 или 84951234561 эмулируя передачу телефонным оператором вызова номера 84951234569 в свободную линию клиента.
  • Звонок в город производится с телефона 402 преподавателя (два параллельных звонка с двух каналов)

Конфигурация:

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 и голосового шлюза

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

2.9 Использование Provisioning для настройки пользовательского телефонного оборудования

Настройка сервисов DHCP, TFTP и HTTP для поддержки Provisioning

Подготовка файлов конфигурации VoIP оборудования для Provisioning

server# tcpdump -n -e -s0 -A host 192.168.X.IPPHONE

Дополнительные задания

2.10 Подключение Asterisk к PBX через плату с интерфейсом PRI

Вопросы

  • В чем разница между FXO и FXS интерфейсами?
  • Чем отличаются сети с коммутацией пакетов от сетей с коммутацией каналов?
  • Какая формула используется для расчета необходимого количества телефонных линий?
  • Какое сообщение используется в PRI для инициализации исходящего вызова?
  • Как определить, поддерживает ли оборудование Provisioning?
  • В каком файле хранится конфигурация драйвера для телефонной платы?

Модуль 3: Управление прохождением голосового трафика через NAT и FIREWALL

Теория

Лабораторные работы: Прохождения голосового трафика через NAT и FIREWALL

3.1 Распространение IP телефонии за пределы офиса

3.2 Настройка NAT и FIREWALL на интернет шлюзе предприятия

# cat /etc/resolv.conf
search corpX.un
nameserver 192.168.X.10

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 провайдеру

PJSIP

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
...

3.5 Использование DNS View для подключения к Asterisk предприятия

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: Подключение внешних пользователей к телефонии предприятия

Теория

Вопросы безопасности при подключении внешних пользователей

Варианты защиты Asterisk от несанкционированного использования

Лабораторные работы: Внешние пользователи и безопасность

4.1 Использование хешей паролей

4.2 Настройка безопасного распространения файлов конфигурации VoIP оборудования

4.3 Шифрование телефонного трафика

gate# tcpdump -ni eth1 -s0 -w file1.dmp udp

4.4 Настройка Asterisk для защиты от несанкционированного использования

Ищем сервера 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
...

Подключаемся под произвольной учетной записью

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

Ограничиваем доступ к каналу

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)
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

4.7 Использование возможностей пакетных фильтров и дополнительного ПО для защиты Asterisk от несанкционированного использования

Вопросы

  • Почему не рекомендуется использовать решения VPN для IP телефонии?
  • На что следует обратить внимание при настройке защиты Asterisk в первую очередь?
  • Что определяют параметры конфигурации autocreatepeer, allowguest, alwaysauthreject в конфигурации Asterisk?

Модуль 5: Итоговая работа

Задание 1: Настройка SIP оборудования

asterisk._телефонное_оборудование_и_безопасность.1661836655.txt.gz · Last modified: 2022/08/30 08:17 by val