Анализ сетевого трафика с помощью tcpflow в Linux

Анализ сетевого трафика с помощью tcpflow в Linux

Рубрики:

Linux, Сети Linux

Метки:

linux, TCP

Утилита tcpflow — это инструмент командной строки в Linux, предназначенный для перехвата информации, передаваемой в рамках TCP-соединений, с последующей реконструкцией потоков данных (например, HTTP-запросов, передачи файлов и так далее). Проще говоря, с помощью этой команды можно увидеть, что на самом деле было отправлено или получено по сети — например, полное содержимое веб-запроса, — а не просто низкоуровневые сетевые пакеты.

В этой статье мы расскажем, как установить и использовать tcpflow в ОС Linux.

Содержимое:

  1. Установка утилиты tcpflow в ОС Linux
  2. Синтаксис команды tcpflow
  3. Запуск утилиты tcpflow
  4. Создание отдельной папки для файлов tcpflow
  5. Вывод информации на экран без сохранения в файлы
  6. Перехват трафика с определенного порта
  7. Сохранение данных в расширенном формате
  8. Выводы

Установка утилиты tcpflow в ОС Linux

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

Для Debian / Ubuntu Linux:

 

install tcpflow

Для RHEL / CentOS Linux:

 

Для Fedora 22+ Linux:

 

Читайте также: Команда iptraf в Linux с примерами.

Синтаксис команды tcpflow

Синтаксис tcpflow довольно прост и выглядит следующим образом:

 

Где:

  • [OPTIONS] — необязательные опции, которые расширяют функционал утилиты;
  • [ARGUMENTS] — аргументы.

Чтобы ознакомиться со всеми опциями команды tcpflow, выполните в терминале:

 

tcpflow help

Читайте также: Команда ping в скриптах Bash.

Запуск утилиты tcpflow

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

 

run tcpflow

В процессе работы программа записывает всю собранную информацию в специальные файлы в текущей рабочей директории. Одним из таких файлов является XML-документ report.xml, содержащий краткое описание TCP-потоков. Его содержимое может варьироваться в зависимости от настроек, но обычно включает базовые метаданные о каждом TCP-потоке такие, как:

  • IP-адреса и порты источника и назначения;
  • временные метки начала и окончания потока;
  • имена файлов, в которых были сохранены данные;
  • размер потока и другую информацию.

Также tcpflow сортирует все данные по каждому потоку в отдельные файлы, названия которых записаны в следующем формате:

 

Где:

  • <source IP>IP-адрес источника;
  • <source port> — порт источника;
  • <destination IP>IP-адрес назначения;
  • <destination port> — порт назначения.

Вы можете убедиться, что tcpflow создает такие файлы в текущем каталоге, выполнив команду ls:

 

tcpflow files

Читайте также: 12 примеров команды ss в Linux.

Создание отдельной папки для файлов tcpflow

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

Чтобы указать утилите tcpflow создавать файлы в конкретной папке, используйте опцию -o, передав в качестве аргумента путь к нужной директории. Например:

 

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

 

store tcpflow files

Вывод информации на экран без сохранения в файлы

Если Вам не нужно, чтобы утилита tcpflow создавала файлы, можно указать ей выводить всю полученную информацию прямо в окно терминала. Для этого запустите команду с опцией -c:

 

write to stdout

Читайте также: Мониторинг использования сети с помощью nethogs в Linux.

Перехват трафика с определенного порта

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

 

capture data on specific port

Сохранение данных в расширенном формате

Режим verbose предоставляет дополнительные сведения о процессе захвата трафика. Он позволяет получить более подробную информацию о пакетах, например:

  • состояние TCP-соединений и флаги;
  • повторная сборка данных и возможные ошибки;
  • временные метки и статистика потоков (например, длительность и количество переданных байт).

Чтобы запустить команду tcpflow с включенным расширенным режимом, примените опцию -v:

 

tcpflow verbose mode

Читайте также: 5 способов узнать максимальную скорость сетевой карты в Linux.

Выводы

Инструмент tcpflow собирает полезную информацию о TCP-соединениях. Благодаря полученным данным пользователи могут анализировать сетевой трафик на предмет ошибок, несанкционированного доступа или потенциальных угроз.

Спасибо за время, уделенное прочтению статьи!

Если возникли вопросы — задавайте их в комментариях.

Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!

Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Ciscoкурсы по кибербезопасностиполный курс по кибербезопасностикурсы DevNet / DevOps (программируемые системы) от Академии Ciscoкурсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).

Курсы Cisco, Linux, кибербезопасность, DevOps / DevNet, Python с трудоустройством!

Спешите подать заявку! Группы стартуют 25 января, 26 февраля, 22 марта, 26 апреля, 24 мая, 21 июня, 26 июля, 23 августа, 20 сентября, 25 октября, 22 ноября, 20 декабря.
Что Вы получите?
  • Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
  • Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
  • Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
Как проходит обучение?
  • Проведем вечерние онлайн-лекции на нашей платформе.
  • Согласуем с вами удобное время для практик.
  • Если хотите индивидуальный график — обсудим и реализуем.
  • Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
  • Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
А еще поможем Вам:
  • отредактировать или создать с нуля резюме;
  • подготовиться к техническим интервью;
  • подготовиться к конкурсу на понравившуюся вакансию;
  • устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.
Чтобы учиться на курсах Cisco, Linux LPI, кибербезопасность, DevOps / DevNet, Python, подайте заявку или получите бесплатную консультацию.

Рубрики:

Linux, Сети Linux

Метки:

linux, TCP

Больше похожих постов

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Заполните поле
Заполните поле
Пожалуйста, введите корректный адрес email.
Вы должны согласиться с условиями для продолжения


Поиск по сайту
Лучшее
Популярное
Рубрики