Настройка SIP телфона Grandstream gxp1160 на TLS и SRTP для связи с asterisk

Jan 13, 2015 11:33


По работе пришлось настроить партию gxp1160 для шифрованной связи с сервером asterisk.
Для памяти запишу что делал, может еще кому время сэкономит.
1. Делаем сертификаты на asterisk как описано на http://icluzo.livejournal.com/2630.html :
ищем папку скриптов, у меня например тут /usr/share/doc/asterisk-11.13.0/contrib/scripts
переходим в нее командой
cd /usr/share/doc/asterisk-11.13.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 адрес машины на которой установлен телефон
(у меня клиентская машина с динамическим IP поэтому я вообще не писал -C yyy.yyy.yyy.yyy )
В результате в директории 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 2.4 поэтому настойки для TLS SRTP взял тоже из http://icluzo.livejournal.com/2630.html
в файл sip_general_custom.conf
добавить
tlsenable=yes
tlsbindaddr=0.0.0.0
tlscertfile=/etc/asterisk/keys/asterisk.pem
tlscafile=/etc/asterisk/keys/ca.crt
tlscipher=ALL
tlsclientmethod=tlsv1
в файл sip_custom_post.conf  добавить
[3210](+)
transport = tls
encryption=yes
где 3210 внутренний номер клиента asterisk/elastix, их может быть много
Переходим в директорию keys
cd /etc/asterisk/keys
выполняем команду
chmod  777 *
Теперь настроим телефон grandstream gxp1160 на TLS и SRTP
Заходим на его IP браузером, пароль по умолчанию admin
Далее настраиваем на обычную нешифрованную связь прописав адрес сервера логин пароль и переходим к настройке шифрования:
Прописываем клиентский сертификат в Maintenance - Security
где в SIP TLS Certificate копируем из client.pem часть
-----BEGIN CERTIFICATE-----
MIIDRDCCASwCAQEwDQYJKoZIhvcNAQEFBQAwLzEcMBoGA1UEAxMTQXN0ZXJpc2sg
UHJpdmF0ZSBDQTEPMA0GA1UEChMGY2liYW5rMB4XDTE1MDExMjE3MjEyNVoXDTE2
и так далее до конца включая
-----END CERTIFICATE-----
а в поле SIP TLS Private Key копируем из client.pem часть
-----BEGIN RSA PRIVATE KEY-----
MIICWwIBAAKBgQCjNnH5ddImRRu933fdYMTd+XDUTO2Wj8h+TbqJmBVwf7qO6bN2
nxwwGqRyn6lHGVyYzbZYxERy2ngkT39i1LY/4ZY+ggMnZ/dvBxoW3qRqsoA5a2Fi
и так далее до конца включая
-----END RSA PRIVATE KEY-----
поле SIP TLS Private Key Password оставим пустым так как у клиентского сертификата пароля нет
Далее в Accounts-Account 1- Network settings ставим в NAT Traversal - STUN даже если nat нет
(иначе у меня лезла огибка в логе про sslv3 alert handshake failure)
в Sip settings-basic settings
SIP Transport = TLS/TCP
в Audio settings
SRTP Mode = Enabled and Forced
(чтобы всегда шла шифрованная связь с астериском)
Crypto Life Time = No
иначе лезли ошибки при звонке:
[2015-01-13 10:53:37] NOTICE[30867][C-00000056]: sip/sdp_crypto.c:255 sdp_crypto_process: Crypto life time unsupported: crypto:1 AES_CM_128_HMAC_SHA1_80 inline:RzJPlBa7h9BucAwa4sOjzuwNnbsO3H/BuUn5qdCd|2^32
[2015-01-13 10:53:37] NOTICE[30867][C-00000056]: sip/sdp_crypto.c:265 sdp_crypto_process: SRTP crypto offer not acceptable
[2015-01-13 10:53:37] NOTICE[30867][C-00000056]: sip/sdp_crypto.c:255 sdp_crypto_process: Crypto life time unsupported: crypto:2 AES_CM_128_HMAC_SHA1_32 inline:txfQBqvmwTO2L6PCSoWF7VNy+vAtCMysyYX1wi7F|2^32
[2015-01-13 10:53:37] NOTICE[30867][C-00000056]: sip/sdp_crypto.c:265 sdp_crypto_process: SRTP crypto offer not acceptable
[2015-01-13 10:53:37] WARNING[30867][C-00000056]: chan_sip.c:10384 process_sdp: Rejecting secure audio stream without encryption details: audio 5004 RTP/SAVP 0 8 4 18 9 97 2 101
Вроде все, теперь во время разговора на экране телефона справа снизу должен быть значек шифрованной связи.
Для проверки TLS SRTP с одной стороны ставил grandstream gxp1160 , а с другой софтфон Blink.

sip, grandstream, tls, srtp, gxp1160

Previous post Next post
Up