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

Table of Contents

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

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

Модуль 0. Подготовка стенда в классе

  • Узнать свой номер стенда

Модуль 1. Развертывание компьютерной и телефонной сети предприятия

Теория

  • Базовая схема компьютерной сети предприятия
  • Базовая схема телефонии предприятия

Лабораторные работы: Настройка ip и voip сети предприятия

1.1 Схема стенда, импорт, настройка и запуск VM gate и server

Запустите с правами 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

1.2 Настройка сети VM gate и server

  • Настройка host системы, интерфейс LAN: 192.168.X.29/24
  • gate: Адаптер1-eth0-LAN, Адаптер2-eth1-WAN
# sh net_gate.sh

# init 6
  • server: Адаптер1-eth0-LAN
# sh net_server.sh

# init 6
  • Создать в Putty профили gate, server и подключиться

1.3 Настройка сервисов DHCP и DNS

gate:~# sh conf/dhcp.sh
server:~# sh conf/dns.sh
  • Настройка клиента DNS на gate и server
# cat /etc/resolv.conf
search corpX.un
nameserver 192.168.X.10
# nslookup ns

1.4 Настройка сервера Asterisk, sip каналов и базового плана звонков

1.5 Подключение телефонов

  • Импорт VM Windows10, включение
  • Настройка WAN, IP/M 172.16.1.100+X/24, G: 172.16.1.254, DNS: 192.168.X.10
  • Подключение ZoIPer к каналу 402

Вопросы

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

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

Теория

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

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

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

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

Лабораторные работы: Подключение голосовых шлюзов и IP телефонов к Asterisk

2.1 Интеграция Asterisk с классической PBX с использованием персонального голосового шлюза Linksys SPA-3102

Статья: Возможности IP телефонии для мобильных пользователей

Сценарий: Забыли про номерной план 4XX!!! В компании используется аналоговая ATC с номерным планом 1XX, разворачиваем рядом Asterisk, и переводим отдельных абонентов на более высокий класс обслуживания с помощью персональных шлюзов.

Методическая рекомендация: Выполнять лабораторную работу в два этапа, отдельно для интерфейсов FXS и FXO

  • 2.1.1 Переключение телефона 1XX сотрудника на Asterisk и предоставление ему услуг
  • Демонстрирует преподаватель
server# cat /etc/asterisk/sip.conf
...
[101]
type=friend
secret=tpassword101
host=dynamic

;[102]
...
gate# dhcp-lease-list
  • Демонстрирует преподаватель
server# cat /etc/asterisk/extensions.conf
...
exten => 101,1,Dial(SIP/${EXTEN},10)
      same => n,FollowMe(${EXTEN})
      
;exten => 102,1,Dial(SIP/${EXTEN},10)
;      same => n,FollowMe(${EXTEN})
...
  • 2.1.2 Соединение телефонов 1XX, подключенных к Asterisk с телефонами, подключенными к АТС
server# cat /etc/asterisk/sip.conf
...
[fxo101]
type=friend
secret=fpassword101
host=dynamic

;[fxo102]
...
server# cat /etc/asterisk/extensions.conf
...
exten => _1XX/101,1,Dial(SIP/fxo101/${EXTEN})

;exten => _1XX/102,1,Dial(SIP/fxo102/${EXTEN})

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

Сценарий: Делаем Linksys из Asterisk и Платы Digium TDM

  • Демонстрирует преподаватель

2.3 Подключение телефонного оборудования к MGMT сети

  • Демонстрирует преподаватель

2.4 Интеграция Asterisk с PBX с использованием многопортового голосового шлюза TAU-32M.IP

Сценарий : В компании используется аналоговая ATC с номерным планом 1XX, разворачиваем рядом Asterisk, и переводим отдельных абонентов на более высокий класс обслуживания с помощью многопортового шлюза с FXO/FXS интерфейсами.

  • Демонстрирует преподаватель

Примечание:

  • Выключить интерфейсы FXO и FXS в spa3102
  • Удалить все элементы конфигурации, относящиеся к spa3102
  • Линии с номерами 101 …, подключенны к портам FXS 1 … Их линии ATC подключаются к портам FXO 9 …
  • В 109-ю линию включается телефон - абонент классической PBX
  • Методически показываеть все этапы отдельно

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

server# cat /etc/asterisk/sip.conf
;[101]
;...
...
;[fxo101]
;...
...
[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.5 Подключение "Городских линий" через оборудование с интерфейсом FXO к Asterisk

  • Делаем все
  • Демонстрирует преподаватель

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

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

server# cat /etc/asterisk/sip.conf
...
[pstn0]
type=friend
secret=ppassword0
host=dynamic

[pstn1]
type=friend
secret=ppassword1
host=dynamic

;[pstn2]
;...
server# cat /etc/asterisk/extensions.conf
...
;exten => _8XXXXXXXXXX,1,Dial(SIP/voip1_00000X/${EXTEN})

exten => _8XXXXXXXXXX,1,Dial(SIP/pstn0/${EXTEN})
exten => _8XXXXXXXXXX,n,Dial(SIP/pstn1/${EXTEN})
;exten => _8XXXXXXXXXX,n,Dial(SIP/pstn2/${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.6 Подключение 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.7 Подключение к Asterisk телефонных аппаратов

  • Настройка SIP каналов
server# cat /etc/asterisk/sip.conf
...
;[101]
; ...
...
[403]
type=friend
secret=tpassword403
host=dynamic

[404]
type=friend
secret=tpassword404
host=dynamic

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

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

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

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

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

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

  • Демонстрирует преподаватель

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

Вопросы

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

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

Теория

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

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

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

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

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 

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

Ищем сервера Asterisk

gate.isp.un:~# apt-get install sipvicious

userX@gate.isp.un:~$ svmap 172.16.1.1-172.16.1.13


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

Определяем имена каналов

userX@gate:~$ svwar --force -e100-999 172.16.1.X

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
userX@gate:~$ svcrack -u401 -d 10-million-password-list-top-1000000.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._телефонное_оборудование_и_безопасность.txt · Last modified: 2025/07/02 09:47 by val