Фильтры 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"
- Русская версия: "Статистика"" ---> "График потока"
Выглядет очень наглядно.

2. Просмотр "packet diagram view"¶
Важно
(version 3.3.0 and above)
В Редактировании ---> Параметры ---> Появление ---> Разметка Выбираем следующее

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

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 так, будто вы подключены к нему напрямую.