Изучаем инструменты мониторинга сети для 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
sudo apt update sudo apt install wireshark
sudo yum install wireshark
Захват пакетов с помощью Wireshark
После установки запустите Wireshark из среды рабочего стола или воспользуйтесь терминалом:
wireshark &
Откроется Wireshark с графическим интерфейсом. Выберите сетевой интерфейс, который хотите отслеживать (например, eth0или wlan0), затем нажмите «Start», чтобы начать захват пакетов.
Фильтрация трафика в Wireshark
Wireshark даёт мощные возможности фильтрации, позволяющие сосредоточиться на определённых типах трафика. Вот некоторые распространённые фильтры:
ip.addr == 192.168.1.100
tcp.port == 80
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 выполните:
sudo apt update sudo apt install iftop
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 — это мощные инструменты, которые предоставляют ценную информацию о поведении сети, каждый из которых имеет свои сильные стороны.
Подписывайтесь на телеграм-канал Мониторим ИТ, там еще больше полезной информации о мониторинге!