Анализатор сетевого трафика Wireshark
Программа Wireshark относится к классу программ анализаторов сетевого трафика или сниферам.
Принцип работы анализатора трафика (снифера)
Название Сниффер происходит от английского слова sniff (нюхать). Принцип действия снифера прост - он перехватывает пакеты с сетевого интерфейса Вашего компьютера их в удобочитаемой для человека форме. Используя Wireshark Вы можете полностью в реальном времени контролировать ВСЮ! сетевую активность на любом сетевом интерфейсе Вашего компьютера. Вы можете посмотреть MAC-адреса сетевых карт в пакетах, порты источника и назначения транспортных протоколов TCP и UDP, IP-адреса источника и назначения, пакеты служебных протоколов ICMP, а также детально, буквально побайтно увидеть содержимое любых служебных полей и полей данных.
Установка Wireshark
Wireshark распространяется бесплатно по лицензии GNU (General Public License). Скачайте с официального сайта инсталлятор Wireshark. Запустите инсталлятор и кликните кнопку "Next" (сноска 1)Прочитайте лицензию и кликните кнопку "I Agree" (сноска 2)
Кликните галочку "Wireshark" (сноска 3), выключите все остальные галочки и кликните кнопку "Next"
Кликните на свое усмотрение галочки (сноска 5) Wireshark Start Menu Item (добавит пункт в главное меню Windows), Wireshark Desktop Icon (добавит иконку на рабочий стол), Wireshark Quick Launch Icon (добавит иконку в панель быстрого запуска). Включите точку "Associate trace file extensions to Wireshark" (сноска 6) и Windows ассоциирует перечисленые расширения файлов с Wireshark. Иными словами, при двойном клике на файлы с перечисленными расширениями их автоматически будет открывать Wireshark. Кликните кнопку "Next" (сноска 7).
Задайте папку, в которую будет установлен Wireshark (сноска 8) и кликните кнопку "Next" (сноска 9)
Включите галочку "Install WinPcap 4.1.3" (сноска 10) и кликните кнопку "Next" (сноска 11). WinPcap - это специальный драйвер, который позволяет перехватывать пакеты с сетевого интерфеса и передавать их Wireshark для визуализации пользователю
Отключите галочку USPPcap (сноска 12). Это драйвер для перехвата данных USB-устройств. Кликните кнопку "Install" (сноска 13)
Далее начнется установка Wireshark (сноска 14)
Посреди установки Wireshark будет запущена установка драйвера WinPCap. Кликните кнопку "Next" (сноска 15)
Прочитайте лицензию и кликните кнопку "I Agree" (сноска 16)
Включите галочку "Automatically start the WinPcap driver at boot time" (сноска 17), чтобы драйвер WinPcap автоматически загружался при старте Windows. Кликните кнопку "Install" (сноска 18)
Кликните кнопку "Finish" (сноска 19) и установка WinPcap будет завершена
Дождитесь завершения установки Wireshark (сноска 20) и кликните кнопку "Next" (сноска 21)
Кликните кнопку "Finish" (сноска 22) и запустите Wireshark двойным кликом по иконке на рабочем столе (сноска 23)
Основы работы с анализатором тафика Wireshark
Для начала нужно выбрать сетефой интерфейс, который будет "прослушивать" Wireshark. Для этого кликните кнопку настроек Wireshark (сноска 24).
Выберите "Беспроводное сетевое подключение", если работаете с ноутбука через WiFi или "Подключение по локальной сети", если ваш компьютер подключен к Интернету через кабель (сноска 25). Для наглядности Wireshark в поле "Traffic" для каждого сетевого подключения показывает график активности. Кликните кнопку "Start", чтобы запустить "прослушивание" сетевого интерфейса (сноска 26)
Интерфейс Wireshark достаточно прост и состоит из 3х основных окон. В окне под сноской 27 будут в реальном времени отображаться все пакеты, проходящие через сетевой интерфейс. Вы можете кликнуть на любой пакет в окне 27 и в окне под сноской 28 получить детальную информацию о пакете (MAC-адреса сетевых карт, IP-адреса отправителя и получателя, TCP или UDP порты отправителя и получателя и т.д). В окне под сноской 29 выводится побайтово сам пакет, в том виде как он перехвачен из сетевой карты.
Как только Wireshark начнет "слушать" трафик, в окне под сноской 27 повалят все пакеты с сетевого интерфейса и разобраться в этой "куче" будет невозможно. Для удобства задействуйте фильтр пакетов Wireshark. Условие для фильтра вводится в текстовое поле под сноской 30 и применяется кликом по кнопке сноска 31. Можно задавать одиночные или групповые условия:
Одиночные условия выглядят так:
tcp.port == 25 - отображать только TCP-пакеты почтового протокола SMTPtcp.dstport == 25 - отображать только TCP-пакеты протокола SMTP с портом назначения 25 (SMTP пакеты, идущие от Вашего компьютера на почтовые сервера)
tcp.srcport == 80 - отображать только TCP-пакеты протокола HTTP с портом источника 80 (HTTP пакеты, идущие от сайтов из Интернета на Ваш компьютер)
udp.port == 53 - отображать только UDP-пакеты протокола DNS
udp.dstport == 53 - отображать только UDP-пакеты протокола DNS с портом назначения 53 (пакеты идущие с Вашего компьютера на DNS сервера)
ip.addr == 8.8.8.8 - отображать пакеты, в которых присутствует IP-адрес DNS-серверов google
ip.dst == 8.8.8.8 - отображать пакеты, идущие с Вашего компьютера на IP-адрес DNS-серверов google
ip.src == 8.8.8.8 - отображать пакеты, идущие DNS-серверов google на Ваш компьютер
Групповые условия выглядят так:
udp.port == 53 && ip.dst == 8.8.8.8 - отображать только DNS запросы И предназначающиеся только серверам google
&& - операция "И" требует одновременного исполнения обоих условий
tcp.dstport == 80 || udp.dstport == 53 - отображать HTTP-пакеты на WEB-сервера ИЛИ запросы DNS
|| - операция "ИЛИ" требует исполнения одного из условий или сразу обоих.
Комбинируйте условия как угодно, для того, чтобы из "кучи" выделить только нужные Вам пакеты
Контроль трафика по IP-адресам
Теперь задаем условие для фильтра Wireshark выводить только пакеты, в которых присутствует IP-адрес рамблера (сноска 35) и применяем фильтр (сноска 36). Теперь убедитесь что в браузере отключена работа через прокси, проксификаторы не запущены и заходите на сайт рамблера. В окне ниже должны появится пакеты, кликнув на которые Вы убедитесь, что в них присутствует только Ваш IP-адрес (сноска 37) и IP-адрес сервера рамблера (сноска 38). Далее настройте ваш браузер на работу через прокси-сервер, зайдите на сайт рамблера и вы увидите, что новых пакетов Wireshark не выводит, а сайт работает. Это свидетельствует о том что трафик пошел через прокси-сервер, а не напрямую на рамблер.
Вводим в условие фильтра IP-адрес прокси-сервера (сноска 35), применяем фильтр (сноска 36) и убеждаемся, что IP-источника, по-прежнему Ваш (сноска 41), а вот IP-назначения уже прокси-сервера (сноска 42). Если Вы кликните на любой HTTP-накет, то увидите в его поле данных, запросы на рамблер (сноска 43)
Проверка по TCP-портам может пригодиться при контроле трафика на ресурсы, которые имеют несколько серверов в разными IP. Например почтовый сервис mail.ru расмолагаеся на многоих серверах и при каждом обращении Вас будут отправлять на разные сервера с разными IP. Однако передача почты через любой IP сервиса mail.ru всегда ведется по одному и тому же 25-му порту. Или 465-му порту, если почта передается по шифрованному протоколу TLS.
В статье о принципах работы проксификаторов мы рассказывали об инкапсуляции пакетов одного прикладного уровня (например SMTP) в пакеты другого протокола прикладного уровня HTTP. Проверим это теперь при помощи снифера.
1. Выставите условия фильтра как показано под сноской 44. И включите фильтр кликом на кнопку под сноской 452. Отключите проксификатор, если он у Вас включен, настройте Ваш почтовый клиент на прямое взаимодействие с почтовым сервером и отправьте письмо. Снифер должен отобразить пакеты, у которых TCP-порт источника будет произвольный (сноска 47), а TCP-порт назначения должен быть 25, если Ваш клиент работает по протоколу SMTP без шифрования или 465, если Ваш почтовый клиент использует шифрование TLS (сноска 48).
3. Теперь включите проксификатор (сноска 49) и отправьте почтовое сообщение еще раз. TCP-порт источника во всех пакетах опять будет произвольный (сноска 51), а вот пакеты с TCP-портами назначения 25 и 465 должны пропасть и вместо них должны быть пакеты исключительно с TCP-портом назначения прокси сервера 7951 (сноска 52). Это и будет свидетельствовать о том, что при включенном проксификаторе Proxyfier весь трафик направляется на прокси-сервер. IP-адрес прокси-сервера будет отображен под сноской 50. Для корректной работы Проксифера мы рекомендуем использовать платные прокси
На рисунке ниже подробно рассмотен HTTP-пакет (сноска 53), с помещенным в него методом CONNECT, который указывает прокси-серверу подключиться к северу аутентификации mail.ru 217.69.139.160 на порт 465 для шифрованой педачи почты по протоколу TLS . Кликните на этот пакет и ниже Вы увидите, что пакет направляется через прокси-сервер IP (сноска 54) и порт TCP (сноска 55). Раскройте плюсиком содержимое пакета HTTP (Hypertext Transfer Protocol) и Вы увидите метод CONNECT, помещенный в него (сноска 56)