Asterisk настройка TLS SRTP для PJSIP
Настроим защищенное подключение SIP клиентов к Asterisk 14 за NAT, используя драйвер PJSIP, транспорт TLS и шифрование голоса SRTP. См. также SIP TLS SRTP Asterisk На входе у нас Asterisk 15 скомпилированный с поддержкой srtp:
yum install libsrtp libsrtp-devel
./configure --libdir=/usr/lib64 --with-crypto --with-ssl=ssl --with-srtp
Transport Layer Security (TLS) обеспечивает шифрование сигнализации SIP. Это способ защитить информацию о вызовах от man in the middle. SRTP обеспечивает шифрование голоса. Для настройки TLS между Asterisk и SIP клиентом требуется:
Убедитесь что модуль res_srtp.so загружен.
*CLI> module show like srtp Module Description Use Count Status Support Level res_srtp.so Secure RTP (SRTP) 0 Running core 1 modules loaded
Если нет, попытайтесь загрузить его:
*CLI> module load res_srtp.so Loaded res_srtp.so Loaded res_srtp.so => (Secure RTP (SRTP))
Asterisk TLS keys SIP TLS Transport
Применим настройки рестартом asterisk (иначе транспорт не поднять) и убедимся, что он взлетел:
*CLI> pjsip show transport transport-tls
В дальнейшем, изменения в настройках транспорта, можно будет применять командой core reload, если при настройке транспорта указать allow_reload=true, иначе, по умолчанию, только рестартом.
Тестирование
Перезапускаем астериск, и проверяем работоспособность порта командой:
openssl s_client -connect 127.0.0.1:5061
Если все верно видим примерно следующее
Теперь выполним настройки в астериске на пире для работы с TLS и SRTP, в sip.conf активируем для пира tls и включим srtp (encryption):
Хорошо бы еще убедиться, что сигнализация и голос зашифрованы. Это можно сделать при помощи приложения tcpdump
для сигнализации:
tcpdump -nqt -s 0 -A -vvv -i eth0 port 5061
где eth0 сетевой интерфейс.
Для голоса:
tcpdump -nqt -s 0 -A -vvv -i eth0 portrange 10000-20000
Источник:
https://asterisk-pbx.ru/wiki/asterisk/pjsip-tls-srtp