Библиотека сайта rus-linux.net
Использование фильтров в Wireshark
Оригинал: How to Use Filters with WiresharkАвтор: Riccardo Capecchi
Дата публикации: 19 марта 2012 г.
Перевод: А.Панин
Дата публикации перевода: 28 ноября 2012 г.
Некоторые люди считают искусство захвата и интерпретации пакетов, передающихся по сети таким же сакральным знанием, как чтение матрицы из одноименного фильма, но вам не нужно быть новым Нео для того, чтобы иметь возможность исследовать сетевой поток. Мощным союзником в этой миссии является Wireshark - программный инструмент для анализа сетевого трафика (описание программы Wireshark вы найдете в предыдущей статье того же автора).
Wireshark сочетает в себе несколько инструментов. Вы можете использовать эту программу для анализа структуры вашей беспроводной сети и поиска возможных ошибок в ее конфигурации. Она может идентифицировать множество типов инкапсуляции, при этом разделить и показать все поля, из которых состоит сетевой пакет. Она также работает как сниффер пакетов аналогично программе tcpdump.
Учитывая мощные возможности Wireshark, можно подумать, что будет сложно обучиться использовать эту программу. В каком-то смысле это так, но вы можете без лишних усилий разобраться с тем, как использовать часть фильтров из комплекта поставки программы, и сконцентрироваться на исследовании интересующих клиентов и видов трафика. В этой статье я продемонстрирую ряд вариантов использования Wireshark для облегчения ваших поисков.
Когда я говорю "фильтры", я имею в виду Фильтры Пакетов Беркли (Berkeley Packet Filters (BPF)). На самом деле BPF является микроязыком программирования (содержащим мнемоники на ассемблере!), выражения которого компилируются и выполняются в отношении пакетов, обрабатываемых такими программами, как tcpdump и Wireshark. Фильтры просто необходимы в том случае, когда вам хочется отделить небольшую часть пакетов из сотен тысяч пакетов, передающихся по сети с предельной скоростью 100 Мбит/с. Выражения фильтров компилируются, поэтому обработка пакетов происходит с максимально возможной скоростью, что очень важно при осуществлении захвата в реальном времени.
Фильтры в Wireshark достаточно просто использовать. Вам необходимо знать только названия полей для каждого протокола, такие, как http, icmp и ftp. Например, если вы хотите, чтобы были показаны только пакеты ICMP, вы можете просто написать icmp в строке фильтра в главном окне Wireshark. Если вы хотите выделить все пакеты, идущие в обоих направлениях относительно узла с адресом, к примеру, 10.100.1.1, выражение фильтра будет записано в форме ip.dst == 10.100.1.1 || ip.src == 10.100.1.1
, что расшифровывается как указание показывать только те пакеты, поле адреса назначения (ip.dst) или (||) поле адреса источника (ip.src) IP-протокола для которых соответствует (==) 10.100.1.1.
Фильтры захвата и отображения
Wireshark поддерживает два типа фильтров. Фильтры захвата, как понятно из названия, используются для захвата части трафика, в то время как фильтры отображения могут применяться к захваченному трафику для показа только части пакетов в зависимости от использованного выражения. В этой статье поговорим об обоих типах фильтров.
Давайте начнем с установки Wireshark. Приложение доступно в виде бинарных пакетов для всех основных дистрибутивов, поэтому вы можете использовать ваш любимый менеджер пакетов: sudo apt-get install wireshark
в Debian или Ubuntu, emerge wireshark
в Gentoo или yum install wireshark
в Red Hat или CentOS.
sudo wireshark
Вы можете начать захват трафика, перейдя на левую панель окна Wireshark и нажав кнопку "Capture/Interfaces
". Выберите интерфейс, который "направлен в сеть" (например, eth1) и нажмите кнопку "Start
", при этом Wireshark начнет исследование всех пакетов, передающихся в сети.
Теперь перейдите во второе окно терминала и установите обычную сессию FTP. Введите имя пользователя и пароль, выполните несколько команд FTP, после чего закройте сессию. Вернитесь к окну Wireshark, в котором вы должны увидеть множество пакетов, переданных по сети с момента начала захвата. Нажмите на кнопку "Stop Capture
" (или используйте сочетание клавиш Ctrl+E
); после этого вы можете исследовать полученный трафик.
356 101.676753 10.100.1.1 192.168.0.4 FTP 86 Response: 220 (vsFTPd 1.1.3) 360 104.546659 192.168.0.4 10.100.1.1 FTP 77 Request: USER wazi 362 104.594520 10.100.1.1 192.168.0.4 FTP 100 Response: 331 Please specify the password. 366 106.530150 192.168.0.4 10.100.1.1 FTP 77 Request: PASS mytest 371 108.922240 10.100.1.1 192.168.0.4 FTP 88 Response: 530 Login incorrect.
Если результат этого исследования не склонил ваших коллег к отказу от использования FTP и переходу на OpenSSH, они безнадежны.
На этом заканчивается первая часть этой статьи, но если поднятая тема вас заинтересовала, не пропустите вторую часть "Подробнее о фильтрах в Wireshark".