Курсы по использованию Asterisk

IP-телефония — технология будущего. Обучитесь работе с IP-АТС Asterisk для того чтобы внедрить и профессионально использовать при решении коммуникационных задач.

Работайте с Asterisk профессионально!

Многоуровневая защита IP-АТС Asterisk

Телефонные станции очень часто становятся объектами хакерских атак. Узнайте, каким образом необходимо строить многоуровневую защиту для Вашей IP-АТС.

Не оставьте хакерам шансов. Защитите свой Asterisk от атак.

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

Панель управление FreePBX позволяет легко и удобно управлять всей системой. Научитесь эффективно использовать FreePBX для решения своих задач.

Управление станцией и статистика в окне браузера.

Научитесь работать с Asterisk из консоли

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

Научитесь «тонкой» настройке Asterisk

Цель курсов - максимум практики.

Обучение нацелено на практическую работу с IP-оборудованием: платы потоков E1, VoIP-телефонные аппараты, голосовые шлюзы FXS и прочее.

Обучение на реальном оборудовании — залог успеха.

TLS SRTP для драйвера PJSIP в Asterisk 15

База знаний Настройка Asterisk

В рамках данной статьи будет рассмотрена настройка шифрования SIP и RTP трафика при использовании драйвера PJSIP.  Шифрование протокола SIP будет происходить с помощью TLS, а вместо не шифрованного протокола RTP будет использоваться защищенный протокол SRTP.  Шифрование только протокола SIP недостаточно, так как если оставить незашифрованным RTP поток, то при перехвате трафика злоумышленник сможет без проблем   прослушать вызовы.

 

Конфигурация используемой системы:

- Centos 7

- Asterisk 15.6.1 собранный с поддержкой SRTP и PJSIP

Сначала необходимо убедиться что Asterisk собран с поддержкой SRTP и PJSIP и если это не так то пересобрать установив необходимые пакеты.

 Проверить наличие драйвера PJSIP в Asterisk можно командой:

asterisk -rx „module show like pjsip“


Данная команда выведет список всех модулей  относящихся к PJSIP. Если в отображаемом списке статус модулей стоит Running значит модули загружены и работают

 

Проверка наличия драйвера PJSIP в Asterisk

Для проверки наличия SRTP необходимо выполнить команду

asterisk -rx 'module show like srtp'

Если в выводе не показан ни один модуль то необходимо пересобрать Asterisk с использованием данного модуля.

проверка наличия модуля SRTP — модуль отсутсвует

Для установки SRTP следует выполнить следующие шаги:
1) Установить библиотеку SRTP c помощью команды

yum install libsrtp libsrtp-devel -y

2) Перейти в директорию с исходниками Asterisk и сконфигурировать установку командой:


./configure --libdir=/usr/lib64 --with-crypto --with-ssl=ssl --with-srtp

3) В окне выбора устанавливаемых модулей (make menuselect) необходимо в разделе Resource Modules включить установку модуля res_srtp

Установка модуля res_srtp

4) Далее шаги соответствуют стандартной установке Asterisk (make и make install)

5) Далее необходимо перезагрузить Asterisk командой systemctl restart asterisk

6) Далее необходимо загрузить модуль, выполнив в консоли Asterisk`а команду module load res_srtp.so

загрузка модуля res_srtp.so

Полностью установка Asterisk с поддержкой SRTP и PJSIP рассмотрена на примере Asterisk 13 в статье

Теперь команда asterisk -rx 'module show like srtp' покажет, что модуль находится в сотсоянии Running.

проверка наличия модуля SRTP — модуль загружен

Обратите внимание, что после перезагрузки Asterisk`а модуль придется снова подгружать вручную, чтобы избежать этого необходимо корректно настроить файл /etc/asterisk/modules.conf

 Для этого необходимо или включить автозагрузку всех модулей установив опцию autoload = yes,  или же прописать в явном виде подгрузку модуля опцией

load = res_srtp.so

 

прописывание загрузки модуля srtp в файл modules.conf

Перед тем как настраивать транспорт для драйвера PJSIP необходимо сгенерировать сертификаты. Для этого необходимо выполнить следующие шаги.
1) в директории /etc/asterisk создать поддиректорию keys командой mkdir /etc/asterisk/keys

Для создания ключей в исходниках Asterisk присутсвует специальный скрипт ast_tls_cert, находящий в поддиректории contrib/scripts/

По-умолчанию срок выдачи генерируемого сертификата год, чтобы увеличить срок необходимо поправить скрипт заменив число 365 в параметре -days на любое необходимое, например,  3650 — это выдаст сертификат сроком на 10 лет.

 

правка скрипта для выдачи сертификата TLS на 10 лет

2) запустить скрипт для генерации сертификатов командой

./ast_tls_cert -C pbx.company.ru -O "Test Company" -d /etc/asterisk/keys

В процессе генерации будет запрошен ввод ключевой фразы для генерации ca.key, также понадобиться ввести тотже код и для генерации asterisk.key.

 

генерация сертификатов и ключей сервера

3) Следующий шаг — генерация клиентского сертификата командой

./ast_tls_cert -m client -c /etc/asterisk/keys/ca.crt -k /etc/asterisk/keys/ca.key -C client1.company.ru -O "Test Company" -d /etc/asterisk/keys -o 100

При генерации клиентского ключа необходимо будет указать ту же ключевую фразу, что задавали при генерации сертификата сервера.

генерация клиентского ключа

После генерации сертификатов необходимо настроить Asterisk на работу с TLS.

Сначала необходимо в секции описания транспортных протоколов файла /etc/asterisk/pjsip.conf, создать секцию с описанием TLS.
Ее примерный вид следующий:

[transport-tls]
type=transport
protocol=tls
bind=0.0.0.0:5061
cert_file=/etc/asterisk/keys/asterisk.crt
priv_key_file=/etc/asterisk/keys/asterisk.key
domain=pbx.company.ru
external_media_address=1.1.1.1
external_signaling_address=1.1.1.1
local_net=192.168.170.0/24
method=tlsv1

 

секция транспорт

Краткое описание параметров секции

bind — указывает Asterisk, что TLS будет работать на порту 5061

cert_file — указывает путь к файлу сертификата, сгенерированного на предыдущем этапе

priv_key_file - указывает путь к файлу приватного ключа, сгенерированного на предыдущем этапе

external_media_address — указывает внешний ip-адрес АТС при нахождении ее за NAT`ом

external_signaling_address — указывает внешний ip-адрес АТС при нахождении ее за NAT`ом

 

При подключении внешних абонентов на маршрутизаторе необходимо обязательно пробрасывать порт 5061 TCP и диапазон голосовых портов UDP, на Asterisk

Для разрешения в дальнейшем применения изменений транспорта командой  asterisk -rx „core reload“ необходимо дополнительно указать в секции транспорта параметр allow_reload=true

 Для проверки настроек TLS можно воспользоваться командой

openssl s_client -connect 127.0.0.1:5061


Команда выводит данные о сертификате.

 

проверка настроек TLS

Настройка секций endpoint, auth, aor

Основным отличием настроек данных секций от стандартный в PJSIP является наличие опции media_encryption=sdes

Описание секций файла pjsip.conf дано в статьеПример настройки:

[100]
type=aor
max_contacts=1
remove_existing=yes
 
[100]
type=auth
auth_type=userpass
username=100
password=StrongPasswd

 
[100]
type=endpoint
transport=transport-tls
direct_media=no
aors=100
auth=100
context=from-internal
disallow=all
allow=opus
allow=alaw
allow=ulaw

 
force_rport=yes
rewrite_contact=yes

 
dtmf_mode=rfc2833
media_encryption=sdes

 

секции aor, auth, endpoint

 

Данных параметров достаточно для минимальной настройки TLS+SRTP для PJSIP

asterisk, sip, установка, настройка, конфигурация, centOS, 1C