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 инженера.

