Шифрование трафика
Цель лабораторной работы - зашифровать трафик между клиентом и Asterisk с использованием протокола TLS.
Настройка шифрования на Asterisk 13
- Создайте директорию для хранения сертификатов
mkdir /etc/asterisk/certs
- Сгенерируйте пару сертификатов и объедините их в один файл
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
- В глобальных настойках разрешите tls и внесите изменения в конфигурацию канала клиента:
[general]
...
tlsenable=yes
tlscertfile=/etc/asterisk/certs/asterisk.crt
tlscipher=ALL
tlsclientmethod=tlsv1
tlsdontverifyserver=no
[102]
...
transport=tls
encryption=yes
- Перечитайте конфиг и зарегистрируйте софтфон под учетной записью 102 с поддержкой tls. В настройках включите обязательное шифрование медиа-потока SRTP.
- Проверьте прохождение звонка.
Настройка шифрования на Asterisk 20
- Создайте директорию для хранения сертификатов
mkdir /etc/asterisk/certs
- В архиве с исходным кодом найдите скрипт для генерации сертификатов ast_tls_cert
cd asterisk-20*/contrib/scripts/
- Сгенерируйте сертификаты сервера и CA
./ast_tls_cert -d /etc/asterisk/certs
- Внесите изменения в 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
-
(Опционально - не все клиенты поддерживают идентификацию по сертификатам) Сгенерируйте сертификат клиента
./ast_tls_cert -m client -c /etc/asterisk/certs/ca.crt -k /etc/asterisk/certs/ca.key -d /etc/asterisk/certs -o 202
-
(Опционально - не все клиенты поддерживают идентификацию по сертификатам) Включите требование клиенту предоставить сертификат в pjsip.conf:
;require_client_cert=yes ;verify_client=yes ;verify_server=yes ;ca_list_file=/etc/asterisk/certs/ca.crt
-
(Опционально - не все клиенты поддерживают идентификацию по сертификатам) Скопируйте сертификат клиента на машину с софтфоном и зарегистрируйте его под учеткой 202. В настройках укажите файл сертификата и включите согласование ключа SDES.