Дмитрий Барышников
19.12.2018
49888

Использование консольных утилит Wireshark.

В предыдущих статьях мы рассматривали работу с таким консольным инструментом для снятия и работы с дампами как Tshark. Кроме него в комплекте установки Wireshark входит множество других крайне полезных утилит, комбинируя их с помощью скриптов можно сложную рутинную работу по сниффингу, поиску и анализу информации поставить на конвейер или полностью автоматизировать.

Утилиты Wireshark

Wireshark является самым передовым и широко используемым анализатором сетевых протоколов в мире. Он позволяет видеть, что происходит в Вашей сети на микроскопическом уровне, и является стандартом для многих коммерческих и некоммерческих предприятий, государственных и учебных учреждений  Структура программы является полностью модульной и за множество функций отвечают различные утилиты, объединенные GUI – программной оболочкой, которая и называется Wireshark. В статье рассматриваются решение задач связанных с VoIP из консоли сервера CLI. Зачем подобное может понадобиться?

1.Так как на большинстве серверов телефонии GUI нет и в нем нет особой надобности, а возможность выкачивания дампа в другую программную среду есть далеко не всегда.

2.Быстрый и легкий анализ, все фунции анализа имеются в иструментах на сервере.

3.Постобработка результатов, графический интерфейс является мощным и интерактивным, но с фиксированной функциональностью. CLI в сочетании с другими инструментами позволяет очень гибко работать с полученной информацией.

4.Автоматизация и скриптинг, значительно ускоряет сложные процессы получения необходимой информации и её анализа, особенно если необходимо проанализировать огромное количество дампов собранных за месяц.

Для начала подключимся к нашей станции по протоколу SSH, например, через клиент для Windows Putty.

Подключение к сереверу телефонии через Putty.

Забиваем адрес сервера и порт, по умолчанию 22.

Логинимся на сервере под root.

Большинство используемых в данной статье утилит требует привилегированных прав уровня root или администратор.

Входим на сервер телефонии по SSH под администратором.

Первый инструмент, который мы сегодня рассмотрим dumpcap.

Dumpcap — это инструмент сниффинга сетевого трафика. Он позволяет захватывать пакетные данные в режиме реального времени из сети и записывать пакеты в файл. Казалось бы, что данный функционал есть и в Tshark, но есть существенные преимущества данной утилиты:

1.Она намного быстрее, не производится обнаружение и чтение пакета, он просто захватывается и пишется на диск, без вывода.

Меньшее влияние на производительность даже чем tcpdump может быть запущен на постоянной основе.

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

Снимем дамп звонка с помощью dumpcap, синтаксис почти полностью аналогичен tcpdump. Для начала выведем список сетевых интерфейсов командой:

# dumpcap –D

Номер интересующего нас интерфейса 1, можно также указать имя интерфеса, данные действия равнозначны.

# dumpcap –i 1 –s 0 –w /tmp/call.pcap

Напоминаю –i указание интефейса, -s глубина захвата, 0 – захватывать все, -w путь сохранения файла дампа.

И посмотрим его содержимое tshark командой:

# tshark –r /tmp/call.pcap

Снятие дампа звонка с помощью dumpcap.

Для записи постоянного кольцевого файла трассировки используется ключ –b, указывающий размер дампов filesize:16384 (16 мб) и files:1024 указывающий максимальное количество (1024). Если перемножить данные показатели мы увидим, что кольцевой дамп не может превышать, в данном примере, 16 гб.

# dumpcap -i 1 –s 0 -b filesize:16384 files:1024 -w /tmp/ring.cap

Для включения дампа на долший период времени и возврат к управления консолью используется ключ –q – запуск в режиме фонового приложения.

# dumpcap -i 1 –s 0 -b filesize:16384 files:1024 -w /tmp/ring.cap

Tools_ring.png Снятие кольцевого дампа dumpcap, в том числе в фоновом режиме.

Capinfos — это программа, которая считывает один или несколько файлов трассировки и возвращает некоторые или все доступные статистические данные (информацию) каждого файла в одном из двух типов форматов вывода: long или table.

Длительный вывод более удобен для чтения человеку. Посмотрим с помощью него наш дамп звонка.

# capinfos /tmp/call.pcap

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

# capinfos –T /tmp/call.pcap

Вывод инфорции о дампе в виде длинного списка и таблицы.

Очень удобна программа для  поиска дампа в папке с кучей разнородных дампов, для того чтобы не открыть каждый по отдельности используем capinfos.

Например, выведем только время захвата созданных нами дампов. Добавляем ключи –a Отображает время начала захвата и –e время окончания захвата.

# capinfos –ae /tmp/*.pcap

Вывод времени захватов для всех дампов в папке.

Editcap — это программа, которая читает все или некоторые из захваченных пакетов из файла дампа, может преобразовывать их различными способами, и записывает полученные пакеты захвата в выходной файл. По умолчанию он считывает все пакеты из ввода и записывает их в вывод в формате pcap.

Применяется дя того чтобы:

1.Из большого файла дампа вытащить по шаблону необходимую часть.

Например, вытащим из файла дампа звонка только фреймы с 1-10 и 20-30. Ключ –r прочитать дамп, находящийся по пути в файл tmp.pcap и указываем номера кадров.

# editcap –r /tmp/call.pcap /tmp/tmp.pcap 1-10 20-30

Посмотрим его содежимое:

# tshark –r /tmp/tmp.pcap

Копируем в новый файл трассировки только 1-10 и 20-30 кадры.

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

Ключи –A и –B сохраняемый временной диапазон захваченных пакетов.

# editcap –A “2018-12-2 20:35:00” –B “2018-12-2 20:35:30” /tmp/call.pcap /tmp/tmp.pcap

Скопируем в новый дамп только 30 сек. звонка

2.Разделения огромного файла дампа на меньшие, например, с отрезками сниффинга по 60 сек. или разбить по 1000 пакетов в каждом.

Разделение дампа по 1000 пакетов производится следующей  командой с ключом –с 1000. Предварительно  создав папку под разделенные дампы, чтобы не запутаться, и выводим информацию о количестве пакетов.

# mkdir /tmp/call_pieces
# editcap -c 1000 /tmp/call.pcap  /call_pieces/call.pcap
# ls /tmp/call_pieces
# capinfos /call_pieces/call*.pcap

Разбиваем дамп на 1000 пакетов каждом.

Теперь аналогично разобьём дамп на 10 секундные интервалы записи параметром –I 60 (по 60 секунд).

# mkdir /tmp/call_10sec
# editcap -i 10 /tmp/call.pcap /tmp/call_10sec/call.pcap
# ls /tmp/call_10sec
# capinfos /tmp/call_10sec/call*.pcap

Разбиваем дамп на 10 секундные интервалы записи

Также с помощью данной утилиты удалять дубликаты пакетов, как правило, это пакеты синхронизации.

# editcap -d /tmp/call.pcap /tmp/nodup.pcap


Удаляем дубликаты пакетов

Можем изменить глубину захвата пакетов –s 96 (поверхностный захват). Дамп снимали с полным захватом s0. Изменить этот параметр в уже снятом дампе можно командой:

# editcap -s 96 /tmp/call.pcap /tmp/s96.pcap
# capinfos /tmp/call.pcap
# /tmp/s96.pcap

Изменем размер дампа путем изменения глубины захвата

Можно легко изменять временные метки, применяется для объединения дампом снятых в разное время. Ключ отвечающий за это –t

Заметьте, что после ключа –t -3600 — это отнятие 3600 секунд от временных меток. Аналогично можно прибавить , например –t +3600. Также приращение времени можно задавать с высокой точность, регулировка задается как [-] секунды [ .фракционные секунды ]. Например, —t -0.25 уменьшает метку времени на выбранных пакетах на четверть секунды

# editcap -t -3600 /tmp/call.pcap /tmp/timestramp.pcap
# capinfos /tmp/call.pcap
# capinfos /tmp/timestramp.pcap

Изменяем временные метки на час назад.

Для того чтобы сконвертировать формат дампа в любой поддерживаемый Wireshark также есть команда –F <формат выходного файла трассировки>

# editcap -t -3600 /tmp/call.pcap /tmp/timestramp.pcap


Конвертируем файл дампа в формат NA Sniffer (DOS)

Mergecap – утилита по функционалу противоположная предыдущей, объединяет несколько сохраненных файлов захвата в один выходной файл.

Можно объединить пакеты из нескольких файлов на основе их временных меток ключем –w.

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

# mergecap -w /tmp/call12.pcap /tmp/call1.pcap /tmp/call2.pcap


Объединяем 2 дампа по временным меткам.

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

# mergecap -w –a /tmp/call12.pcap /tmp/call1.pcap /tmp/call2.pcap

Проводим слияние дампов игнорируя временные метки пакетов.

Вывод:

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

Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии

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

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

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


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

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 сим-карты и настроить маршрутизацию вызовов по наиболее выгодному тарифу. Всё это позволяет экономить с первых минут пользования станцией.