FreeSBC: SIP/WebRTC прокси для защиты FreeSWITCH и Asterisk

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 →

Что нового на GitHub — короткие обзоры на русском Новые обзоры приходят в Telegram. Без спама, по делу.
Подписаться

Похожие статьи

Популярные темы на сайте