Tcpdump linux примеры sip

tcpdump

Утилита tcpdump относится к числу так называемых «снифферов» — программ предназначенных для перехвата сетевого трафика. Одним словом, tcpdump предназначен для подслушивания. Разрабо­тан Группой сетевых исследований (Network Reseach Group, NRG) Отдела инфор­мационных и вычислительных технологий (Information and Computing Sciences Division, ICSD) в Национальной лаборатории Лоренс Беркли (Lawrence Berkeley National Laboratory, LBNL).

tcpdump не единственный Сетевые анализаторы снифферы, которым может пользоваться администратор. Кроме tcpdump можно обратить внимание на такие программы, как:

Wireshark (бывший ethereal) — Сетевые анализаторы снифферы с графическим интерфейсом, который может обрабатывать дампы сделанные программой tcpdump

tcpdump работает при помощи интерфейса bpf (Berkeley Packet Filter). Если поддержку этого устройства отключить, сниффинг в BSD окажется невозможен. Права на запуск программы tcpdump определяются правами доступа к устройсву bpf (/dev/bpf0). Эти права можно регулировать через devfs. Если вы предоставляете, например, группе operator права на чтение из этого устройства, то это значит, что все члены этой группы смогут перехватывать любой трафик, в том числе трафик суперпользователя.

Если программа tcpdump вызвана для прослушивания некоторого интерфейса, она переводит его в «promiscuous mode» — «неразборчивый режим». В этом режиме интерфейс ловит вообще все пакеты, которые до него добрались, а не только пакеты адресованные непосредственно ему. Таким образом, если сеть собрана не на коммураторах (switch), а на репитерах (hub), то tcpdump позволит перехватить трафик между посторонними машинами, т.е. подслушать разговор двух сторонних машин. Сказанное не означает, что перехват трафика невозможен в сети собранной на коммутаторах. Впрочем, интерфейс можно и не переводить в promiscous mode, если передать программе аргумент -p.

tcpdump для VoIP SIP H.323

Ключ -w применяется для записи данных в отдельный файл. Прочитать это файл можно применяя ключи -r и -X(показать заголовки), например:

# tcpdump -r tcpdumplog # tcpdump -X -r tcpdumplog
# tcpdump -i eth0 -n port 5060 -w mbill or # tcpdump -i eth0 -n -s 0 port 5060 -vvv -w /home/capture_file_name or # tcpdump -i eth0 -n host 89.31.241.2 -vvv -w /home/textcall

Анализирует траффик удаленно через SSH с помощью Wireshark

ssh root@HOST tcpdump -U -s0 -w - 'not port 22' | wireshark -k -i -

UDP трафик с и на IP xxx.xxx.xxx.251 destined for port 5060:

# tcpdump -nnvvS udp and host xxx.xxx.xxx.251 and dst port 5060

Записать в файл mbill251 весь трафик с хоста xxx.xxx.xxx.251 за исключением трафика ssh

# tcpdump -n -i eth0 host xxx.xxx.xxx.251 -vvv and not port 22 -w /home/mbill251

Прослушать порт 5060 с ip xxx.xxx.xxx.251

tcpdump -i eth0 -n -s 0 port 5060 and host xxx.xxx.xxx.251 -vvv -w /usr/local/tcpdumplog/log
tcpdump -i eth0 -n -s 0 port 1720 and host xxx.xxx.xxx.251 -vvv -w /usr/local/tcpdumplog

H.323 сигналинг ловим с двух IP. В таком виде с двух IP отказалось снимать, может быть OR нужно было поставить.

# tcpdump -i eth0 -n -s 0 port 1720 and host xxx.xxx.164.1 and host xxx.xxx.107.1 -vvv -w /usr/local/tcpdumplog/logfile

tcpdump Packet Filter Firewall (PF)

# tcpdump -nettti pflog0 # tcpdump -netttr /var/log/pflog

Примеры использования tcpdump

перечислить доступные интерфейсы (которые можно прослушивать при помощи опции -i)

Читайте также:  Lenovo g580 drivers linux

посмотреть трафик одного хоста:

посмотреть трафик на порте:

посмотреть IP трафик на хост:

посмотреть ARP трафик на хост:

посмотреть RARP трафик на хост:

посмотреть трафик, кроме хоста unixserver:

tcpdump not host unixserver

посмотреть трафик на server1 и server2

tcpdump host server1 or host server2

посмотреть содержимое пакетов на интерфейсе tun0 на хост ya.ru

tcpdump -X -i tun0 host ya.ru

подсмотреть номера и пароли к icq

tcpdump -X -i fxp1 port aol

посмотреть содержимое пакетов на интерфейсе tun0 на хост ya.ru, при этом прочитать из каждого пакета по 1500 байт и не преобразовывать IP в имя хоста

tcpdump -X -s 1500 -n -i tun0 host ya.ru

Примеры использования tcpdump AND OR EXCEPT

AND and or && OR or or || EXCEPT not or !

TCP traffic from 10.5.2.3 destined for port 3389:

# tcpdump -nnvvS tcp and src 10.5.2.3 and dst port 3389

Traffic originating from the 192.168 network headed for the 10 or 172.16 networks:

# tcpdump -nvX src net 192.168.0.0/16 and dst net 10.0.0.0/8 or 172.16.0.0/16

Non-ICMP traffic destined for 192.168.0.2 from the 172.16 network:

# tcpdump -nvvXSs 1514 dst 192.168.0.2 and src net 172.16.0.0/16 and not icmp
# tcpdump -nvvvpi rl0 tcp and not port ssh and not port smtp

Проблема +arplookup 0.0.0.0 failed: host is not on local network

Лечение: запускаем команду и ищем MAC c ошибкой

# tcpdump -vvv -n -l -e arp | grep 0.0.0.0 . 16:43:57.407018 00:0e:89:1d:cc:87 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 60: arp who-has 86.90.285.175 (00:50:fc:f0:3e:e9) tell 0.0.0.0 .
# tcpdump -vvv -n -l -e arp # tcpdump -i rl1 -vvv -n -l -e arp

arpdig – dig an interface for arp responses. Выводит соответствие между IP и MAC. Пример использования:

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

for /l %i in (1,1,254) do ping -n 1 -w 1 192.168.1.%i arp -a | find "арп"

Wireshark: Packet size limited during capture

Файлы tcpdump совместимы с Wireshark. Запуская ее с параметром -w filename, мы получаем файл, содержащий нужный нам сетевой трафик. К сожалению, по умолчанию в tcpdump каждый пакет ограничивается 96ю байтами (которых, как правило, достаточно для анализа любых пакетов). Однако если нужно залезть глубже и смотреть всё содержимое пакетов, нужно использовать команду -s size (где size — размер пакетов, которые нужно ловить). Для обычного ethernet’а размер пакетов равен 1500, для «разогнанного» гигабитного etherneta — порой до 65к.

Итого, имеем следующую команду:

# tcpdump -s 1500 -w filename

И используем ее для того, чтобы можно было создать полный дамп сетевого трафика, который можно смотреть в Wireshark без сообщений вида Packet size limited during capture

tcpdump использование в Windows 10

Утилиту tcpdump можно использовать не только в Linux, но Windows.

Читайте также:  Astra linux уровень целостности ssh

TCPDUMP для Windows является клоном TCPDUMP, наиболее используемого сетевого анализатора / анализатора для UNIX, скомпилированного с исходным кодом tcpdump (tcpdump.org) и пакетом SDK от Microolap Packet Sniffer (без libpcap / WinPcap).

Клон TCPDUMP для Windows можно скачать на microolap.com

Читайте также

Работа с ARP протоколом: очистка таблицы — ARP Материал из Википедии (англ. Address Resolution Protocol — протокол разрешения адресов) — протокол канального уровня (англ. Data Link layer), предназначенный для преобразования IP-адресов (адресов сетевого уровня) в MAC-адреса (адреса канального уровня) в сетях TCP/IP. Он определён в RFC 826.

RARP — RARP Материал из Википедии (англ. Reverse Address Resolution Protocol — Обратный протокол преобразования адресов) — протокол третьего (сетевого) уровня модели OSI, выполняет обратное отображение адресов, то есть преобразует аппаратный адрес в IP-адрес.

Источник

Траблшутинг с помощью tcpdump, ngrep, sipgrep, sngrep

Определение используемых портов Посмотреть использующиеся порты SIP, IAX можно выполнив поиск по конфигурационным файлам: или выполнив команду Посмотреть используемые порты для sip и протокол(параметр transport), установленные в конфигурационных файлах и вывести окружающий контекст (20 строк) Посмотреть используемые порты rtp (поиск нескольких значений по всем файлам в директории): В примере используемый по умолчанию диапазон rtp портов […]

Определение используемых портов

Стандартные порты в IP телефонии для голоса и сигнализации: 5060 (udp) – SIP(сигнализация), в последных версиях FreePBX стандартный SIP порт 5160 (udp), 10000-20000 (udp) — RTP(голос), 5061(tcp) — TLS 4569 (udp) – IAX(и голос и сигнализация). Но они могут быть также переопределены в конфигурационных файлах (глобально или для отдельного транка/экстеншена). Необходимо это уточнить перед запуском дампов.

Посмотреть использующиеся порты SIP, IAX можно выполнив поиск по конфигурационным файлам:

grep "^port wp-block-code">asterisk -rx "sip show settings" | grep "Bindaddress:" - покажет глобальные настройки(Bindaddress:bindport — прослушиваемый адрес:прослушиваемый порт)

Используемые порты и глобальные настройки

Посмотреть используемые порты для sip и протокол(параметр transport), установленные в конфигурационных файлах и вывести окружающий контекст (20 строк)

grep "^port=|^transport wp-block-image">
Используемые порты, протокол, контекст
Используемые порты, протокол, контекст

Посмотреть используемые порты rtp (поиск нескольких значений по всем файлам в директории):

grep "^rtpstart|^rtpend" -EriRI /etc/asterisk/*

В примере используемый по умолчанию диапазон rtp портов (10000-20000) переопределен в диапазон (36600-39989).

Если используется FreePBX/Elastix то можно увидеть, что некоторые файлы оканчиваются на «additional». Суффикс «additional» означает, что правила записываются в конфигурационный файл только с помощью веб-интерфейса, по-другому вносить в него изменения не нужно.

Используемые RTP порты

tcpdump
Создание полного дампа. Запись по портам 5060 (сигнализация) и 10000-2000(стандартные, голос) в один файл:

tcpdump -i any -vvvv port 5060 or portrange 10000-20000 -s 0 -w dump.pcap

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

Запуск дампов, пишушихся с определенным интервалом по порту 5060:

tcpdump -i any -G 600 -i any -vvvv port 5060 -w 'dump_%d-%m_%Y__%H_%M.pcap'

-i — указывается имя интерфейса (any — все)
-G — время в секундах (например 600 сек — 10 мин)

При запуске с интервалом, определенным параметром -G будут создаваться отдельные дампы.
Просмотр дампа /root/dump_file.pcap (вывод его в консоль) с помощью утилиты tcpdump

tcpdump -qns 0 -A -r /root/dump_26-02_2020__18_45.pcap

Просмотр дампа

После удаления дампов из планировщика задач cron, необходимо проверить остался ли запущенный процесс в активных командой ps aux | grep dump , где «dump» — часть имени скрипта, пишущего дампы или команды. Если процесс остался активен после удаления дампов из планировщика его необходимо завершить командой kill.

Поиск запущенных дампов, завершение процесса

По выведенному в консоль трейсу можно выполнить поиск, с выводом также и некоторые соседние строки, окружающие найденную подстроку (-A –(after) количество строк вниз, -B —(before) количество строк вверх, -C или -число – (context) до и после):

tcpdump -qns 0 -A -r log_17-02_2020__18_27.pcap | grep "115" -A 20 -B 20

Поиск по дампу

Вывод дампа сразу на просмотр в консоль

Просмотр дампов inbound, outbound в tcpdump

tcpdump -i any portrange 5060-5061 and outbound -vv -s 0

tcpdump -i any portrange 5060-5061 and inbound -vv -s 0

Просмотр дампов inbound, outbound в sngrep

Статья об отладке неисправностей соединения телефонных аппаратов с Asterisk с помощью утилиты tcpdump (подробно).

Утилита для чтения, просмотра, сохранения sip/rtp трафика.

Просмотр с помощью sngrep всех всего sip трафика

Просмотр с помощью sngrep только сообщений invite

Просмотр с помощью sngrep только сообщений invite

Подробнее в статьях об утилите sngrep на сайте:

Ngrep – утилита, позволяющая записывать, выводить и фильтровать (как из записанного дампа, так и текущий) различный трафик.

yum install epel-release yum install ngrep

Основные опции
-W сохранить форматирование строк
-q “тихий режим”, скрывающий отображение других пакетов
-d определение прослушиваемого сетевого интерфейса

ngrep -q -d any -p -W byline '334'

Ngrep фильтрация по наличию в строке YATE

С помощью ngrep также можно записывать дампы в файл и далее также работать с записанным дампом(с помощью ключа -О).

Записать трафик на интерфейсе eth0 в текущую директорию

ngrep -O ./ngrep.dump -d eth0 -T

Фильтрация трафика из записанного в текущей директории дампа по хосту(192.168.32.2 ) и порту(5060)

ngrep -I ./ngrep.dump -q '.' 'host 192.168.32.2 and port 5060'

Ngrep запись дампа и работа с ним

Отличается от ngrep более глубокой поддержкой sip протокола. Позволяет прослушивать только sip трафик.

yum install libpcap-devel pcre-devel m4 automake autoconf libtool
cd /usr/src git clone https://github.com/sipcapture/sipgrep.git cd sipgrep ./build.sh (optional) ./configure make && make install

Sipgrep вывод трафика на интерфейсе eth0 с(-f) / на(-t) номер и вывод отчета по диалогу (-G)

sipgrep -d eth0 -f 333 -G sipgrep -d eth0 -t 89192990000 –G

Sipgrep получение пакетов с(-f) / на(-t) номер

В отчете sipgrep, в поле REASON можно увидеть причину завершения диалога. В зависимости от кода запросы подразделяются на:
1xx: Информационные ответы – запрос получен, запрос обрабатывается;
2xx: Успех выполнения запроса – запрос был получен, понят, принят в обработку;
3xx: Переадресация – для завершения запроса необходимо, выполнить следующие действия;
4xx: Ошибка Клиента – запрос имеет некорректный синтаксис(информацию) или запрос не может быть выполнен на данном сервере;
5xx: Ошибка Сервера – сервер не в состоянии выполнить корректный запрос;
6xx: Глобальная Ошибка – запрос не может быть выполнен на любом сервере.

На скриншоте звонок с 333 на 334 был завершен по причине 487 (Request Terminated) – происходит при отмене вызова.

Sipgrep код ответа

Смотрите также примеры диагностики и решения проблем в других статьях на сайте.

Познакомьтесь с возможностями Asterisk. Найдите инструменты, которые помогут вашей компании развиваться.

Источник

Оцените статью
Adblock
detector