Перейти к содержанию

Фильтры wireshark

Disclaimer:

...играет Марсельеза...
"All you need is dump, 
Dump is all you need..."

Wireshark играет в жизни сетевого инженера весьма немаловажную роль...

Здесь будут приводиться основные настройки и фильтра, использующиеся в "routine work"

Кастомные настройки:

1. Просмотр "Flow Graph"

Flow graph - позволяет отображать графически этапы взаимодействия хостов по определенному протоколу.

  • English version: Statistic → "Flow graph"
  • Русская версия: "Статистика"" ---> "График потока"

Выглядет очень наглядно.

wireshark-flow-graph

2. Просмотр "packet diagram view"

Важно

    (version 3.3.0 and above)

В Редактировании ---> Параметры ---> Появление ---> Разметка Выбираем следующее

wireshark-pdv-howto

Данная визуализация дает возможность наглядно отображать содержимое кадров в соответствии с их структурой по RFC (заголовки кадров, пакетов, tcp,upd - сегментов, а также протоколов уровня приложений таких как http/https, quic, dhcp, ftp, smtp, mysql и всех пр...)

Прям - Агонь!!!

wireshark-packet-diagram-view

ip.src == x.x.x.x

# Выбираем пакеты с ip адресом источника = 8.8.8.8
ip.src == 8.8.8.8

ip.dst == x.x.x.x

# Выбираем пакеты с ip адресом назначения = 192.168.0.111
ip.dst == 8.8.8.8

ip.src == x.x.x.x || ip.dst == x.x.x.x

или

ip.src == x.x.x.x or ip.dst == x.x.x.x

# Выбираем пакеты с ip адресом источника = 8.8.8.8 или с ip адресом назначения = 8.8.8.8
# Таким образом можно отфильтровать весь трафик, идущий от локального хоста по узла 8.8.8.8
ip.src == 8.8.8.8 || ip.dst == 8.8.8.8

# это - тоже самое...
ip.src == 8.8.8.8 or ip.dst == 8.8.8.8

icmp

# Выбираем трафик по протоколу icmp
icmp

ip.flags.df == 1

# Выбираем трафик ip трафик, в котором в заголовке выставлен в "1" флаг Don't Fragment
ip.flags.df == 1

eth.src == xx:xx:xx:xx:xx:xx

# Выбираем по MAC адресу источника
eth.src == 60:a4:4c:a9:b4:b0

eth.dst == xx:xx:xx:xx:xx:xx

# Выбираем по MAC адресу источника
eth.dst == 60:a4:4c:a9:b4:b0

eth.src == xx:xx:xx:xx:xx:xx || eth.dst == xx:xx:xx:xx:xx:xx

# Выбираем трафик для кадров удущих "от" и "до" мака 60:a4:4c:a9:b4:b0 
eth.src == 60:a4:4c:a9:b4:b0 || eth.dst == 60:a4:4c:a9:b4:b0 

Подсчет статистики по каунтерам

Полезно для выявления наиболее активных ip источников и назначений, например при определении жертвы DDoS атаки или при разборе петли L2

Меню Статистика -> IPv4 Statistics -> All Addresses

! - отрицание(исключение) НЕ

не включать в результат фильтрации

# Выбрать все пакеты с ip адресом источника 8.8.8.8 
# или ip адресом назначения 8.8.8.8 
# и чтобы это не был протокол icmp
(ip.src == 8.8.8.8 || ip.dst == 8.8.8.8) && !icmp

BGP

BGP OPEN

bgp.type == 1 

BGP UPDATE

bgp.type == 2

BFD

BFD Control packets

bfd

BFD echo packets

bfd_echo

Фильтрации по времени

Указать фильтрацию по времени

frame.time >= "2026-03-04 12:09:00" and frame.time <= "2026-03-04 12:10:00"

Указать период фильтрации по времени + ip src

frame.time >= "2026-03-04 12:09:00" and frame.time <= "2026-03-04 12:10:00" and ipv6.src == fd00:0::1

В io graph отобразить временную шкалу

"io-graph" -> "right click" -> "Time of day"

tcpdump + wireshark

tcpdump - запись дампа в файл

tcpdump -s 0 -vi eth0 -w file.pcap
Разбор команды

  tcpdump -s 0 -vi eth0 -w file.pcap

  -s 0 (snaplen): Устанавливает длину захватываемого пакета.  
    Значение 0 означает захват пакета целиком (в современных версиях это эквивалентно 262144 байтам). 
    Это важно, чтобы данные внутри пакетов не обрезались.

  -v: Увеличивает детализацию вывода (verbose).
    ! при режиме записи в файл данный параметр полезен тем, что показывает сколько пакетов принято "Got 33" - что очень полезно для понимания 

  -i eth0 (interface): Указывает сетевой интерфейс.

  -w file.pcap (write): Записывает "сырые" пакеты в файл file.pcap 
    вместо вывода их текстового описания в терминал.

tcpdump - перенаправление в wireshark локально

sudo tcpdump -s 0 -Uli eth0  -w - | wireshark -k -i -
Разбор команды

  sudo tcpdump -s 0 -Uli eth0  -w - | wireshark -k -i -

  sudo: выполнение с правами суперпользователя (необходимо для доступа к сетевому интерфейсу).
  -s 0: устанавливает размер снимка (snaplen) в значение по умолчанию (обычно 262144 байт), 
    чтобы захватывать пакеты целиком, а не обрезать их.
  -U: включает "unbuffered" режим — пакеты отправляются в поток сразу по мере поступления, не дожидаясь заполнения буфера.
  -l: делает стандартный вывод (stdout) строчно-буферизованным для корректной передачи данных через конвейер (|).
  -i eth0: указывает интерфейс для прослушивания (eth0).
  -w -: записывает "сырые" данные в stdout вместо файла.
  |: передает вывод первой команды на вход второй.
  wireshark -k -i -: запускает Wireshark, где -k означает немедленное начало захвата, а -i - указывает использовать данные из стандартного ввода (stdin).

  для того, чтобы зайти в режим sudo надо изначально авторизоваться командами 
  "sudo su" - зайти как  su 
  "exit" - выход из su после

tcpdump - перенаправление в wireshark удаленно

Если tcpdump снимается с удаленного хоста, то можно организовать перенаправление сразу в локальный wireshark

Следующий набор команд позволяет перенаправить дамп с хоста удаленного интерейса на локальный wireshark

sshpass -p "MYPASS" ssh -q user@192.168.0.1 " echo 'MYPASS' | sudo -S tcpdump -s 0 -Uli ens18 -w - " | wireshark -k -i -

Разбор команды

 sshpass -p "MYPASS" ssh -q user@192.168.0.1 " echo 'MYPASS' | sudo -S tcpdump -s 0 -Uli ens18 -w - " | wireshark -k -i -

 Разбор компонентов:
  sshpass -p "MYPASS": Автоматизирует ввод пароля для SSH-соединения (sshpass - отдельная программа)
  ssh -q user@192.168.0.1: Подключается к удаленному серверу
    -q (quiet): Подавляет лишние сообщения (например, баннеры приветствия). 
                Это важно, чтобы в Wireshark летел только поток пакетов, а не текст "Welcome to Ubuntu".
  echo 'MYPASS' | sudo -S ...: Передает пароль для sudo, чтобы выполнить команду с правами суперпользователя без интерактивного запроса

  tcpdump -s 0 -Uli ens18 -w -:
  -s 0 :Захватывает пакет целиком (полный размер)
  -U :Пакетный вывод без буферизации (немедленная отправка) 
  -l :Линейная буферизация stdout
  -i ens18 :Интерфейс для прослушивания.
  -w - :Запись сырых данных в стандартный вывод (stdout) вместо файла.

  | wireshark -k -i - :Перенаправление данных в wireshark
  -k: Немедленный запуск захвата 
  -i -: Прием данных для анализа из стандартного ввода (stdin) [2, 4].

  !!!важно!!!
  пароль в данном случае передается в открытом виде и будет виден в history
  нужно учитывать эти риски при применении данного набора команд 

tcpdump - перенаправление в wireshark удаленно для интерфейса, находящегося в отдельном namespace

Следующий набор команд позволяет перенаправить дамп с даленного хоста для интерфейса, котоый находится в отдельном namespace (clab-bgp-ula-r1) перенаправить дамп на локальный wireshark

sshpass -p "MYPASS" ssh -q user@192.168.0.1 " echo 'MYPASS' | sudo -S ip netns exec clab-bgp-ula-r1 tcpdump -s 0 -Uli eth2 -w - " | wireshark -k -i -
Разбор компонентов

 Объяснение выполнения данного набора команд - сгенерировано ИИ. 
 Проверил - всё верно!) 

 sshpass -p "MYPASS" ssh -q user@192.168.0.1 " echo 'MYPASS' | sudo -S ip netns exec clab-bgp-ula-r1 tcpdump -s 0 -Uli eth2 -w - " | wireshark -k -i -

 Давайте разберем эту конструкцию «по кирпичикам». Она состоит из трех основных частей: аутентификация, захват трафика на удаленном узле и визуализация в Wireshark.
 1. sshpass -p 'MYPASS'
 Обычно SSH требует ручного ввода пароля. sshpass — это утилита, которая автоматически «подсовывает» пароль в ответ на запрос SSH.
 Зачем: Чтобы вся цепочка команд запускалась одной строкой без остановок.
 Нюанс: Это не самый безопасный способ (пароль виден в списке процессов ps). В идеале лучше использовать SSH-ключи.
 2. ssh -q user@192.168.0.1
 Стандартное подключение к удаленному серверу.
 -q (quiet): Подавляет лишние сообщения (например, баннеры приветствия). Это важно, чтобы в Wireshark летел только поток пакетов, а не текст "Welcome to Ubuntu".
 3. Удаленная команда (в кавычках)
 Здесь происходит "магия" внутри сервера:
 echo 'MYPASS' | sudo -S: Передает пароль команде sudo. Флаг -S заставляет sudo читать пароль из стандартного ввода (stdin), а не из терминала. Это нужно для запуска ip netns с правами root.
 ip netns exec clab-bgp-ula-r1: Выполняет последующую команду внутри конкретного сетевого пространства имен (Network Namespace). В средах вроде Containerlab (clab) каждый роутер — это отдельный namespace.
 tcpdump -i eth2 -s 0 -U -w -:
 -i eth2: Слушать интерфейс eth2.
 -s 0: Захватывать пакет целиком (snarf length 0 = unlimited).
 -U: (Packet-buffered) Отправлять каждый пакет в поток сразу, как только он получен, не дожидаясь заполнения буфера.
 -w -: Записывать «сырые» данные (pcap-формат) прямо в стандартный вывод (-), вместо сохранения в файл.
 4. | wireshark -k -i -
 Труба (|) перенаправляет двоичный поток данных от tcpdump (через SSH) на вход локальному Wireshark.
 -k (start immediately): Начать захват сразу после запуска.
 -i - (interface stdin): Сказать Wireshark, что данные нужно брать из стандартного ввода (stdin), а не с сетевой карты вашего компьютера.

 Итог: Вы видите пакеты с интерфейса eth2 роутера r1 в графическом интерфейсе своего Wireshark так, будто вы подключены к нему напрямую.


Последнее обновление: 2026-03-05