');background-size:contain;background-repeat:no-repeat;background-size:18px 18px;background-position:50% 50%}.mtt-fullscreen-tooltip-window{position:absolute;right:0;bottom:100%;margin-bottom:10px;background-color:#fff;padding:12px;border-radius:10px;max-width:300px;width:80vw;overflow:hidden;-webkit-animation:tooltip .3s ease;animation:tooltip .3s ease;font-family:Roboto,HelveticaNeue-Light,Helvetica Neue Light,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif}@-webkit-keyframes tooltip{0%{opacity:0;bottom:80%}to{opacity:1;bottom:100%}}@keyframes tooltip{0%{opacity:0;bottom:80%}to{opacity:1;bottom:100%}}.mtt-fullscreen-tooltip-token+.mtt-fullscreen-tooltip-advertiser{margin-top:5px}.mtt-fullscreen-tooltip-token{color:#4141ee;font-size:14px}.mtt-fullscreen-tooltip-advertiser{font-size:12px}.mtt-fullscreen-hidden{display:none}.mtt-fullscreen-overlay{z-index:1;position:fixed;top:0;bottom:0;right:0;left:0;background-color:rgba(0,0,0,.7)}.mtt-fullscreen-container{z-index:2;width:100%;height:100%;text-align:center;position:fixed;top:0;bottom:0;right:0;left:0}.mtt-fullscreen-container.mtt-centered{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@media screen and (max-width:600px){.mtt-fullscreen-container.mtt-centered{width:430px;height:600px}}@media screen and (max-width:430px){.mtt-fullscreen-container.mtt-centered{width:410px;height:600px}}@media screen and (max-width:409px){.mtt-fullscreen-container.mtt-centered{width:375px;height:550px}}@media screen and (max-width:374px){.mtt-fullscreen-container.mtt-centered{width:360px;height:530px}}@media screen and (max-width:359px){.mtt-fullscreen-container.mtt-centered{width:320px;height:500px}}@media screen and (max-width:329px){.mtt-fullscreen-container.mtt-centered{width:320px;height:430px}}.mtt-fullscreen-image-container{position:fixed;top:0;bottom:0;right:0;left:0;padding:50px 5% 5%}.mtt-fullscreen-image-container *{-webkit-tap-highlight-color:transparent}.mtt-fullscreen-image{height:100%;width:100%;background-size:contain;background-position:50%;background-repeat:no-repeat;display:none}.mtt-fullscreen-container-html5{width:100%;height:100%;margin:0;padding:0;border:none;outline:none}@media (orientation:landscape){.mtt-fullscreen .mtt-fullscreen-image__landscape{display:block}}@media (orientation:portrait){.mtt-fullscreen .mtt-fullscreen-image__portrait{display:block}}@media screen and (max-width:600px){.mtt-fullscreen div[class*=yandex_rtb_R-A]{width:430px;height:600px}}@media screen and (max-width:430px){.mtt-fullscreen div[class*=yandex_rtb_R-A]{width:410px;height:600px}}@media screen and (max-width:409px){.mtt-fullscreen div[class*=yandex_rtb_R-A]{width:375px;height:550px}}@media screen and (max-width:374px){.mtt-fullscreen div[class*=yandex_rtb_R-A]{width:360px;height:530px}}@media screen and (max-width:359px){.mtt-fullscreen div[class*=yandex_rtb_R-A]{width:320px;height:500px}}@media screen and (max-width:329px){.mtt-fullscreen div[class*=yandex_rtb_R-A]{width:320px;height:430px}}
Утилита 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(показать заголовки), например:
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.
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 можно выполнив поиск по конфигурационным файлам:
Посмотреть используемые порты rtp (поиск нескольких значений по всем файлам в директории):
grep "^rtpstart|^rtpend" -EriRI /etc/asterisk/*
В примере используемый по умолчанию диапазон rtp портов (10000-20000) переопределен в диапазон (36600-39989).
Если используется FreePBX/Elastix то можно увидеть, что некоторые файлы оканчиваются на «additional». Суффикс «additional» означает, что правила записываются в конфигурационный файл только с помощью веб-интерфейса, по-другому вносить в него изменения не нужно.
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
Вывод дампа сразу на просмотр в консоль
tcpdump -i any portrange 5060-5061 and outbound -vv -s 0
tcpdump -i any portrange 5060-5061 and inbound -vv -s 0
Статья об отладке неисправностей соединения телефонных аппаратов с Asterisk с помощью утилиты tcpdump (подробно).
Утилита для чтения, просмотра, сохранения sip/rtp трафика.
Просмотр с помощью sngrep всех всего sip трафика
Просмотр с помощью sngrep только сообщений invite
Подробнее в статьях об утилите sngrep на сайте:
Ngrep – утилита, позволяющая записывать, выводить и фильтровать (как из записанного дампа, так и текущий) различный трафик.
yum install epel-release yum install ngrep
Основные опции -W сохранить форматирование строк -q “тихий режим”, скрывающий отображение других пакетов -d определение прослушиваемого сетевого интерфейса
ngrep -q -d any -p -W byline '334'
С помощью 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 более глубокой поддержкой sip протокола. Позволяет прослушивать только sip трафик.
В отчете sipgrep, в поле REASON можно увидеть причину завершения диалога. В зависимости от кода запросы подразделяются на: 1xx: Информационные ответы – запрос получен, запрос обрабатывается; 2xx: Успех выполнения запроса – запрос был получен, понят, принят в обработку; 3xx: Переадресация – для завершения запроса необходимо, выполнить следующие действия; 4xx: Ошибка Клиента – запрос имеет некорректный синтаксис(информацию) или запрос не может быть выполнен на данном сервере; 5xx: Ошибка Сервера – сервер не в состоянии выполнить корректный запрос; 6xx: Глобальная Ошибка – запрос не может быть выполнен на любом сервере.
На скриншоте звонок с 333 на 334 был завершен по причине 487 (Request Terminated) – происходит при отмене вызова.
Смотрите также примеры диагностики и решения проблем в других статьях на сайте.
Познакомьтесь с возможностями Asterisk. Найдите инструменты, которые помогут вашей компании развиваться.