Использование TLS/SRTP для шифрования
В предыдущей теме мы разобрали, как защитить периметр АТС с помощью Fail2Ban и файрвола. Это критически важный слой обороны, который отсекает злоумышленников на подступах. Однако, как только звонок покидает пределы защищенного сервера и уходит в публичную сеть, данные становятся уязвимыми для перехвата.
В 2026 году безопасность корпоративной связи — это стандарт. Мы переходим к защите содержимого разговоров и сигнального трафика, чтобы исключить прослушивание или подмену данных.
Почему открытый SIP — это риск
Стандартный SIP через UDP передает данные в открытом виде. Кто звонит, куда и даже пароли (в некоторых сценариях) может прочитать любой узел между телефоном и сервером.
С голосом ситуация еще хуже. Обычный RTP передает аудиоданные без шифрования. Злоумышленник может собрать эти пакеты в аудиофайл и прослушать ваш разговор с помощью простых утилит вроде Wireshark.
Для решения этих проблем мы используем связку из двух технологий:
- TLS (Transport Layer Security) — обеспечивает шифрование сигнализации. Создает защищенный туннель для SIP-пакетов.
- 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 укажите:
- Media Encryption:
SRTP via DTLSилиSRTP via SDES. - 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