Назначение
Производительность, надёжность и безопасность — ключевые приоритеты при организации 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.
Профили безопасности
Минимальными рекомендованными настройками безопасности являются:
- фильтрация SIP-флуда;
- блокировка по AOR/User-Agent;
- объединение ошибок по IP-адресу;
- защита от SIP-spoofing атак.
Fail2ban
Для защиты от атак методом перебора реализован модуль fail2ban. Модуль занимается анализом возникающих ошибок для дальнейшей блокировки источников "подозрительного SIP-трафика". При возникновении ошибки в модуль отправляется информация о типе
ошибки и об источнике. При накоплении достаточного количества ошибок источник помещается в черный список и блокируется. Виды анализируемых ошибок:
- ошибка регистрации;
- ошибка вызова;
- ошибка подписки;
- флуд SIP-пакетов;
- некорректный SIP-пакет;
- срабатывание флуд-фильтра;
- получение пакета вне транка/абонентского интерфейса.
Лимит количества ошибок, при котором сработает блокировка, зависит от нескольких факторов:
- вес ошибки;
- интервал времени между ошибками;
- количество ошибок одного вида;
- количество AOR, которые использовались в SIP-сообщениях с одного IP-адреса;
- количество IP-адресов, которые присылали SIP-сообщения с одним AOR.
Фильтрация SIP-флуда
ESBC поддерживает создание флуд-фильтров для механизма конфигурируемой защиты от SIP-flood, а также для фильтрации клиентских приложений. Фильтр применяется ко всему SIP-сообщению (включая тело — SDP, XML и т. д.).
Флуд-фильтр просматривает SIP-сообщения на наличие заданных строк. В случае нахождения сообщение определяется как флуд и отбрасывается. Уведомление о срабатывании фильтра отправляется модулю fail2ban, который при накоплении достаточного количества ошибок блокирует источник.
Защита от SIP-spoofing атак
Опция проверки 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, примененная конфигурация устройств будет отменена. Данный механизм позволяет не потерять доступ к устройству в процессе конфигурирования.
Примеры настройки
Настройка ESBC для SIP-транков
Для подключения Softswitch к другим внешним IP АТС, например к провайдеру телефонии по протоколу SIP, необходима организация SIP-транков между Softswitch и внешней IP АТС. А также необходима защита данного подключения с помощью ESBC, настроенного следующим образом:
- Настроить сетевые интерфейсы на ESBC в сторону Softswitch и в сторону внешней IP АТС.
- Создать SIP-транспорт в сторону Softswitch и внешней IP АТС.
- Создать медиаресурсы для обоих направлений, назначить им диапазон портов для передачи голоса.
- Создать два SIP-trunk в сторону Softswitch и в сторону внешней IP АТС.
- Создать правила, по которым будут маршрутизироваться вызовы от внешней IP АТС до Softswitch и наоборот от Softswitch до внешней IP АТС.
Настройка подобного подключения описана в документации (в рамках документации в качестве внешней IP АТС рассматривается транковый шлюз).
Настройка ESBC для SIP-абонентов
Подключение внешних абонентов, например удаленных пользователей, в целях безопасности необходимо производить через пограничный контроллер сессий. Например, через ESBC, настроенный следующим образом:
- Настроить сетевые интерфейсы на ESBC в сторону Softswitch и в сторону SIP-абонентов.
- Создать SIP-транспорт в сторону Softswitch и SIP-абонентов.
- Создать медиаресурсы для обоих направлений, назначить им диапазон портов для передачи голоса.
- Создать SIP-Users и SIP-trunk.
- Создать правила, по которым будут маршрутизироваться вызовы от абонентов до Softswitch.
Настройка подобного подключения описана в документации.
