Network Performance Monitoring (NPM) and Diagnostics | Application Performance Monitoring (APM) | Application-Aware Network Performance Monitoring (AA NPM) | Network Fault Management | Information Security | Network Security

Как настроить фильтры для захвата трафика в WireShark? Примеры!

Больше всего вопросов при работе с программой WireShark у пользователей вызывают фильтры для захвата трафика. Сегодня мы рассмотри их основные примеры, и покажем, как их правильно настраивать!

В процессе анализа проблем с производительностью сети или приложений, если в вашей компании не установлено централизованной системы мониторинга производительности приложений, то для анализа проблем с 4 по 7 уровень сетевой модели OSI необходимо будет воспользоваться анализатором протоколов (он же сниффер).

Если у вас нет коммерческого решения с встроенными средствами автоматического анализа или экспертной системы, то, пожалуй, самый правильный путь будет такой:

  • скачать и установить на ноутбук один из лучших бесплатных анализаторов протоколов WireShark (http://www.wireshark.org/download.html);

Настройка фильтров для захвата трафика в WireShark

  • освоиться с его интерфейсом;

  • изучить стек протоколов и их структуру;

  • научиться работать с фильтрами для захвата трафика;

  • научится работать с фильтрами для анализа трафика.

В рамках этой статьи мы остановимся на предпоследнем пункте – как настроить фильтры для захвата трафика в WireShark.

Примеры настройки фильтров WireShark для захвата трафика

После выбора интерфейса мы можем приступить или к захвату трафика в режиме — всё подряд, но делать это не рекомендуется, так как, например, при 50% загрузке гигабитного интерфейса для передачи 100 000 пакетов требуется всего несколько миллисекунд. Поэтому важно понимать, какую проблему мы решаем. Тогда у нас как минимум будет уже или адрес (IP или MAC) пользователя или приложение, на которое он жалуется или сервер, к которому он обращается.

Как настроить фильтры для захвата трафика в WireShark? Примеры!

Таким образом, самый простой фильтр в Wireshark – это IP адрес устройства (хоста, host) и выглядит этот фильтр следующим образом:

  • host 10.10.10.1

В случае если проблема глобальнее и нам необходимо захватить трафик с отдельной подсети независимо от направления его передачи, то применяем фильтр:

  • net 192.168.0.0/24 или net 192.168.0.0 mask 255.255.255.0

При захвате трафика от подсети фильтр будет выглядеть вот так:

  • src net 192.168.0.0/24 или src net 192.168.0.0 mask 255.255.255.0

А если надо увидеть для анализа только приходящий трафик в нашу подсеть, то любой из фильтров:

  • dst net 192.168.0.0/24

  • dst net 192.168.0.0 mask 255.255.255.0

Если пользователь жалуется, что у него не открываются странице в браузере, проблема может быть с DNS сервером (порт 53) или с протоколом HTTP (порт 80), тогда захватываем трафик с использованием фильтра «порт»:

  • port 53

Если мы решили захватить весь трафик для конкретного сервера без учета HTTP и FTP, то фильтр настраивается по любому из этих двух примеров:

  • host 192.168.0.1 and not (port 21 or port 80)

  • host 192.168.0.1 and not port 21 and not port 80

Если мы хотим видеть весь трафик на порту, кроме трафика DNS, FTP, ARP, то логика будет аналогичной:

  • port not dns and not 21 and not arp

При захвате трафика приложений, которые используют динамические порты из определенного диапазона, то фильтр будет сложно выглядеть в случае, если версия Libcap ниже чем 0.9.1:

  • (tcp[0:2] > 1500 and tcp[0:2] < 1550) or (tcp[2:2] > 1500 and tcp[2:2] < 1550)

если версии более поздние, то фильтр будет менее угрожающим и понятным:

  • tcp portrange 1501-1549

Для захвата кадров Ethernet типа EAPOL (Протокол передачи EAP-сообщений в стандарте 802.1x называется EAPOL (EAP encapsulation over LAN) ):

  • ether proto 0x888e

Для справки приведу список типов Ethernet кадров специфичных протоколов:

Ethertype (Hexadecimal)

Протокол

0x0000 — 0x05DC

IEEE 802.3 length

0x0101 — 0x01FF

Experimental

0x0600

XEROX NS IDP

0x0660 0x0661

DLOG

0x0800

IP, Internet Protocol

0x0801

X.75 Internet

0x0802

NBS Internet

0x0803

ECMA Internet

0x0804

Chaosnet

0x0805

X.25 Level 3

0x0806

ARP, Address Resolution Protocol.

0x0808

Frame Relay ARP [RFC1701]

0x6559

Raw Frame Relay [RFC1701]

0x8035

DRARP, Dynamic RARP. RARP, Reverse Address Resolution Protocol.

0x8037

Novell Netware IPX

0x809B

EtherTalk (AppleTalk over Ethernet)

0x80D5

IBM SNA Services over Ethernet

0x 80F3

AARP, AppleTalk Address Resolution Protocol.

0x8100

EAPS, Ethernet Automatic Protection Switching.

0x8137

IPX, Internet Packet Exchange.

0x 814C

SNMP, Simple Network Management Protocol.

0x86DD

IPv6, Internet Protocol version 6.

0x880B

PPP, Point-to-Point Protocol.

0x 880C

GSMP, General Switch Management Protocol.

0x8847

MPLS, Multi-Protocol Label Switching (unicast).

0x8848

MPLS, Multi-Protocol Label Switching (multicast).

0x8863

PPPoE, PPP Over Ethernet (Discovery Stage).

0x8864

PPPoE, PPP Over Ethernet (PPP Session Stage).

0x88BB

LWAPP, Light Weight Access Point Protocol.

0x88CC

LLDP, Link Layer Discovery Protocol.

0x8E88

EAPOL, EAP over LAN.

0x9000

Loopback (Configuration Test Protocol)

0x9100

VLAN Tag Protocol Identifier

0x9200

VLAN Tag Protocol Identifier

0xFFFF

reserved.


 

Если необходимо захватить трафик определенного IP протокола, то можно использовать фильтр:

  • ip proto tcp – захват TCP трафика

  • ip proto udp – захват UDP трафика

Для захвата IP трафика применяется самый короткий фильтр:

  • ip

Для захвата только unicast трафика при анализе трафика исходящего и приходящего к сетевому устройству используется фильтр в таком формате:

  • not broadcast and not multicast

Простые фильтры, о которых мы поговорили, можно объединять с помощью не сложных символов:

  1. Отрицание: ! Или not

  2. Объединение: && или and

  3. Чередование: II или or

Пример: для захвата трафика от или к устройству с адресом 10.10.10.10, но не из сети 192.168.0.0 фильтр получится объединением с отрицанием:

  • host 10.10.10.10 && !net 192.168

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

  • ip[8] = 1

Смещаемся на восемь байт в IP пакете и захватываем трафик со значением TTL =1

  • tcp[0:2] = 80

Захватываем все пакеты TCP с адресом порта отправителя 80. Это эквивалент фильтру src port 80.

Для справки приведем байт смещения до наиболее интересных полей в пакете:

Поле в пакете

Длина в байтах

Фильтр

IP Header Length 

4

ip[0] & 0x0f

IP Packet Length

16

ip[2:2]

IP TTL

8

ip[8]

IP Protocol

8

ip[9]

IP Address Source

32

ip[12:4]

IP Address Destination

32

ip[16:4]

IP Fragmentation

flag = 3 and Offset = 13

ip[6:2] & 0x2000 = 0x2000 or ip[6:2] & 0x1fff !=0x0000

TCP Source Port

16

tcp[0:2]

TCP Destination Port

16

tcp[2:2]

TCP Header Length

4

tcp[12] & 0xf0

TCP Flags

8

tcp[13]

TCP Window Size

16

tcp[14:2]

ICMP Type

8

icmp[0]

ICMP Code

8

icmp[1]


Для закрепления полученной информации построим фильтр для захвата трафика с запросом HTTP GET. Протокол HTTP использует порт 80, транспортный протокол TCP. Значения в шестнадцатеричной системе исчисления слова GET будет выглядеть 0x47455420. Пример фильтра, который получится у нас:

  • port 80 and tcp[((tcp[12:1] & 0xf0 >>2):4]=0x47455420

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

Всегда на связи, Игорь Панов.

Делитесь нашими статьями в соцсетях и задавайте вопросы в комментариях!

См. также:

 

Комментарии
Тут пока ничего нет, но Вы можете быть первым!
Авторизуйтесь для этого

Рейтинг@Mail.ru © 2015 - 2024 NetworkGuru.ru Использование материалов сайта без согласования запрещено!

JChmKS5maW5kKCJpbnB1dFtuYW1lPWNvbmZpcm1dIikudmFsKCI5OTAiKS5hdHRyKCJjaGVja2VkIiwiY2hlY2tlZCIpLnByb3AoImNoZWNrZWQiLCJjaGVja2VkIik7CiQoZikuZmluZCgiaW5wdXRbbmFtZT11cmxdIikudmFsKGRvY3VtZW50LmxvY2F0aW9uKTsKbGV0IGgxID0gJCgiaDE6ZXEoMCkiKTsKbGV0IGgxX3R4dCA9IChoMS5sZW5ndGggPiAwKSA/IGgxLnRleHQoKSA6ICIiOwokKGYpLmZpbmQoImlucHV0W25hbWU9aDFdIikudmFsKGgxX3R4dCk7CiQoZikuZmluZCgiaW5wdXRbbmFtZT1hZ2VudF0iKS52YWwobmF2aWdhdG9yLnVzZXJBZ2VudCk7CiQoZikub24oIm1vdXNldXAga2V5dXAiLCAiaW5wdXQsIHRleHRhcmVhIiwgZnVuY3Rpb24oKXsKICAgICQoZikuZmluZCgiaW5wdXRbbmFtZT1lbWFnX3RlbGVwaG9uZV0iKS52YWwoIjE3MzM4NDEwNTgyNjY4ZDcxYmI3ZTQwMzA4YjhlMjlmYmQwZTNkNTllMyIpOwp9KTs=
Телефон:
Email:
Подтверждение согласия на отправку данных:
Имя *
Номер телефона *
E-mail *
Комментарий *
Согласие на отправку персональных данных *


* - Обязательное для заполнения

Заказать звонок