November 18

Изучаем инструменты мониторинга сети для Linux: tcpdump, wireshark и iftop

Это перевод оригинальной статьи A Guide to Monitoring and Analyzing Network Traffic with Linux

Перевод сделан специально для телеграм-канала Мониторим ИТ. Подписывайтесь! Там еще больше полезных постов о мониторинге.

Мониторинг и анализ сетевого трафика критически важны для понимания производительности сети, выявления проблем безопасности и устранения неполадок подключения. Linux предлагает много мощных инструментов, которые помогают администраторам захватывать, проверять и анализировать сетевой трафик в режиме реального времени. Три наиболее часто используемых инструмента — это tcpdump, wireshark и iftop.

В этой статье рассказывается, как использовать эти инструменты для мониторинга и устранения неполадок в сети.

Почему важен мониторинг сети

Мониторинг сети позволяет:

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

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

1. tcpdump: анализатор пакетов с управлением через командную строку

tcpdump — это утилита командной строки для перехвата и анализа сетевого трафика. Она позволяет отслеживать пакеты на уровне сетевого интерфейса, фильтруя их по IP-адресу, порту, протоколу и другим параметрам. Это один из самых мощных и распространённых анализаторов пакетов, доступных в Linux.

Базовый синтаксис tcpdump

sudo tcpdump [options] [filter]
  • options: укажите выходные данные (например, количество пакетов для захвата, формат вывода и т. д.).
  • filter: захватывайте только определенный трафик (например, по IP, порту или протоколу).

Захват сетевого трафика с помощью tcpdump

Чтобы захватить весь трафик на определенном сетевом интерфейсе (например, eth0) выполните:

sudo tcpdump -i eth0

Это позволит отображать перехваченные пакеты прямо в терминале. Однако при большом трафике это может быстро стать трудновыполнимым.

Фильтрация трафика по IP-адресу

Чтобы перехватывать трафик только с определенного IP-адреса (например, 192.168.1.100) выполните:

sudo tcpdump -i eth0 host 192.168.1.100

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

Фильтрация трафика по порту

Выполните команду ниже, чтобы захватить трафик на определенном порту (например, HTTP-трафик на порту 80):

sudo tcpdump -i eth0 port 80

Вы также можете комбинировать фильтры для захвата трафика с определенного IP-адреса и порта:

sudo tcpdump -i eth0 host 192.168.1.100 and port 80

Сохранение захваченных пакетов в файл

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

sudo tcpdump -i eth0 -w capture.pcap

Перехваченный трафик будет записан в файл с именем capture.pcap. Затем вы можете загрузить этот файл в Wireshark для детального анализа.

Чтение файла захвата при помощи tcpdump

Чтобы прочитать сохраненный файл в формате .pcap с помощью tcpdump, выполните:

tcpdump -r capture.pcap

Это отобразит содержимое файла захвата в терминале.

2. Анализ трафика с помощью wireshark: анализатор сетевых протоколов с графическим интерфейсом

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

Установка wireshark

Чтобы установить wireshark:

  • Debian/Ubuntu :
sudo apt update sudo apt install wireshark
  • CentOS/RHEL :
sudo yum install wireshark

Захват пакетов с помощью Wireshark

После установки запустите Wireshark из среды рабочего стола или воспользуйтесь терминалом:

wireshark &

Откроется Wireshark с графическим интерфейсом. Выберите сетевой интерфейс, который хотите отслеживать (например, eth0или wlan0), затем нажмите «Start», чтобы начать захват пакетов.

Фильтрация трафика в Wireshark

Wireshark даёт мощные возможности фильтрации, позволяющие сосредоточиться на определённых типах трафика. Вот некоторые распространённые фильтры:

  1. Фильтр по IP-адресу :
ip.addr == 192.168.1.100

2. Фильтр по порту :

tcp.port == 80

3. Фильтр по протоколу :

  • Чтобы просмотреть только HTTP-трафик:
http

Фильтры можно комбинировать для более детального анализа, например, для фильтрации всего HTTP-трафика с определенного IP-адреса:

ip.addr == 192.168.1.100 and http

Проверка пакетов в wireshark

Wireshark декодирует протоколы в перехваченных пакетах, позволяя анализировать отдельные уровни (Ethernet, IP, TCP, HTTP и т. д.). Это полезно для анализа содержимого пакетов, например HTTP-заголовков, DNS-запросов и даже зашифрованного трафика (SSL/TLS).

Сохранение и открытие файлов захвата

Вы можете сохранить сеанс захвата, выбрав «File» > «Save». Сохраните его .pcap для последующего анализа. Чтобы открыть ранее сохранённый файл, выберите «File» > «Open» и выберите нужный файл.

3. Мониторинг использования канала с помощью iftop

iftop — это консольный инструмент в режиме реального времени, который отображает использование канала для каждого хоста. Он показывает, какие соединения потребляют канал и какой объём данных передаётся по сети. Он особенно полезен для выявления «пожирателей» полосы пропускания или мониторинга производительности сети с течением времени.

Установкаiftop

Для установки iftop выполните:

  • Debian/Ubuntu :
sudo apt update sudo apt install iftop
  • CentOS/RHEL :
sudo yum install iftop

Использование iftop для мониторинга пропускной способности

Для мониторинга сетевого трафика на определенном интерфейсе (например, eth0), используйте:

sudo iftop -i eth0

Интерфейс iftop отображает список хостов и трафик между ними в режиме реального времени. Он показывает:

  • Имена хостов/IP-адреса: IP-адреса или имена хостов подключенных устройств.
  • Использование полосы пропускания: трафик, проходящий между устройствами (в Кбит/с/Мбит/с).
  • Совокупный трафик: данные, переданные за контролируемый период.

Фильтрация трафика с помощью iftop

Вы можете ограничить отображаемый трафик, применив фильтры. Например, чтобы просматривать трафик только из определённой подсети (например, 192.168.1.0/24):

sudo iftop -F 192.168.1.0/24

Это ограничивает отображение трафика в пределах указанной подсети.

Интерпретация выходных данных iftop

iftop предоставляет подробную статистику трафика в трех столбцах:

  • 2 сек.: Использование полосы пропускания за последние 2 секунды.
  • 10 сек.: Использование полосы пропускания за последние 10 секунд.
  • 40 сек.: Использование полосы пропускания за последние 40 секунд.

Это поможет быстро оценить, какие устройства потребляют больше всего пропускной способности, и выявить закономерности использования сети.

Дополнительные опции iftop

  • Ограничение локального трафика: чтобы отобразить только входящий и исходящий трафик локальной сети выполните:
sudo iftop -N -n
  • Это отключает разрешение имен хостов и отображает только IP-адреса, что снижает накладные расходы и позволяет сосредоточиться на внутреннем трафике.

Сортировка по трафику:

  • Вы можете сортировать трафик по использованию полосы пропускания, нажав t клавишу во время работы iftop.

Выбор правильного инструмента для определенной задачи

Каждый из перечисленных инструментов подходит под определенную задачу:

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

Заключение

Мониторинг сетевого трафика необходим для поддержания безопасности сети, оптимизации производительности и устранения неполадок подключения. tcpdump, Wireshark и iftop — это мощные инструменты, которые предоставляют ценную информацию о поведении сети, каждый из которых имеет свои сильные стороны.

Подписывайтесь на телеграм-канал Мониторим ИТ, там еще больше полезной информации о мониторинге!