Денис Здесенко
23.04.2020
1123

SipSak. Обзор, установка, использование.

В повседневной работе VoIP инженеру требуется обширное количество инструментов для диагностики неисправностей, будь то софтфоны или прикладные утилиты для работы с sip-трафиком, различные снифферы и прочее. В данной статье речь пойдет об утилите SipSak, провозглашенной сообществом как швейцарский нож SIP’a. Обзор                     Итак, что же такое sipsak и почему его так прикольно называет комьюнити? Все очень […]

В повседневной работе VoIP инженеру требуется обширное количество инструментов для диагностики неисправностей, будь то софтфоны или прикладные утилиты для работы с sip-трафиком, различные снифферы и прочее. В данной статье речь пойдет об утилите SipSak, провозглашенной сообществом как швейцарский нож SIP’a.

Обзор                    

Итак, что же такое sipsak и почему его так прикольно называет комьюнити? Все очень просто это аббревиатура названия SIP swiss army knife. Sipsak – это утилита командной строки с открытым кодом, предназначенная для стресс-тестирования и диагностики SIP. Основная функция утилиты – отправка сиповых запросов на сервер и анализ полученных ответов.

Основные фишки и что эта утилита умеет:

  • Может отправлять запрос OPTIONS
  • может отправлять текстовые файлы (которые должны содержать запросы SIP)
  • traceroute
  • тест местоположения пользователя
  • флуд-тест
  • тест парсер-атак
  • может распознавать ответ сервера и реагировать на него
  • аутентификация с поддержкой qop (MD5 и SHA1)
  • поддерживается короткая запись для приема (не для отправки)
  • неограниченные замены строк в файлах и запросах
  • добавлять любой заголовок к запросам
  • может симулировать звонки в режиме usrloc
  • использует симметричную сигнализацию и поэтому должен работать за NAT
  • может отправлять сообщения в любой пункт назначения SIP
  • поддерживает Nagios-совместимые коды возврата
  • поиск строк в ответе с помощью регулярных выражений
  • может использовать несколько процессов для увеличения нагрузки на сервер
  • может читать SIP-сообщение из STDIN
  • поддерживает DNS SRV через c-ares или libruli
  • поддерживает транспорт UDP и TCP

Установка

Устанавливается утилита довольно просто. Первым делом необходимо (если это еще не сделано) добавить Epel-репозиторий в свой CentOS командой:

# yum install -y epel-release

Установка репозитория
Установка репозитория

После этого, с помощью того же менеджера пакетов yum устанавливаем саму утилиту sipsak:

# yum install -y sipsak

Установка утилиты
Установка утилиты

Все, установка выполнена. Подробную справку по использованию как в обычном режиме, так и в дополненных, можно увидеть, выполнив команду:

# sipsak -help

Справочная страница sipsak. Информация по режимам
Справочная страница sipsak. Информация по режимам
Справочная страница sipsak. Информация по опциям
Справочная страница sipsak. Информация по опциям

Стоит отметить, что в дистрибутив, распространяемый компанией voxlink, это чудо вшито по умолчанию и активно используется инженерами во время работы наравне с тем же самым sngrep.

Использование

Интересной особенностью является то, что sipsak способен работать в нескольких режимах. Пара слов о каждом из них:

  1. Обычный режим (default mode). SIP-сообщение отправляется адресату в sip-uri с отображением статуса ответа. Запрос берется либо из файла, либо генерируется как новое сообщение OPTION.
  2. Режим трассировки (traceroute mode). Работа в режиме отслеживания пути запросов, аналогично утилите traceroute для IP-уровня. Включается ключом «-T».
  3. Режим отправки сообщений (message mode). Тут в принципе все понятно, в этом режиме утилита отправляет короткие сообщения указанному (target) адресату. С помощью ключа «-B» можно задать содержание сообщения. Включается ключом «-M».
  4. Режим стресс-тестирования (usrloc mode). В этом режиме утилита регистрируется на сервере в огромном темпе. Дополнительно можно повысить нагрузку с помощью опций «-I» и «-M». Включается ключом «-U».
  5. Режим парсерных атак (randtrash mode). Sipsak продолжает отправлять случайно-поврежденные сообщения, чтобы «пытать» парсер SIP-сервера. Включается ключом «-R».
  6. Режим флудилки (flood mode). Засыпает SIP-сервер запросами с высокой скоростью. Включается ключом «-F».

В качестве примера можно разобрать пару-тройку функций. В первую очередб попробуем отправить OPTIONS и получить ответ. Делаем это следующим образом:

# sipsak -vv -s sip:101@192.168.32.79

В данном случае мы отправляем запрос OPTIONS пользователю 101 зарегистрированному на локальном сервере телефонии с ip 192.168.32.79. Результатом действия стал ответ от пользователя SIP-сообщением 200 OK.

Вывод команды sipsak -vv -s sip:101@192.168.32.79
Вывод команды sipsak -vv -s sip:101@192.168.32.79
Сообщение в sngrep
Сообщение в sngrep
Сообщение в sngrep с ответом
Сообщение в sngrep с ответом

Теперь попробуем отправить регистрацию из утилиты для номера 201. Сделать мы можем это из режима стресс-тестирования. Команда будет выглядеть вот так:

# sipsak -vv -U -C sip:201@192.168.32.79 -x 201 -s sip:201@192.168.32.79 -a testpass2

А теперь разберем ее. Ключом -U запускаем в режиме usrloc и передаем в качестве параметров по порядку: SIP-URI (sip:201@192.168.32.79), экстеншен (201), снова SIP-URI но уже с опцией -s, и пароль. Вот такой получаем результат:

Вывод команды sipsak -vv -U -C sip:201@192.168.32.79 -x 201 -s sip:201@192.168.32.79 -a testpass2
Вывод команды sipsak -vv -U -C sip:201@192.168.32.79 -x 201 -s sip:201@192.168.32.79 -a testpass2
Сообщение в sngrep
Сообщение в sngrep
Сообщение в sngrep с ответом
Сообщение в sngrep с ответом

Еще, в качестве эксперимента, я хотел бы немного зафлудить свой сервер, чем сейчас и займусь, используя в процессе sipsak. Сделать это я могу с помощью вот такой команды:

# sipsak -vv -F -e 100 -s sip:201@192.168.32.79

Этой командой мы запускаем утилиту в режиме флуда и отправляем 100 запросов на сервер с SIP-URI 201@192.168.32.79. Результат выглядит таким образом:

sipsak -vv -F -e 100 -s sip:201@192.168.32.79
sipsak -vv -F -e 100 -s sip:201@192.168.32.79
Сообщение в sngrep
Сообщение в sngrep
Сообщение в sngrep с ответом
Сообщение в sngrep с ответом

На этом эксперименты и ознакомление с этим замечательным инструментом можно заканчивать. Для более подробного ознакомления с функционалом можно почитать довольно подробный официальный мануал, который к сожалению на английском языке, но это не должно, на мой взгляд, стать проблемой, потому что справочной страницы самой утилиты более чем достаточно для начала использования.

Подписаться
Уведомление о
guest
0 Комментарий
Inline Feedbacks
View all comments

Остались вопросы?

Я - Виталий Шелест, менеджер компании Voxlink. Хотите уточнить детали или готовы оставить заявку? Укажите номер телефона, я перезвоню в течение 3-х секунд.

VoIP оборудование

ближайшие курсы

ближайшие Вебинары

ONLINE

10 доводов в пользу Asterisk

Распространяется бесплатно.

Asterisk – программное обеспечение с открытым исходным кодом, распространяется по лицензии GPL. Следовательно, установив один раз Asterisk вам не придется дополнительно платить за новых абонентов, подключение новых транков, расширение функционала и прочие лицензии. Это приближает стоимость владения станцией к нулю.

Безопасен в использовании.

Любое программное обеспечение может стать объектом интереса злоумышленников, в том числе телефонная станция. Однако, сам Asterisk, а также операционная система, на которой он работает, дают множество инструментов защиты от любых атак. При грамотной настройке безопасности у злоумышленников нет никаких шансов попасть на станцию.

Надежен в эксплуатации.

Время работы серверов некоторых наших клиентов исчисляется годами. Это значит, что Asterisk работает несколько лет, ему не требуются никакие перезагрузки или принудительные отключения. А еще это говорит о том, что в районе отличная ситуация с электроэнергией, но это уже не заслуга Asterisk.

Гибкий в настройке.

Зачастую возможности Asterisk ограничивает только фантазия пользователя. Ни один конструктор шаблонов не сравнится с Asterisk по гибкости настройки. Это позволяет решать с помощью Asterisk любые бизнес задачи, даже те, в которых выбор в его пользу не кажется изначально очевидным.

Имеет огромный функционал.

Во многом именно Asterisk показал какой должна быть современная телефонная станция. За многие годы развития функциональность Asterisk расширилась, а все основные возможности по-прежнему доступны бесплатно сразу после установки.

Интегрируется с любыми системами.

То, что Asterisk не умеет сам, он позволяет реализовать за счет интеграции. Это могут быть интеграции с коммерческими телефонными станциями, CRM, ERP системами, биллингом, сервисами колл-трекинга, колл-бэка и модулями статистики и аналитики.

Позволяет телефонизировать офис за считанные часы.

В нашей практике были проекты, реализованные за один рабочий день. Это значит, что утром к нам обращался клиент, а уже через несколько часов он пользовался новой IP-АТС. Безусловно, такая скорость редкость, ведь АТС – инструмент зарабатывания денег для многих компаний и спешка во внедрении не уместна. Но в случае острой необходимости Asterisk готов к быстрому старту.

Отличная масштабируемость.

Очень утомительно постоянно возвращаться к одному и тому же вопросу. Такое часто бывает в случае некачественного исполнения работ или выбора заведомо неподходящего бизнес-решения. С Asterisk точно не будет такой проблемы! Телефонная станция, построенная на Asterisk может быть масштабируема до немыслимых размеров. Главное – правильно подобрать оборудование.

Повышает управляемость бизнеса.

Asterisk дает не просто набор полезных функций, он повышает управляемость организации, качества и комфортности управления, а также увеличивает прозрачность бизнеса для руководства. Достичь этого можно, например, за счет автоматизации отчетов, подключения бота в Telegram, санкционированного доступа к станции из любой точки мира.

Снижает расходы на связь.

Связь между внутренними абонентами IP-АТС бесплатна всегда, независимо от их географического расположения. Также к Asterisk можно подключить любых операторов телефонии, в том числе GSM сим-карты и настроить маршрутизацию вызовов по наиболее выгодному тарифу. Всё это позволяет экономить с первых минут пользования станцией.