This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
asterisk._телефонное_оборудование_и_безопасность [2020/12/16 16:06] val [4.5 Использование контекстов, для построения матрицы доступа SIP каналов к номерным планам] |
asterisk._телефонное_оборудование_и_безопасность [2022/08/30 08:53] val [2.1 Интеграция Asterisk с классической PBX с использованием персонального голосового шлюза Linksys SPA-3102] |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Asterisk. Телефонное оборудование и безопасность ====== | ====== Asterisk. Телефонное оборудование и безопасность ====== | ||
+ | |||
+ | ===== Вебинар ===== | ||
===== Программа курса ===== | ===== Программа курса ===== | ||
Line 25: | Line 27: | ||
<code> | <code> | ||
- | будущий_gate# sh conf/net_server.sh | + | будущий_gate# sh conf/net_gate.sh |
+ | |||
+ | будущий_gate# init 6 | ||
+ | |||
+ | будущий_server# sh conf/net_server.sh | ||
- | будущий_server# sh conf/net_gate.sh | + | будущий_server# init 6 |
</code> | </code> | ||
Line 33: | Line 39: | ||
<code> | <code> | ||
- | gate# conf/dhcp.sh | + | gate# sh conf/dhcp.sh |
server# sh conf/dns.sh | server# sh conf/dns.sh | ||
Line 125: | Line 131: | ||
secret=tpassword101+X | secret=tpassword101+X | ||
host=dynamic | host=dynamic | ||
- | ... | ||
</code><code> | </code><code> | ||
gate# dhcp-lease-list | gate# dhcp-lease-list | ||
</code> | </code> | ||
+ | * [[Linksys SPA-3102#Включение WEB интерфейса на WAN интерфейсе]] (Узнать назначенный устройству IP адрес) | ||
* [[Linksys SPA-3102#Настройка VoIP параметров]] | * [[Linksys SPA-3102#Настройка VoIP параметров]] | ||
* Подключение к VoIP ([[Сервис Asterisk#Шаблон конфигурации для осуществления исходящих вызовов]]) | * Подключение к VoIP ([[Сервис Asterisk#Шаблон конфигурации для осуществления исходящих вызовов]]) | ||
Line 158: | Line 164: | ||
secret=fpassword101+X | secret=fpassword101+X | ||
host=dynamic | host=dynamic | ||
- | ... | ||
</code><code> | </code><code> | ||
server# cat /etc/asterisk/extensions.conf | server# cat /etc/asterisk/extensions.conf | ||
Line 166: | Line 171: | ||
;exten => _1XX/101+Y,1,Dial(SIP/fxo101+Y/${EXTEN}) | ;exten => _1XX/101+Y,1,Dial(SIP/fxo101+Y/${EXTEN}) | ||
- | ... | ||
</code> | </code> | ||
Line 189: | Line 193: | ||
<code> | <code> | ||
Для системы server использовать алиасы и адрес 192.168.1.10/24 | Для системы server использовать алиасы и адрес 192.168.1.10/24 | ||
- | Для системы host (win у прохода) использовать дополнительный адрес 192.168.1.5/24 на LAN | ||
- | Для системы client1 можно оставить dhcp (поможет в отладке лабы provisioning для spa3102) | + | Для системы host (win у прохода) использовать адрес 192.168.X.5/24 |
+ | плюс дополнительный адрес 192.168.1.5/24 на LAN | ||
+ | (!!! сделать, чтобы не было два default и зависимости от gate) | ||
+ | |||
+ | Для системы client1 оставить dhcp (поможет в отладке лабы provisioning для spa3102) | ||
</code> | </code> | ||
Line 245: | Line 252: | ||
; same => n,NoOp(${DIALSTATUS}) | ; same => n,NoOp(${DIALSTATUS}) | ||
- | ; same => n,GotoIf($["${DIALSTATUS}" = "CONGESTION"]?call_pbx) | ||
same => n,GotoIf($["${DIALSTATUS}" = "CHANUNAVAIL"]?call_pbx) | same => n,GotoIf($["${DIALSTATUS}" = "CHANUNAVAIL"]?call_pbx) | ||
Line 263: | Line 269: | ||
**Общий сценарий**: Старую АТС выключили. В компанию приходит несколько городских линий для абонентов 4XX. | **Общий сценарий**: Старую АТС выключили. В компанию приходит несколько городских линий для абонентов 4XX. | ||
- | **Сценарий 1**: Подключаем несколько (2-3) городских линий 84951234560+X к Asterisk с помощью однопортовых шлюзов слушателей с FXO интерфейсом. Телефон на столе преподавателя (84951234560) и телефоны слушателей, шлюзы которых не используются, играют роль абонентов PSTN. Так же, нужно добавить функционал отправки вызова обратно в город (телефон преподавателя) в случае отсутствия ответа. | + | **Сценарий 1**: Подключаем несколько (2-3) городских линий 84951234560+X к Asterisk с помощью однопортовых шлюзов слушателей с FXO интерфейсом. Телефон на столе преподавателя (84951234560) и телефоны слушателей, шлюзы которых не используются, играют роль абонентов PSTN. Так же, нужно добавить функционал отправки вызова обратно в город (на телефон слушателя) в случае отсутствия ответа. |
* [[Linksys SPA-3102#Настройка параметров аналоговой линии]] (Демонстрация важности настройки Disconnect Tone) | * [[Linksys SPA-3102#Настройка параметров аналоговой линии]] (Демонстрация важности настройки Disconnect Tone) | ||
Line 295: | Line 301: | ||
... | ... | ||
exten => frompstn,1,Dial(SIP/401&SIP/402,10) | exten => frompstn,1,Dial(SIP/401&SIP/402,10) | ||
- | same => n,Goto(default,84951234560,1) | + | same => n,Goto(default,84951234565,1) |
... | ... | ||
</code> | </code> | ||
Line 325: | Line 331: | ||
</code> | </code> | ||
- | ==== 2.7 Подключение Asterisk к PBX через оборудование с интерфейсом PRI (SMG-1016) ==== | + | ==== 2.7 Подключение Asterisk к PBX через оборудование с интерфейсом PRI ==== |
**Сценарий**: В компании используется классическая ATC с PRI интерфейсом, разворачиваем рядом Asterisk, новые IP телефоны, план нумерации для них. Соединяем абонентов старой АТС и Asterisk с помощью шлюза с PRI интерфейсом. Программируем в классической ATC транк в номерной план Asterisk через PRI интерфейс. | **Сценарий**: В компании используется классическая ATC с PRI интерфейсом, разворачиваем рядом Asterisk, новые IP телефоны, план нумерации для них. Соединяем абонентов старой АТС и Asterisk с помощью шлюза с PRI интерфейсом. Программируем в классической ATC транк в номерной план Asterisk через PRI интерфейс. | ||
Line 352: | Line 358: | ||
... | ... | ||
exten => _1XX,1,Dial(SIP/smg1016/${EXTEN}) | exten => _1XX,1,Dial(SIP/smg1016/${EXTEN}) | ||
+ | ... | ||
+ | exten => _8XXXXXXXXXX,1,Dial(SIP/smg1016/${EXTEN}) | ||
... | ... | ||
</code> | </code> | ||
Line 385: | Line 393: | ||
=== Настройка сервисов DHCP, TFTP и HTTP для поддержки Provisioning === | === Настройка сервисов DHCP, TFTP и HTTP для поддержки Provisioning === | ||
- | * Сервис DHCP [[Сервис DHCP#Стандартная конфигурация]] | + | * Сервис DHCP [[Сервис DHCP#Стандартная конфигурация]] [[Сервис DHCP#Проверка конфигурации и запуск]] |
* [[Сервис ТFTP]] | * [[Сервис ТFTP]] | ||
* [[Сервис HTTP#Установка и запуск сервера Apache]] | * [[Сервис HTTP#Установка и запуск сервера Apache]] | ||
Line 429: | Line 437: | ||
==== Теория ==== | ==== Теория ==== | ||
- | * [[http://wiki.sipnet.ru/index.php/Трансляция_сетевых_адресов_(NAT)_и_SIP|Трансляция сетевых адресов (NAT) и SIP]] | + | * [[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://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]] | * [[http://asterisk.ru/knowledgebase/RTP+Symmetric|Симметричный RTP]] | ||
Line 462: | Line 470: | ||
<code> | <code> | ||
- | server# cat /etc/asterisk/sip.conf | + | voip1.un# cat /etc/asterisk/sip.conf |
</code><code> | </code><code> | ||
... | ... | ||
Line 481: | Line 489: | ||
directmedia=no | directmedia=no | ||
... | ... | ||
- | </code> | + | </code><code> |
+ | server# service asterisk restart | ||
+ | </code> | ||
==== 3.4 Подключение Asterisk, находящегося за NAT к VoIP провайдеру ==== | ==== 3.4 Подключение Asterisk, находящегося за NAT к VoIP провайдеру ==== | ||
Line 546: | Line 556: | ||
nat=force_rport,comedia | nat=force_rport,comedia | ||
directmedia=no | directmedia=no | ||
- | qualify=yes | + | ;;qualify=yes |
... | ... | ||
</code> | </code> | ||
Line 591: | Line 601: | ||
==== 4.2 Настройка безопасного распространения файлов конфигурации VoIP оборудования ==== | ==== 4.2 Настройка безопасного распространения файлов конфигурации VoIP оборудования ==== | ||
+ | |||
+ | <code> | ||
+ | gate# dhcp-lease-list | ||
+ | |||
+ | server# tcpdump -n -e -s0 -A host 192.168.X.IPPHONE | ||
+ | </code> | ||
<code> | <code> | ||
server# cd /var/www/html/ | server# cd /var/www/html/ | ||
- | server# mv spa-000E08NNNNNN.cfg /root/ | + | server# mv -v spa-000E08NNNNNN.cfg /root/ |
</code> | </code> | ||
Line 601: | Line 617: | ||
* Linksys SPA-3102 [[Linksys SPA-3102#Безопасное распространение файлов конфигурации]] | * Linksys SPA-3102 [[Linksys SPA-3102#Безопасное распространение файлов конфигурации]] | ||
* Linksys SPA-3102 [[Linksys SPA-3102#Восстановление фабричных настроек]] | * Linksys SPA-3102 [[Linksys SPA-3102#Восстановление фабричных настроек]] | ||
- | |||
- | <code> | ||
- | gate# dhcp-lease-list | ||
- | |||
- | server# tcpdump -n -e -s0 -A host 192.168.X.IPPHONE | ||
- | </code> | ||
* [[Пакет OpenSSL#Создание самоподписанного сертификата]] для системы server.corpX.un | * [[Пакет OpenSSL#Создание самоподписанного сертификата]] для системы server.corpX.un | ||
Line 612: | Line 622: | ||
* SIP Phone Panasonic KX-HDVXXX [[SIP Phone Panasonic KX-HDVXXX#Использование Provisioning]] | * SIP Phone Panasonic KX-HDVXXX [[SIP Phone Panasonic KX-HDVXXX#Использование Provisioning]] | ||
- | <code> | ||
- | server# tcpdump -n -e -s0 -A host 192.168.X.IPPHONE | ||
- | </code> | ||
==== 4.3 Шифрование телефонного трафика ==== | ==== 4.3 Шифрование телефонного трафика ==== | ||
- | * Требует телефона с поддержкой TLS SRTP (например, [[ZoIPer]] 3.15) | + | * Требует телефона с поддержкой TLS SRTP (например, [[ZoIPer]] 3.15, так же есть поддержка, проверить [[PhonerLite]]) |
* Прослушивание голосового трафика (на gate, [[Утилита Wireshark]], [[Файловый сервер SAMBA#Публичный каталог доступный на запись]]) | * Прослушивание голосового трафика (на gate, [[Утилита Wireshark]], [[Файловый сервер SAMBA#Публичный каталог доступный на запись]]) | ||
Line 632: | Line 639: | ||
==== 4.4 Настройка Asterisk для защиты от несанкционированного использования ==== | ==== 4.4 Настройка Asterisk для защиты от несанкционированного использования ==== | ||
- | * [[http://val.bmstu.ru/unix/voip/python-2.7.10.msi]] | + | * [[https://val.bmstu.ru/unix/voip/python-2.7.10.msi]] |
- | * [[http://val.bmstu.ru/unix/voip/sipvicious-0.2.8.zip]] | + | * [[https://val.bmstu.ru/unix/voip/sipvicious-0.2.8.zip]] |
=== Ищем сервера Asterisk === | === Ищем сервера Asterisk === | ||
Line 677: | Line 684: | ||
=== Определяем имена каналов === | === Определяем имена каналов === | ||
- | |||
- | Не работает в win 10 | ||
<code> | <code> | ||
- | C:\bin\sipvicious-0.2.8>svwar.py --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 | server# asterisk -rx 'sip show settings' | grep rejects | ||
Line 710: | Line 715: | ||
=== Ограничиваем доступ к каналу === | === Ограничиваем доступ к каналу === | ||
- | <code> | ||
- | server# cat /etc/asterisk/sip.conf | ||
- | </code><code> | ||
- | ... | ||
- | [office](!) | ||
- | type=friend | ||
- | host=dynamic | ||
- | deny=0.0.0.0/0.0.0.0 | ||
- | permit=192.168.X.0/255.255.255.0 | ||
- | |||
- | [internet](!) | ||
- | type=friend | ||
- | host=dynamic | ||
- | permit=0.0.0.0/0.0.0.0 | ||
- | nat=comedia | ||
- | qualify=yes | ||
- | directmedia=no | ||
- | ;call-limit=1 | ||
- | |||
- | [401](office) | ||
- | secret=tpassword401 | ||
- | |||
- | [402](internet) | ||
- | ;secret=tpassword402 | ||
- | md5secret=40b90878fa5389ead1bd297b247eaeef | ||
- | |||
- | [403](office) | ||
- | secret=tpassword403 | ||
- | |||
- | [404](office) | ||
- | secret=tpassword404 | ||
- | ... | ||
- | </code> | ||
+ | * [[Сервис Asterisk#Использование шаблонов в именах CHAN_SIP каналов]] | ||
==== 4.5 Использование контекстов, для построения матрицы доступа SIP каналов к номерным планам ==== | ==== 4.5 Использование контекстов, для построения матрицы доступа SIP каналов к номерным планам ==== | ||
Line 750: | Line 723: | ||
</code><code> | </code><code> | ||
[general] | [general] | ||
+ | ... | ||
+ | context=default | ||
... | ... | ||
subscribecontext=blf | subscribecontext=blf | ||
Line 823: | Line 798: | ||
[incoming] | [incoming] | ||
exten => voip1_00000X,1,Dial(SIP/401&SIP/402&SIP/403&SIP/404) | exten => voip1_00000X,1,Dial(SIP/401&SIP/402&SIP/403&SIP/404) | ||
- | </code><code> | + | </code> |
+ | |||
+ | * Сервис FollowMe ([[Сервис Asterisk#Переадресация вызовов на внешний номер]]) | ||
+ | |||
+ | <code> | ||
server# cat /etc/asterisk/extensions.conf | server# cat /etc/asterisk/extensions.conf | ||
</code><code> | </code><code> | ||
... | ... | ||
[to-pstn] | [to-pstn] | ||
+ | ;!!! Authenticate !!! | ||
+ | |||
exten => _89XXXXXXXXX,1,Dial(SIP/voip1_00000X/${EXTEN}) | exten => _89XXXXXXXXX,1,Dial(SIP/voip1_00000X/${EXTEN}) | ||