Sngrep, который поможет вам анализировать SIP-трафик в режиме реального времени. Sngrep будет незаменимым помощником VoIP инженеров для диагностики VoIP-трафика.

Особенности sngrep:

  • Захват SIP трафика и чтение PCAP файлов
  • Поддержка UDP, TCP и TLS (частично)
  • Сохранение перехваченных пакетов в PCAP файл

Установка
Добавляем репозитории sngrep:

sudo mcedit /etc/apt/sources.list 

в конец списка добавляем строки:
deb http://packages.irontec.com/ubuntu trusty main
deb http://packages.irontec.com/ubuntu precise main
deb http://packages.irontec.com/ubuntu vivid main
deb http://packages.irontec.com/ubuntu xenial main
deb http://packages.irontec.com/ubuntu zesty main
deb http://packages.irontec.com/ubuntu artful main

Добавляем ключи для добавленных репозиториев

wget http://packages.irontec.com/public.key -q -O - | apt-key add -

Устанавливаем пакеты sngrep:

apt-get update
apt-get install sngrep

Описание ключей sngrep:

Формат команды sngrep имеет следующий вид:

sngrep [-hVciv] [-IO pcap_dump] [-d dev] [-l limit] [-k keyfile] [] []
-h or --help: Хелпер
-V or --version: вывести информацию о версии
-I or --input : прочитать данные из файла filename.pcap
-O or --output : cохраните все перехваченные пакеты в файл PCAP
-d or --device : захват трафикас определенного интерфейса ( по умолчанию sngrep захватывает трафик со всех интерфейсов)
-k or --keyfile : использовать private key file файл для расшифровки перехваченных TLS пакетов
-c or --calls : отображение только диалоговых окон, начиная с запроса invite
-l or --limit : изменить ограничения захвата трафика
-N or --no-interface : захват трафика без указания интерфейса
-q or --quiet : не отображать захваченные пакеты в режиме без интерфейса

 

Примеры

Захват SIP трафика в котором есть данные принадлежащие порту 80 (udp или tcp)

sngrep port 5060

Захват SIP трафика в котором есть данные принадлежащие портов 5060-5062

sngrep portrange 5060-5062

Захват SIP трафика в котором в качестве адреса стоит IP 95.128.227.100

sngrep host 95.128.227.100

Захватив все SIP пакеты с определенного интерфейса (-d eth1), IP, порта, и сохранить все это в pcap файл

sngrep -d eth1 -O /usr/dump/sip_capture.pcap host 192.168.1.10 port 5061

Прочитать данные из pcap файла, имеющие IP 192.168.0.50

sngrep -I sip_capture.pcap host 192.168.0.50

 

Работа со списком вызовов

Первое, что перед вами появляется после выполнения команды sngrep, это список сделанных вызовов, который пополняется новыми вызовами в режиме реального времени. Вам может понадобится сохранить, отфильтровать, выделить собранный трафик. Все это можно сделать с помощью определенного сочетания клавиш:

Enter: Отображение текущего или выбранного диалога(ов)
F2 or s: Сохранить выбранные/все в файл pcap
F3 or / or TAB: Фильтр отображения. Этот фильтр будет применен к тексту строк в списке
F4 or x: Отображение текущего выбранного диалога и связанных с ним
F5: Очистить список вызовов
F6 or r: Отобразить выбранный диалог(и) сообщения в обычный текст
F7 or f: Показать advanded фильтры
F10 or t: Выберите отображаемые столбцы

Более детально ознакомиться с сочетанием клавиш и работой с sngrep вы можете на официальной странице sngrep на github.

Есть много программ (tshark, ngrep,tcpdump), которые делают то же самое и даже больше, но sngrep нам понравился своей простотой и функциональностью, он может стать незаменимым помощником VoIP инженера.