ЛР 2.5 - шифрование трафика

Цель лабораторной работы - зашифровать трафик между клиентом и Asterisk с использованием протокола TLS.

Настройка шифрования на Asterisk 13

  1. Создайте директорию для хранения сертификатов
    mkdir /etc/asterisk/certs
  2. Сгенерируйте пару сертификатов и объедините их в один файл
openssl req -x509 -nodes -newkey rsa:2048 -days 3650 -keyout /etc/asterisk/certs/asterisk.key  -out /etc/asterisk/certs/asterisk.crt
cat /etc/asterisk/certs/asterisk.key >> /etc/asterisk/certs/asterisk.crt
  1. В глобальных настойках разрешите tls и внесите изменения в конфигурацию канала клиента:
[general]
...
tlsenable=yes
tlscertfile=/etc/asterisk/certs/asterisk.crt
tlscipher=ALL
tlsclientmethod=tlsv1
tlsdontverifyserver=no

[102]
...
transport=tls
encryption=yes
  1. Перечитайте конфиг и зарегистрируйте софтфон под учетной записью 102 с поддержкой tls. В настройках включите обязательное шифрование медиа-потока SRTP.
  2. Проверьте прохождение звонка.

Настройка шифрования на Asterisk 20

  1. Создайте директорию для хранения сертификатов
    mkdir /etc/asterisk/certs
  2. В архиве с исходным кодом найдите скрипт для генерации сертификатов ast_tls_cert
    cd asterisk-20*/contrib/scripts/
  3. Сгенерируйте сертификаты сервера и CA
    ./ast_tls_cert -d /etc/asterisk/certs
  4. Внесите изменения в pjsip.conf:
[transport-tls]
type = transport
protocol = tls
method=tlsv1
cert_file=/etc/asterisk/certs/asterisk.crt
priv_key_file=/etc/asterisk/certs/asterisk.key
;ca_list_path=/etc/asterisk/certs/
bind=0.0.0.0:5061
...
[local-phones-endpoint](!)
...
transport=transport-tls
media_encryption=sdes
  1. (Опционально - не все клиенты поддерживают идентификацию по сертификатам) Сгенерируйте сертификат клиента
    ./ast_tls_cert -m client -c /etc/asterisk/certs/ca.crt -k /etc/asterisk/certs/ca.key -d /etc/asterisk/certs -o 202

  2. (Опционально - не все клиенты поддерживают идентификацию по сертификатам) Включите требование клиенту предоставить сертификат в pjsip.conf:

    ;require_client_cert=yes
    ;verify_client=yes
    ;verify_server=yes
    ;ca_list_file=/etc/asterisk/certs/ca.crt
  3. (Опционально - не все клиенты поддерживают идентификацию по сертификатам) Скопируйте сертификат клиента на машину с софтфоном и зарегистрируйте его под учеткой 202. В настройках укажите файл сертификата и включите согласование ключа SDES.