Для защиты телефонных переговоров от прослушивания в системах построенных на базе Asterisk , используется 2 протокола.
1)TLS (Transport Layer Security) - криптографический протокол, обеспечивающий защищенную передачу данных между узлами в сети Интернет. Этот протокол используется для шифрования SIP сессий.
2) Secure Real-time Transport Protocol - Безопасный Протокол Передачи Данных реального времени (SRTP) определяет профиль RTP и предназначен для шифрования ,установления подлинности сообщения,целостности,защиты от замены данных в медиа-потоках.
Другими словами он необходим для шифрования непосредственно голоса.
Настроим шифрование на elastix.
1)Создаем сертификаты.
Заходим на Elastix по SSH.Создаем директорию для сертификатов и ключей при помощи команды
mkdir /etc/asterisk/keys
В Elastix сертификаты можно создавать при помощи скрипта "ast_tls_cert"
Перейдем в директорию, где находится этот скрипт при помощи команды
cd /usr/share/doc/asterisk-1.8.11.0/contrib/scripts/
Запустим скрипт для формирования само-подписанного сертификата:
./ast_tls_cert -C ххх.ххх.ххх.ххх -O "Company" -d /etc/asterisk/keys
-С - ip адрес сервера
-О - название компании
-d - директория для файлов
В процессе формирования сертификата необходимо установить пароль для ca.key ,а затем подтвердить его:
Сформируем клиентский сертификат
./ast_tls_cert -m client -c /etc/asterisk/keys/ca.crt -k /etc/asterisk/keys/ca.key -C yyy.yyy.yyy.yyy -O "Company" -d /etc/asterisk/keys -o client
-C -ip адрес машины на которой установлен телефон
В процессе формирования сертификата будет запрошен пароль для ca.key:
В результате в директории keys появятся следующие файлы:
asterisk.crt
asterisk.csr
asterisk.key
asterisk.pem
ca.cfg
ca.crt
ca.key
client.crt
client.csr
client.key
client.pem
2)Настраиваем Elastix для работы с TLS и SRTP.
Отредактируем файл sip_general_custom.conf, для этого запустим файловый менеджер Midnight Commander с помощью команды mc , перейдем в директорию /etc/asterisk , выберем нужный файл и нажмем "F4"(редактировать):
Добавим несколько строк в этот файл
tlsenable=yes
tlsbindaddr=0.0.0.0
tlscertfile=/etc/asterisk/keys/asterisk.pem
tlscafile=/etc/asterisk/keys/ca.crt
tlscipher=ALL
tlsclientmethod=tlsv1
Сохраним изменения, нажав "F2"
Внесем изменения в файл sip_custom_post.conf , прописав для номера 8010 :
[8010](+)
transport = tls
encryption=yes
Сохраним изменения, нажав "F2"
Переходим в директорию keys
cd /etc/asterisk/keys
выполняем команду
chmod 777 *
3)Установим на клиентскую машину сертификаты.Для этого заходим через WEBMIN на Elastix
https://ip_adress:10000и скачиваем 2 файла ca.crt и client.crt
Others->Upload and Download->download from server
Устанавливаем оба сертификата на клиентскую машину с помощью стандартного менеджера сертификатов.Для этого достаточно кликнуть по сертификату и на все вопросы ответить "да"
4)Подключаемся к Elastix по SSH.Подключаемся к Asterisk:
asterisk -vvvvvvvvvvvvvvvvvvr
В консоли Asterisk выполняем команду
IpPBX*CLI> reload
а затем
SIP SHOW PEER 8010
5)Настраиваем программный телефон
Настраивать будем программный телефон eyeBeam 1.5
Во вкладке "Account" пропишем имя , логин , пароль , ip адрес сервера
Во вкладке "Security" прописываем транспорт TLS + только шифрованный медиа-поток.
SIP SHOW PEER 8010
Наберем на телефоне тестовый номер 1234.Вызов зашифрован: