FreeSBC: SIP/WebRTC прокси для защиты FreeSWITCH и Asterisk
FreeSBC — это SIP/WebRTC прокси, написанный на Go, который защищает FreeSWITCH или Asterisk от доступа из интернета. Он позволяет разместить систему на частной сети, в то время как сам FreeSBC будет единственной точкой входа с публичным адресом.
Проект выделяется тем, что представляет собой единый статический бинарник без необходимости в базе данных или дополнительных процессах. Запуск очень простой: достаточно одного YAML конфигурационного файла и команды ./freesbc run. FreeSBC обеспечивает поддержку различных протоколов, включая SIP и WebRTC, а также встроенные функции безопасности, такие как ограничение скорости запросов и управление доступом к ресурсу.
Запустить FreeSBC можно на Linux или macOS (amd64 или arm64), следуя простым шагам в README. Учти, что проект находится в активной стадии разработки, поэтому стоит быть готовым к изменениями и возможным багам.
Обзор проекта
FreeSBC — это open-source SIP/WebRTC прокси-сервер, который предоставляет безопасный доступ к телефонным системам (таким как FreeSWITCH и Asterisk) из интернета. Он упрощает настройку, так как использует только один бинарный файл и один YAML конфигурационный файл для запуска. FreeSBC позволяет обрабатывать SIP-звонки и WebRTC через одно публичное IP-адрес и хорошо подходит для защиты частной сети от прямого доступа из интернета.
Установка
Установить FreeSBC можно с помощью простого скрипта, который загружает последнюю версию и устанавливает её на системе:
curl -fsSL https://github.com/rasonyang/freesbc/releases/latest/download/install.sh | sh
Скрипт работает на Linux и macOS с архитектурами amd64 и arm64. После установки пользователю нужно будет настроить конфигурационный файл и запустить сервис с помощью следующих команд:
freesbc init -c freesbc.yaml # создаёт конфигурацию
freesbc check -c freesbc.yaml # проверяет конфигурацию
freesbc run -c freesbc.yaml # запускает сервер
Основные возможности
- Поддержка SIP через UDP, TCP и TLS, а также WebRTC через WS/WSS.
- Защита частной сети: FreeSBC является единственным элементом с публичным IP, остальные элементы остаются в частной сети.
- Интегрированная Web-интерфейс (WebUI), REST API и поддержка метрик для Prometheus.
- Продвинутые функции безопасности: ограничения по IP, блокировка по подозрительной активности и запрет ненадёжных источников.
Производительность
FreeSBC способен обрабатывать до 5000 одновременных звонков и демонстрирует эффективное использование ресурсов (например, 80% загрузки CPU на виртуальной машине с 4 vCPU). Он также способен удерживать до 19,000 регистраций одновременно и обеспечивает низкую задержку передачи.
Ограничения
FreeSBC не выполняет некоторые функции, такие как транскодирование, работа в роли B2BUA или регистратора. Он также не поддерживает кластеризацию, что может быть важно для проектов с высокими требованиями к отказоустойчивости. В случае использования в рамках отказоустойчивой архитектуры рекомендуется развертывать несколько независимых узлов.
Документация и поддержка
Проект обладает обширной документацией, включая инструкции по установке, описания конфигурации и управления, а также рекомендации по производительности и устранению проблем. Если у тебя есть вопросы или ты столкнулся с проблемами, документация предоставляет решения и объяснения.
Открыть на GitHub: rasonyang/freesbc →
RepoRadar