Как установить wireshark на debian

Обновлено: 04.07.2024

Администратор сети должен уметь работать со сниффером, таким, как wireshark или tcpdump , для диагностирования проблем сети.

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

23.1. Приложение wireshark

23.1.1. Установка wireshark

В данном примере приведена команда для установки приложения wireshark в дистрибутивах, использующих пакеты программного обеспечения с расширением .deb (включая Debian, Mint, Xubuntu и другие дистрибутивы).

В дистрибутивах, использующих пакеты программного обеспечения с расширением .rpm , таких, как CentOS, RHEL и Fedora, для установки приложения wireshark может использоваться утилита yum .

23.1.2. Выбор сетевого интерфейса

При запуске приложения wireshark в первый раз вам придется выбрать сетевой интерфейс. Вы увидите диалог, который выглядит аналогично приведенному на иллюстрации ниже.

Выбор сетевого интерфейса

Вероятна ситуация, при которой доступных сетевых интерфейсов попросту не окажется, ведь в некоторых дистрибутивах перехват сетевого трафика может осуществляться исключительно пользователем root. В этом случае вам придется запустить приложение wireshark от лица пользователя root с помощью команды sudo wireshark .

Или же вы можете последовать общим рекомендациям и использовать утилиту tcpdump или какой-либо другой инструмент для перехвата трафика и записи данных в файл. Любые перехваченные данные могут быть проанализированы позднее с помощью приложения wireshark .

23.1.3. Минимизация трафика

В процессе перехвата сетевого трафика в течение очень коротких промежутков времени могут генерироваться тысячи пакетов. Очевидно, что такой объем данных затруднит анализ трафика. Попытайтесь выйти из этого положения, изолировав ваш сниффер в рамках сети. Предпочтительным вариантом является перехват трафика, проходящего через сетевой интерфейс изолированной виртуальной сети, находящейся под вашим полным контролем.

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

И все же более важным инструментом для минимизации трафика являются фильтры , которые будут обсуждаться в следующем разделе.

23.1.4. Перехват трафика, генерируемого утилитой ping

Я запустил сниффер и захватил все пакеты, переданные по сети в результате исполнения трех команд ping (не имеет смысла выполнять эти команды от лица пользователя root):

В общей сложности из сети было захвачено более чем 200 пакетов. Все станет гораздо очевиднее в том случае, если введете строку icmp в поле фильтра и нажмете кнопку "Применить" ("Apply").

Перехват трафика, генерируемого утилитой ping

23.1.5. Перехват трафика, генерируемого утилитой ping и клиентом dns

Работая с той же сессией захвата данных, применим отличный фильтр . Мы хотим отслеживать трафик, относящийся как к протоколу dns , так и к протоколу icmp , поэтому нам придется ввести названия двух упомянутых протоколов в поле фильтра.

Для захвата данных, относящихся к двум рассматриваемым протоколам, в поле фильтра должна быть введена строка "dns or icmp" . В случае ввода строки "dns and icmp" не будет выведено информации о каких-либо пакетах, так как не существует пакетов, относящихся к обоим упомянутыми протоколам.

Перехват трафика, генерируемого утилитой ping и клиентом dns

При рассмотрении приведенной выше иллюстрации можно заметить, что пакеты 25 и 26 имеют исходные и целевые IP-адреса 10.104.33.30. Это объясняется тем, что клиент DNS работает на том же компьютере, что и сервер DNS.

Аналогичная ситуация наблюдается и в случае пакетов 31 и 32, ведь с помощью утилиты ping осуществляется отправка пакетов рабочей системе, на которой запущена данная утилита.

23.1.6. Определенный IP-адрес

В данном случае осуществляется фильтрация пакетов, относящихся к протоколу DNS и содержащих определенный IP-адрес . В качестве фильтра используется строка "ip.addr==10.104.33.30 and dns" . Директива and сообщает приложению о том, что следует выводить информацию о каждом пакете, соответствующем двум условиям.

Определенный IP-адрес

Пакет 93 содержит запрос DNS , направленный на получение записи типа A домена linux-training.be. Пакет 98 содержит ответ от сервера DNS . Как вы думаете, что происходило после отправки пакета 93 и до приема пакета 98? Попытайтесь ответить на этот вопрос перед чтением следующего раздела (при работе с различными системами всегда полезно пытаться предсказывать наступающие события и проверять корректность своих предсказаний).

23.1.7. Фильтрация на основе фреймов

Корректным термином, используемым для обозначения перехваченного пакета , является термин фрейм (из-за того, что мы осуществляем перехват пакетов на уровне 2 сетевой модели OSI). Таким образом, для вывода информации о пакетах с определенными номерами, следует использовать директиву frame.number в поле фильтра.

Фильтрация на основе фреймов

23.1.8. Исследование содержимого пакетов

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

На иллюстрации ниже показана средняя панель окна сниффера с выбранным адресом моего ноутбука.

Средняя панель окна сниффера

Учтите, что описанная выше техника отлично работает при перехвате трафика, передаваемого через один сетевой интерфейс. Если же вы перехватываете трафик, к примеру, с помощью команды tcpdump -i any , вы столкнетесь с методом перехвата пакетов "Linux cooked capture" .

Linux cooked capture

23.1.9. Другие примеры фильтров

Вы можете комбинировать два описания протоколов с помощью директивы логической операции or ("ИЛИ"), расположенной между ними. На иллюстрации ниже показан способ захвата исключительно пакетов, относящихся к протоколам ARP и BOOTP (или DHCP ).

Захват пакетов, относящихся к протоколам ARP и BOOTP

А на следующей иллюстрации показан способ перехвата пакетов, относящихся к протоколу DNS и содержащих определенный IP-адрес .

Перехват пакетов, относящихся к протоколу DNS и содержащих определенный IP-адрес

23.2. Утилита tcpdump

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

При использовании команды tcpdump host $ip будет выводиться информация обо всем трафике, относящимся к определенному узлу (в данном случае с IP-адресом 192.168.1.38).

Перехват трафика, относящегося исключительно к протоколу ssh (протокол TCP, порт 22), может осуществляться с помощью команды tcpdump tcp port $порт . Длина строк вывода урезана до 76 символов для более удобного чтения.

Та же операция, но с записью захваченных данных в файл, может осуществляться с помощью команды tcpdump -w $имя_файла .

С помощью команды tcpdump -r $имя_файла может быть выведено содержимое файла, созданного в предыдущем примере.

Множество других примеров использования рассматриваемой утилиты может быть найдено на странице руководства man tcpdump .

23.3. Практическое задание: перехват сетевого трафика

1. Установите приложение wireshark в вашу систему (работающую не в виртуальной машине).

2. Используйте утилиту ping генерации трафика между вашим и каким-либо другим компьютером.

3. Начните перехват сетевого трафика.

4. С помощью фильтра осуществите вывод информации исключительно о тех пакетах, которые содержат ответы на запросы от утилиты ping.

23.4. Корректная процедура выполнения практического задания: перехват сетевого трафика

1. Установите приложение wireshark в вашу систему (работающую не в виртуальной машине).

В дистрибутивах Debain/Ubuntu: aptitude install wireshark

В дистрибутивах Red Hat/Mandriva/Fedora: yum install wireshark

2. Используйте утилиту ping генерации трафика между вашим и каким-либо другим компьютером.

3. Начните перехват сетевого трафика.

Выберите сетевой интерфейс (вероятно, eth0)

4. С помощью фильтра осуществите вывод информации исключительно о тех пакетах, которые содержат ответы на запросы от утилиты ping.

В первую очередь запустите сниффер.

Окно приложения wireshark должно выглядеть аналогичным образом.

Окно приложения wireshark

На основе информация из окна приложения wireshark можно сделать вывод о том, что запрос DNS передавался с помощью пакета UDP, после чего несложно дать ответы на поставленные вопросы.

Wireshark - это одна из самых популярных программ для анализа сетевого трафика. С помощью неё вы можете просмотреть содержимое сетевых пакетов на различных уровнях работы сети. Кроме непосредственно анализа трафика в программе есть возможность расшифровки зашифрованных пакетов беспроводных сетей. В отличие от консольной утилиты tcpdump у Wireshark есть очень удобный графический интерфейс.

В этой небольшой статье мы рассмотрим как установить Wireshark в Ubuntu 20.04, как получить последнюю версию, а также как настроить программу для работы от имени обычного пользователя.

Установка Wireshark в Ubuntu

1. Официальный сайт

Самый простой способ установить Wireshark - использовать официальные репозитории. Для этого выполните такую команду:

sudo apt install wireshark


Во время установки программа спросит нужно ли разрешить запускать Wireshark от имени обычного пользователя. Дело в том, что анализировать сетевые пакеты по умолчанию можно только от имени суперпользователя. Но запускать графические программы от имени суперпользователя не рекомендуется. Если в этом окне ответить Да, то все пользователи из группы wireshark смогут получить доступ к программе, а не только суперпользователь:


После завершения установки необходимо добавить текущего пользователя в группу wireshark:

sudo usermod -aG wireshark $USER

Чтобы изменения применились надо перезагрузить компьютер или перезайти в систему. После этого можно запускать программу из главного меню или с помощью терминала:


Если вы столкнулись с проблемой, что Wireshark не видит интерфейсы Ubuntu, это значит что программа запущена от обычного пользователя и он не добавлен в группу Wireshark. В качестве быстрого решения, попробуйте запустить её от суперпользователя:

Открыв пункт меню Помощь -> О Wireshark можно узнать версию программы. В данном случае установлена версия 3.2.3:


2. Установка Wireshark и PPA

Пока в официальных репозиториях находится устаревшая версия, разработчики уже выпустили версию 3.4.2. Её можно получить из PPA разработчиков. Для добавления PPA репозитория в систему выполните такую команду:

sudo add-apt-repository ppa:wireshark-dev/stable

После этого можно установить Wireshark как это описано выше:

sudo apt install wireshark

Установка проходит аналогично тому, что описано выше. Если ваш пользователь не добавлен в группу wireshark, то не забудьте его добавить чтобы использовать программу от имени обычного пользователя. Версию программы можно узнать и с помощью терминала, для этого выполните:


3. Настройка доступа для не суперпользователя

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

sudo dpkq-reconfigure wireshark-common

И на этот раз уже ответьте Да. Ну и не забудьте добавить пользователя в группу wireshark.

Удаление Wireshark

Для того чтобы удалить Wireshark из Ubuntu достаточно выполнить такую команду:

sudo apt remove wireshark

Выводы

В этой небольшой статье мы разобрались как выполняется установка Wireshark в Ubuntu 20.04. Как видите, всё выполняется довольно просто. Прочитать подробнее как пользоваться Wireshark вы можете в отдельной статье.

Нет похожих записей


Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.

Оцените статью:

(6 оценок, среднее: 5,00 из 5)

Об авторе

4 комментария

По горячим следам и молчаливого согласия админа добавлю краткое описание действий, которые позволят wireshark работать с трафиком USB-портов. Методику я почерпнул на stackoverflow.

Чтобы wireshark мог отображать USB-трафик, нужно в загрузить модуль ядра usbmon. Сделать это можно несколькими способами.

Первый способ -- в ручную. Для этого нужно в консоли выполнить команду:

Команду нужно выполнить из-под root-а. Это очень простой способ, недостаток его в том, что эту команду нужно выполнять каждый раз (после загрузки операционной системы). Альтернативой этому является способ автоматической загрузки модуля. Делается это так -- в директории /etc/modules-load.d/ нужно создать файл usbmon.conf, в котором написать строку с одним словом:

Теперь при каждой загрузке операционной системы этот модуль будет автоматически устанавливаться. Но это ещё не всё! Теперь нужно отрегулировать права. Дело вот в чём, обычному пользователю (не root-у), который запускает wireshark, не позволено использовать виртуальные устройства usbmon*, который создаёт этот модуль. Работать в wireshark под root-ом не всегода удобно, да и по большому счёту -- не совсем правильно. Поэтому было бы более правильно запускать wireshark под обычным пользователем, но предоставить ему (пользователю) некоторые привилегии.

Сначала давайте посмотрим, что у нас имеется в системе. После установки (тем или иным способом) модуля usbmon в системе должны появится несколько виртуальных устройств:

$ ls -al /dev/usbmon*

Обратите внимание на атрибуты файлов -- на моём компе они имеют вид "crw------- root root". Иными словами, доступ к устройству имеет только root. Чтобы наделить пользователя возможностью работать с этими устройствами нужно (из-под root-а) выполнить команду:

ВНИМАНИЕ! Вместо слова alex вам следует подставить имя вашей учётной записи. В принципе, можно вообще использовать универсальный способ -- подставлять имя учётной записи, которое находится в переменной окружения USER:

$ sudo setfacl -m u:$USER:r /dev/usbmon*

Команду, как вы заметили, можно выполнить под своей пользовательской учетной записи.

Вообще, если интересно знать, какие интерфейсы может окучивать wireshark, то можно выполнить команду

Ну, собственно это всё, что необходимо сделать, чтобы изучать USB-трафики. Запускайте wireshark и исследуйте свои объекты!

Авторизуясь в LiveJournal с помощью стороннего сервиса вы принимаете условия Пользовательского соглашения LiveJournal

Если вы загружаете исходники GTK+, инструкции показанные в примере 2.1, "Сборка GTK+ из исходников" пожет помочь вам в его сборке:

Примере 2.1, "Сборка GTK+ из исходников"

gzip -dc gtk+-2.21.1.tar.gz | tar xvf -
<much output removed>
cd gtk+-2.21.1
./configure
<much output removed>
make
<much output removed>
make install
<much output removed>

[Note] Примечание!
Вам может потребоваться изменить номер версии GTK+ показанный в примере 2.1, в соотвествии с загруженной вами версией. Соответственно может измениться директорий, если получена другая версия GTK+, но в любом случае, tar xvf - покажет вам имя изменённого директория.

[Note] Примечание!
Если вы используете Linux или имеете установленный GNU tar, вы можете использовать tar zxvf gtk+-2.21.1.tar.gz. Вы так же можете использовать gunzip -c или gzcat вместо gzip -dc.

[Note] Примечание!
Если вы загрузили GTK+ или любой другой tar файл используя Windows, вы можете найти ваш файл с названием gtk+-2_21_1_tar.gz.

Если при выполнении инструкций из примера 2.1 возникнут ошибки, вам следует обратиться к за консультацией на сайт GTK+.

Пример 2.2. Сборка и установка libcap

gzip -dc libpcap-1.0.0.tar.Z | tar xvf -
<much output removed>
cd libpcap-1.0.0
./configure
<much output removed>
make
<much output removed>
make install
<much output removed>

[Note] Примечание!
Директорий должен изменяться в зависимости от загруженной вами версии libpcap. В любом случае, tar xvf - покажет вам имя директория который будет распакован.

В Red Hat 6.x и аналогичных системах основанныйх на ней (таких как Mandrake, CentOS), вы можете просто установить каждый из пакетов с помощью RPM. Большинство Linux систем могут иметь установленный GTK+ и Glib, однако, вероятно, вам потребуется установить devel-версию для каждого из этих пакетов. Команды показанные в примере 2.3, "Установка необходимых пакетов RPM в Red Hat Linux 6.2 и подобных" позволяют установить все необходимые пакеты RPM, если они отсутствуют.

Пример 2.3. Установка необходимых пакетов RPM в Red Hat Linux 6.2 и подобных

cd /mnt/cdrom/RedHat/RPMS
rpm -ivh glib-1.2.6-3.i386.rpm
rpm -ivh glib-devel-1.2.6-3.i386.rpm
rpm -ivh gtk+-1.2.6-7.i386.rpm
rpm -ivh gtk+-devel-1.2.6-7.i386.rpm
rpm -ivh libpcap-0.4-19.i386.rpm

[Note] Примечание
Если вы используете версию Red Hat отличную от 6.2, требуемые пакеты RPM могут быть изменены. Просто используйте корректные RPM для своего дистрибутива.

Под Debian, вы можете установить Wireshark используя aptitude. Aptitude будет управлять всеми необходимыми зависимостями. Пример 2.4, "Установка debs под Debian, Ubuntu и другими производными Debian", показывает, как это сделать.

Пример 2.4. Установка debs под Debian, Ubuntu и другими производными Debian

aptitude install wireshark-dev

2.4. Сборка Wireshark из исходников под UNIX
Если вы собираете Wireshark под Unix из исходных кодов, используйте следующие наиболее общие шаги:
1. Распакуйте исходники из файла gzip tar. Если вы используете Linux, или ваша версия Unix использует GNU tar, вы можете использовать следующую команду:

tar zxvf wireshark-1.11-tar.gz

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

gzip -d wireshark-1.11-tar.gz
tar xvf wireshark-1.11-tar

[Note] Примечание!
Здесь можно использовать конвеер gzip -dc wireshark-1.11-tar.gz | tar xvf.

[Note] Примечание!
Если вы загрузили тарболл Wireshark под Windows, вы можете обнаружить, что был создан файл с нижними подчёркиваниями вместо дефисов.

2. Смените директорий на директорий исходников Wireshark.
3. Сконфигурируйте исходники для корректной сборки под вашу версию UNIX. Вы можете сделать это следующей командой:

./configure

Если этот шаг завершается ошибкой, вам придётся устранить проблемы и повторно запустить configure. Советы по решению проблем предоставлены в разделе 2.6, "Решение проблем установки под UNIX".

4. Соберите из исходников бинарники с помощью команды make. Например:

5. Установите ПО в директорий назначения используя команду:

make install

После завершения установки Wireshark с помощью make install, вы можете попробовать запустить его введя wireshark.


Инструкции Ubuntu

Чтобы включить сторонний PPA, перейдите в терминал и используйте команду add-apt-repository.

Когда PPA добавлен в Ubuntu, пришло время использовать команду обновления, так как она требуется для загрузки файла выпуска для репозитория программного обеспечения Wireshark.

После использования команды обновления вы, несомненно, заметите, что есть обновления программного обеспечения, готовые к установке. Важно установить эти ожидающие обновления, чтобы Wireshark работал наилучшим образом.

Чтобы установить обновления программного обеспечения, выполните команду обновления.

Поскольку все обновлено, можно безопасно установить последнюю версию Wireshark на Ubuntu.

Инструкции Debian

Для пользователей Debian доступны готовые к установке пакеты Wireshark в репозитории программного обеспечения «Debian Main». Чтобы заставить его работать в вашей системе, используйте команду Apt-get ниже в окне терминала.

Имейте в виду, что пакеты Wireshark, доступные пользователям Debian, ужасно устарели. Причина того, почему программа устарела, заключается в том, что Debian Linux предоставляет обновления программного обеспечения и новые функции гораздо медленнее, чем другие операционные системы.

Проверь это - Как попробовать альтернативу Firefox с открытым исходным кодом LibreWolf в Linux

Если вас не устраивает, что выпуск Wireshark для Debian Linux не является чем-то новым, вы можете включить Debian Backports, чтобы получить более современные версии.

Не хотите включать Debian Backports, но по-прежнему хотите более новую версию Wireshark? Попробуйте вместо этого следовать инструкциям Flatpak в этом руководстве.

Инструкции Arch Linux


И командная строка, и версия Qt Wireshark доступны пользователям Arch Linux в репозитории программного обеспечения «Сообщество». Чтобы установить программное обеспечение на свой компьютер Arch, вы должны вручную включить «Сообщество», так как не во всех дистрибутивах он включен по умолчанию.

Чтобы включить «Сообщество», получите root в своем терминале с помощью su.

После получения root откройте файл /etc/pacman.conf в текстовом редакторе Nano.

Проверь это - 6 лучших редакторов Markdown для Linux

Выполните повторную синхронизацию Pacman, чтобы вы могли добавить пакеты сообщества в базу данных программы на вашем ПК.

Наконец, установите последнюю версию Wireshark.

Инструкции Fedora

На данный момент приложение Wireshark готово к использованию в Fedora Linux, благодаря его включению в репозиторий программного обеспечения «Fedora i386» и «Fedora x86_64». Чтобы заставить его работать в вашей системе, запустите окно терминала и загрузите его с помощью диспетчера пакетов DNF.

Инструкции OpenSUSE

На странице загрузки веб-сайта Wireshark разработчики заявляют, что они поддерживают OpenSUSE Linux, но, к сожалению, прямой ссылки на пакет нет.

Несмотря на очевидное пренебрежение со стороны разработчика Wireshark к пользователям OpenSUSE Linux, программа доступна в большом количестве репозиториев программного обеспечения с разными версиями.

Проверь это - Как установить плеер Cozy Audiobook в Linux

На данный момент последней стабильной версией для Leap 15, Leap 42.3 и Tumbleweed является версия 2.4. Установка не требует особых действий. Просто запустите окно терминала и используйте установщик Zypper.

Примечание: в настоящее время установить Wireshark 3 можно только на OpenSUSE Leap 15. 42.3 и Tumbleweed в настоящее время не поддерживаются.

Чтобы добавить репозиторий сетевых утилит, используйте команду zypper addrepo.

После настройки нового репо используйте обновление.

Наконец, установите Wireshark

Инструкции по Flatpak

Wireshark находится в магазине приложений Flathub как пакет Flatpak, поэтому, если вы используете дистрибутив Linux, который разработчики Wireshark не поддерживают, вы можете легко установить приложение с помощью следующих команд.

Примечание: использование Flatpak в Linux требует включения среды выполнения Flatpak. Если вы не знаете, как установить эту среду выполнения, ознакомьтесь с нашим подробным руководством по этому вопросу.

Администратор сети должен уметь работать со сниффером, таким, как wireshark или tcpdump , для диагностирования проблем сети.

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

23.1. Приложение wireshark

23.1.1. Установка wireshark

В данном примере приведена команда для установки приложения wireshark в дистрибутивах, использующих пакеты программного обеспечения с расширением .deb (включая Debian, Mint, Xubuntu и другие дистрибутивы).

В дистрибутивах, использующих пакеты программного обеспечения с расширением .rpm , таких, как CentOS, RHEL и Fedora, для установки приложения wireshark может использоваться утилита yum .

23.1.2. Выбор сетевого интерфейса

При запуске приложения wireshark в первый раз вам придется выбрать сетевой интерфейс. Вы увидите диалог, который выглядит аналогично приведенному на иллюстрации ниже.

Выбор сетевого интерфейса

Вероятна ситуация, при которой доступных сетевых интерфейсов попросту не окажется, ведь в некоторых дистрибутивах перехват сетевого трафика может осуществляться исключительно пользователем root. В этом случае вам придется запустить приложение wireshark от лица пользователя root с помощью команды sudo wireshark .

Или же вы можете последовать общим рекомендациям и использовать утилиту tcpdump или какой-либо другой инструмент для перехвата трафика и записи данных в файл. Любые перехваченные данные могут быть проанализированы позднее с помощью приложения wireshark .

23.1.3. Минимизация трафика

В процессе перехвата сетевого трафика в течение очень коротких промежутков времени могут генерироваться тысячи пакетов. Очевидно, что такой объем данных затруднит анализ трафика. Попытайтесь выйти из этого положения, изолировав ваш сниффер в рамках сети. Предпочтительным вариантом является перехват трафика, проходящего через сетевой интерфейс изолированной виртуальной сети, находящейся под вашим полным контролем.

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

И все же более важным инструментом для минимизации трафика являются фильтры , которые будут обсуждаться в следующем разделе.

23.1.4. Перехват трафика, генерируемого утилитой ping

Я запустил сниффер и захватил все пакеты, переданные по сети в результате исполнения трех команд ping (не имеет смысла выполнять эти команды от лица пользователя root):

В общей сложности из сети было захвачено более чем 200 пакетов. Все станет гораздо очевиднее в том случае, если введете строку icmp в поле фильтра и нажмете кнопку "Применить" ("Apply").

Перехват трафика, генерируемого утилитой ping

23.1.5. Перехват трафика, генерируемого утилитой ping и клиентом dns

Работая с той же сессией захвата данных, применим отличный фильтр . Мы хотим отслеживать трафик, относящийся как к протоколу dns , так и к протоколу icmp , поэтому нам придется ввести названия двух упомянутых протоколов в поле фильтра.

Для захвата данных, относящихся к двум рассматриваемым протоколам, в поле фильтра должна быть введена строка "dns or icmp" . В случае ввода строки "dns and icmp" не будет выведено информации о каких-либо пакетах, так как не существует пакетов, относящихся к обоим упомянутыми протоколам.

Перехват трафика, генерируемого утилитой ping и клиентом dns

При рассмотрении приведенной выше иллюстрации можно заметить, что пакеты 25 и 26 имеют исходные и целевые IP-адреса 10.104.33.30. Это объясняется тем, что клиент DNS работает на том же компьютере, что и сервер DNS.

Аналогичная ситуация наблюдается и в случае пакетов 31 и 32, ведь с помощью утилиты ping осуществляется отправка пакетов рабочей системе, на которой запущена данная утилита.

23.1.6. Определенный IP-адрес

В данном случае осуществляется фильтрация пакетов, относящихся к протоколу DNS и содержащих определенный IP-адрес . В качестве фильтра используется строка "ip.addr==10.104.33.30 and dns" . Директива and сообщает приложению о том, что следует выводить информацию о каждом пакете, соответствующем двум условиям.

Определенный IP-адрес

Пакет 93 содержит запрос DNS , направленный на получение записи типа A домена linux-training.be. Пакет 98 содержит ответ от сервера DNS . Как вы думаете, что происходило после отправки пакета 93 и до приема пакета 98? Попытайтесь ответить на этот вопрос перед чтением следующего раздела (при работе с различными системами всегда полезно пытаться предсказывать наступающие события и проверять корректность своих предсказаний).

23.1.7. Фильтрация на основе фреймов

Корректным термином, используемым для обозначения перехваченного пакета , является термин фрейм (из-за того, что мы осуществляем перехват пакетов на уровне 2 сетевой модели OSI). Таким образом, для вывода информации о пакетах с определенными номерами, следует использовать директиву frame.number в поле фильтра.

Фильтрация на основе фреймов

23.1.8. Исследование содержимого пакетов

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

На иллюстрации ниже показана средняя панель окна сниффера с выбранным адресом моего ноутбука.

Средняя панель окна сниффера

Учтите, что описанная выше техника отлично работает при перехвате трафика, передаваемого через один сетевой интерфейс. Если же вы перехватываете трафик, к примеру, с помощью команды tcpdump -i any , вы столкнетесь с методом перехвата пакетов "Linux cooked capture" .

Linux cooked capture

23.1.9. Другие примеры фильтров

Вы можете комбинировать два описания протоколов с помощью директивы логической операции or ("ИЛИ"), расположенной между ними. На иллюстрации ниже показан способ захвата исключительно пакетов, относящихся к протоколам ARP и BOOTP (или DHCP ).

Захват пакетов, относящихся к протоколам ARP и BOOTP

А на следующей иллюстрации показан способ перехвата пакетов, относящихся к протоколу DNS и содержащих определенный IP-адрес .

Перехват пакетов, относящихся к протоколу DNS и содержащих определенный IP-адрес

23.2. Утилита tcpdump

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

При использовании команды tcpdump host $ip будет выводиться информация обо всем трафике, относящимся к определенному узлу (в данном случае с IP-адресом 192.168.1.38).

Перехват трафика, относящегося исключительно к протоколу ssh (протокол TCP, порт 22), может осуществляться с помощью команды tcpdump tcp port $порт . Длина строк вывода урезана до 76 символов для более удобного чтения.

Та же операция, но с записью захваченных данных в файл, может осуществляться с помощью команды tcpdump -w $имя_файла .

С помощью команды tcpdump -r $имя_файла может быть выведено содержимое файла, созданного в предыдущем примере.

Множество других примеров использования рассматриваемой утилиты может быть найдено на странице руководства man tcpdump .

23.3. Практическое задание: перехват сетевого трафика

1. Установите приложение wireshark в вашу систему (работающую не в виртуальной машине).

2. Используйте утилиту ping генерации трафика между вашим и каким-либо другим компьютером.

3. Начните перехват сетевого трафика.

4. С помощью фильтра осуществите вывод информации исключительно о тех пакетах, которые содержат ответы на запросы от утилиты ping.

23.4. Корректная процедура выполнения практического задания: перехват сетевого трафика

1. Установите приложение wireshark в вашу систему (работающую не в виртуальной машине).

В дистрибутивах Debain/Ubuntu: aptitude install wireshark

В дистрибутивах Red Hat/Mandriva/Fedora: yum install wireshark

2. Используйте утилиту ping генерации трафика между вашим и каким-либо другим компьютером.

3. Начните перехват сетевого трафика.

Выберите сетевой интерфейс (вероятно, eth0)

4. С помощью фильтра осуществите вывод информации исключительно о тех пакетах, которые содержат ответы на запросы от утилиты ping.

В первую очередь запустите сниффер.

Окно приложения wireshark должно выглядеть аналогичным образом.

Окно приложения wireshark

На основе информация из окна приложения wireshark можно сделать вывод о том, что запрос DNS передавался с помощью пакета UDP, после чего несложно дать ответы на поставленные вопросы.

Читайте также: