Производительность, надёжность и безопасность — ключевые приоритеты при организации VoIP-телефонии в корпоративной сети. Необходимо обеспечить не только совместимость оборудования на всех уровнях и его отлаженную работу, но и защиту от различных атак.
Игнорирование последнего приводит к взлому VoIP-сети злоумышленниками.
Пограничный контроллер сессий поможет избежать этих проблем. Он используется для сокрытия топологии VoIP-сети, защиты от несанкционированного доступа, а также управления трафиком.
Пограничный контроллер сессий (SBC) предназначен для решения задач сопряжения разнородных VoIP-сетей, обеспечивая совместную работу терминалов с различными протоколами сигнализации и наборами используемых кодеков. За счет функциональности Firewall, NAT и проксирования сигнального и медиатрафика он защищает корпоративную сеть от атак и скрывает ее внутреннюю структуру. Контроллер позволяет согласовать сигнальные и медиа протоколы, при необходимости производя транскодирование. Обеспечивает маршрутизацию, приоритезацию и балансировку трафика. SBC всегда устанавливается на границе корпоративной или операторской VoIP-сети и выполняет те функции, которые нецелесообразно возлагать на устройства оператора (например, гибкий коммутатор Softswitch).
В линейке продуктов Eltex пограничные контроллеры сессий представлены устройствами SBC-3000, ESBC-3200 и программной реализацией vESBC. Производительности устройства SBC-3000 может оказаться недостаточно для пограничного контроллера между большими телефонными сетями. Дальнейшее описание приводится для enterprise-решения ESBC-3200. В случае отказа от резервирования 1+1 также может быть использовано программное решение vESBC. Ниже в документе оба решения представлены как ESBC.

Пограничный контроллер сессий ESBC включается между защищаемой и внешней сетями. В случае, если между защищаемой и внешней сетями используется трансляция сетевых адресов (NAT), то внешний интерфейс должен иметь IP-адрес, доступный из внешней сети без трансляции. Например, при подключении к сети Интернет на внешнем интерфейсе должен быть публичный (белый) IP-адрес.
Управление ESBC целесообразно осуществлять только через выделенный интерфейс OOB, подключенный к выделенной сети управления. Протоколы управления (Telnet, SSH, HTTP, HTTPS) должны быть отключены на остальных интерфейсах. Протокол Telnet также рекомендуется отключить даже на интерфейсе OOB ввиду его небезопасности.
Управлять устройством ESBC-3200 можно через консольный порт. Но из-за ограниченности по скорости и длины управляющей линии использовать консольный порт целесообразно только при отсутствии или нарушении доступа к устройству по сети.
ESBC работает по принципу B2BUA (Back to Back User Agent). Все проходящие через ESBC соединения разбиваются на два плеча (соединения). Таким образом, в рамках соединения сторона А и сторона Б общаются с ESBC, а не друг с другом. Это позволяет как угодно подробно разобрать, отфильтровать и модифицировать трафик на ESBC.
Минимальными рекомендованными настройками безопасности являются:
Для защиты от атак методом перебора реализован модуль fail2ban. Модуль занимается анализом возникающих ошибок для дальнейшей блокировки источников "подозрительного SIP-трафика". При возникновении ошибки в модуль отправляется информация о типе ошибки и об источнике. При накоплении достаточного количества ошибок источник помещается в черный список и блокируется. Виды анализируемых ошибок:
Лимит количества ошибок, при котором сработает блокировка, зависит от нескольких факторов:
ESBC поддерживает создание флуд-фильтров для механизма конфигурируемой защиты от SIP-flood, а также для фильтрации клиентских приложений. Фильтр применяется ко всему SIP-сообщению (включая тело — SDP, XML и т. д.).
Флуд-фильтр просматривает SIP-сообщения на наличие заданных строк. В случае нахождения сообщение определяется как флуд и отбрасывается. Уведомление о срабатывании фильтра отправляется модулю fail2ban, который при накоплении достаточного количества ошибок блокирует источник.
Опция проверки IP-адреса источника SIP-сообщения позволяет защититься от SIP-spoofing атак. IP-адрес и порт, с которого поступает SIP-сообщение от абонента, сравнивается с IP-адресом и портом, с которого ранее регистрировался этот абонент. Если абонент неизвестен или запрос пришёл с неизвестного направления, то запрос игнорируется, а в модуль fail2ban отправляется оповещение.
При организации связи через недоверенные сети, такие как сеть Интернет, бывает целесообразно скрыть и защитить от подмены содержимое телефонных переговоров. В этом случае поможет функция шифрования сигнального и медиа трафика.
Для шифрования медиатрафика применяется протокол SRTP (Secure Real-time Transport Protocol) — это расширенная версия протокола RTP с набором защитных механизмов. Протокол описан в RFC 3711. Для обмена ключами шифрования доступны два метода: DTLS-SRTP (RFC 5763) и SDES (RFC 4568).
Для шифрования сигнального трафика можно использовать протоколы TLS или WebSocket Secure (WSS) в качестве SIP-транспорта.
По умолчанию для работы протоколов TLS, WSS и DTLS-SRTP используются сертификаты автоматически сгенерированные самим ESBC, дополнительных настроек для их использования не требуется. Имеется возможность сгенерировать новые сертификаты на ESBC или загрузить и использовать сертификаты и ключи из внешнего хранилища.
Шифровать можно как транковые соединения с внешними АТС, так и абонентские подключения. Оборудование и ПО второй стороны должно поддерживать данный функционал.
В данный момент конфигурирование ESBC осуществляется через CLI (Command Line Interface, командная строка).
Любые изменения, внесенные в конфигурацию, вступят в действие не сразу, а только после применения команды commit. После выполнения данной команды запускается таймер «отката» конфигурации. Если до истечения таймера не будет выполнена команда confirm, примененная конфигурация устройств будет отменена. Данный механизм позволяет не потерять доступ к устройству в процессе конфигурирования.
Для подключения Softswitch к другим внешним IP АТС, например к провайдеру телефонии по протоколу SIP, необходима организация SIP-транков между Softswitch и внешней IP АТС. А также необходима защита данного подключения с помощью ESBC, настроенного следующим образом:
Настройка подобного подключения описана в документации (в рамках документации в качестве внешней IP АТС рассматривается транковый шлюз).
Подключение внешних абонентов, например удаленных пользователей, в целях безопасности необходимо производить через пограничный контроллер сессий. Например, через ESBC, настроенный следующим образом:
Настройка подобного подключения описана в документации.