Использование TLS/SRTP для шифрования

В предыдущей теме мы разобрали, как защитить периметр АТС с помощью Fail2Ban и файрвола. Это критически важный слой обороны, который отсекает злоумышленников на подступах. Однако, как только звонок покидает пределы защищенного сервера и уходит в публичную сеть, данные становятся уязвимыми для перехвата.

В 2026 году безопасность корпоративной связи — это стандарт. Мы переходим к защите содержимого разговоров и сигнального трафика, чтобы исключить прослушивание или подмену данных.

Почему открытый SIP — это риск

Стандартный SIP через UDP передает данные в открытом виде. Кто звонит, куда и даже пароли (в некоторых сценариях) может прочитать любой узел между телефоном и сервером.

С голосом ситуация еще хуже. Обычный RTP передает аудиоданные без шифрования. Злоумышленник может собрать эти пакеты в аудиофайл и прослушать ваш разговор с помощью простых утилит вроде Wireshark.

Для решения этих проблем мы используем связку из двух технологий:

  1. TLS (Transport Layer Security) — обеспечивает шифрование сигнализации. Создает защищенный туннель для SIP-пакетов.
  2. SRTP (Secure Real-time Transport Protocol) — обеспечивает шифрование медиа (голоса и видео).

Как показано на Схеме 1, эти протоколы работают на разных уровнях, но обеспечивают комплексную защиту сессии.

Работа с сертификатами

TLS не работает без сертификатов. В Asterisk мы используем инфраструктуру открытых ключей (PKI). Чтобы устройство «поверило» серверу, сервер предъявляет сертификат, подписанный доверенным центром (CA).

В 2026 году актуальны три пути:

  • Let's Encrypt: Автоматический и бесплатный стандарт для систем с доменным именем.
  • Корпоративный PKI: Если в компании есть свой удостоверяющий центр.
  • Self-Signed (Самоподписанные): Подходят только для тестов. В продакшене они неудобны: телефоны им не доверяют, и вам придется вручную добавлять исключения на каждом аппарате.

Во FreePBX сертификатами управляет модуль Certificate Manager. Выпустите сертификат и назначьте его основным (Default).

Настройка TLS в PJSIP

Мы настраиваем шифрование для драйвера PJSIP. В отличие от старого chan_sip, PJSIP позволяет гибко управлять транспортами.

Сначала создаем TLS-транспорт. В логике pjsip.conf (или через GUI в Asterisk SIP Settings) это выглядит как создание слушателя на TCP-порту 5061.

[transport-tls]
type=transport
protocol=tls
bind=0.0.0.0:5061
cert_file=/etc/asterisk/keys/asterisk.pem
priv_key_file=/etc/asterisk/keys/asterisk.key
method=tlsv1_3  ; Используем только актуальную версию протокола

🛡 Важно: Откройте порт TCP 5061 в файрволе. В отличие от обычного SIP, TLS работает только поверх TCP.

Шифрование медиапотока (SRTP)

После защиты «сигнальной трубки» через TLS нужно зашифровать сам голос — SRTP.

Ключи для шифрования голоса передаются внутри SIP-сообщений. Поэтому SRTP бессмыслен без TLS. Если оставить SIP открытым, злоумышленник перехватит ключи из SIP-пакета и расшифрует голос.

Во FreePBX для каждого Extension укажите:

  1. Media Encryption: SRTP via DTLS или SRTP via SDES.
  2. Transport: Выберите TLS-транспорт для этого аппарата.

Диагностика и проверка

Профессиональный администратор проверяет статус не по иконке на телефоне, а в консоли Asterisk.

Проверьте статус эндпоинта:

asterisk -rx "pjsip show endpoint 101" | grep encryption

Для проверки активного звонка:

asterisk -rx "pjsip show channel 101-0000000a"

Ищите строку Crypto Suite (например, AES_CM_128_HMAC_SHA1_80). Если она есть — голос зашифрован.

Совет: Если телефон не регистрируется по TLS, проверьте дату и время на аппарате. Если время сбито, телефон посчитает сертификат сервера недействительным и разорвет соединение.

Типичные ошибки

СитуацияПоследствие
Выключена проверка сертификата (verify_server=no)Уязвимость к атакам Man-in-the-middle.
Не импортирован корневой сертификат (CA) на телефонТелефон отклонит соединение с сервером.
Использование TLS 1.0 или 1.1Современные устройства заблокируют соединение из-за уязвимостей протоколов.

Мы защитили данные, объединив файрвол и шифрование трафика. Теперь ваша АТС — крепость.

Далее мы переходим к автоматизации. Вы узнаете, как управлять Asterisk программно, минуя GUI и файлы. В следующей теме мы изучим AMI — интерфейс, который позволяет отслеживать каждое событие в системе в реальном времени 📡

Понравился урок?

Сохраните прогресс и получите персональный курс по любой теме — без форм и паролей

Продолжить в Telegram