Repeater-zone.ru

ПК Репитер
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Команда tcpdump для начинающих

Команда tcpdump для начинающих

Оригинал: Linux tcpdump Command Tutorial for Beginners (8 Examples)
Автор: Himanshu Arora
Дата публикации: 17 октября 2018 года
Перевод: А. Кривошей
Дата перевода: август 2019 г.

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

В этой статье мы обсудим основы использования рассматриваемой утилиты — tcpdump. Необходимо отметить, что все приведенные здесь примеры были протестированы на машине с Ubuntu 18.04 LTS.

Установка tcpdump

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

Чаще всего для установки используются репозитории Ubuntu/Debian или Fedora/Red Hat/CentOS. Для осуществления поставленной задачи потребуется ввести в команд.

# apt-get install tcpdump

# yum install tcpdump

# dnf install tcpdump

Принцип работы

Перед началом использования утилиты TCPdump надо разобраться в том, какие она поддерживает сетевые интерфейсы. Для выполнения основных задач понадобятся права суперпользователя. Потому в первых командах важно указывать параметр, который обозначается как sudo и имя администратора, после нажатия Enter ввести пароль.

Сочетание клавиш Ctrl + C останавливает работу того или иного заданного параметра. Все перехваченные пакеты будут отображаться в выводе практически сразу.

Формат перехвата

Формат перехвата имеет следующий вид:

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

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

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

Что может узнать пользователь конкретно:

  1. Длина поля заголовка.
  2. Версия протокола TCP.
  3. Время жизни пакета TLL.

Проверка контрольных сумм выводится при использовании команды –vv. В некоторых случаях подробно отображается содержимое пакетов.

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

  1. Несколько видов протоколов, включая udp, tcp, decnet, rarp, arp, ip6, ip. wlan, tr, fddi, ether.
  2. DST – параметр, связанный с получателем.
  3. SRC – отправитель.
  4. Port – указание адреса порта.
  5. Net – адреса сетей, подсетей.
  6. Proto – указание протокола.
  7. IP – ip адрес.
  8. Host – имя хоста.

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

Используем tcpdump для анализа и перехвата сетевого трафика

Утилита tcpdump — отличный инструмент командной, который способен перехватывать и анализировать сетевой трафик. Может оказаться большим подспорьем при решении сетевых проблем. Пакеты можно сохранить в файл и анализировать позже. Рекомендуется время от времени запускать эту утилиту, чтобы следить за своей сетью.

  • Вывод tcpdump
  • Установка tcpdump
  • Опции tcpdump
  • Фильтры tcpdump:
    • Фильтр выражений
    • Фильтр портов
    • Фильтр хостов
    • Комбинирование фильтров

    Вывод tcpdump

    Утилита tcpdump позволяет проверять заголовки пакетов TCP/IP и выводить одну строку для каждого из пакетов. Она будет делать это до тех пор, пока не нажать Ctrl + C.

    Давайте рассмотрим одну строку из примера вывода:

    Каждая строка включает:

    • Метка времени Unix (20: 58: 26.765637)
    • протокол (IP)
    • имя или IP-адрес исходного хоста и номер порта (10.0.0.50.80)
    • имя хоста или IP-адрес назначения и номер порта (10.0.0.1.53181)
    • Флаги TCP (Flags [F.]). Указывают на состояние соединения и могут содержать более одного значения:
      • o S — SYN. Первый шаг в установлении соединения
      • F — FIN. Прекращение соединения
      • — ACK. Пакет подтверждения принят успешно
      • P — PUSH. Указывает получателю обрабатывать пакеты вместо их буферизации
      • R — RST. Связь прервалась

      Установка tcpdump

      В дистрибутивах на основе Debian tcpdump можно установить с помощью команды APT:

      В дистрибутивах на основе RPM tcpdump можно установить с помощью YUM:

      В RHEL 8 с использование DNF:

      Опции tcpdump

      Запускать tcpdump нужно с правами root. Tcpdump включает в себя множество опций и фильтров. При запуске tcpdump без каких-либо параметров произойдет перехват всех пакетов, проходящих через интерфейс по умолчанию.

      Вывести список доступных системе сетевых интерфейсов, в которых tcpdump может захватывать пакеты:

      Очень полезно для систем, в которых нет команды для вывода списка интерфейсов.

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

      • -v увеличивает количество отображаемой информации о пакетах
      • -vv дает еще более подробную информацию

      По умолчанию tcpdump преобразует IP-адреса в имена хостов, а также использует имена служб вместо номеров портов.

      • -n Если DNS не работает или вы не хотите, чтобы tcpdump выполнял поиск имени.
      • -c захватывает только набор строк, например, 5:
      • -tttt для использования более удобных временных меток (по умолчанию используются временные метки Unix)

      Фильтры tcpdump

      Фильтр выражений

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

      Самые распространенные фильтры :

      • port
      • host
      • src
      • dst
      • tcp
      • udp
      • icmp

      Фильтр портов

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

      Фильтр хостов

      Для перехвата пакетов, приходящих или исходящих от определенного хоста. Например, IP-адрес 10.0.2.15:

      Для перехвата пакетов определенных типов протоколов. Например, icmp, на интерфейсе eth1:

      Комбинирование фильтров

      Фильтры можно комбинировать с помощью операторов:

      • AND
      • OR
      • NOT

      Это позволит писать команды, которые могут более точно изолировать пакеты. Например, пакеты с определенного IP-адреса и для определенного порта:

      Если нужно перехватить все пакеты кроме ICMP, используем оператор NOT:

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

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

      Следующая команда сохраняет 10 строк вывода интерфейса eth1 в icmp.pcap.

      Прочитать этот файл можно с помощью опции -r

      Просмотр сведений о пакете

      Пока мы видели только заголовки пакетов, а для просмотра содержимого нужно использовать параметр -A. Вывод содержимого будет в формате ASCII.

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

      Вывод

      Утилита tcpdump проста в настройке и освоении. Необходимо лишь немного разобраться с:

      • выводом
      • фильтрами
      • опциями

      После чего tcpdump станет отличным помощником в вопросах обеспечения безопасности вашей сети.

      Перед тем как перейти к примерам работы с утилитой, давайте рассмотрим ее синтаксис и основные опции. Команда имеет такой синтаксис:

      $ tcpdump опции -i интерфейс фильтры

      При вызове обязательно нужно передать интерфейс, который будете отслеживать. Если интерфейс не указать, то будет использован первый в списке. Опции настраивают отображение и основные возможности утилиты, а фильтры позволяют отсеять ненужные пакеты. А теперь рассмотрим основные опции:

      • -A — выводить все пакеты в формате ASCII;
      • -c — закрыть программу после перехвата n-ого количества пакетов;
      • -C — при записи пакетов в файл, проверять размер файла, и если он больше заданного — создать новый файл;
      • -D — вывести список доступных сетевых интерфейсов;
      • -e — выводить информацию уровня соединения для каждого пакета, это может быть полезно, например, для отображения MAC адреса;
      • -f — выводить доменное имя для ip адресов;
      • -F — читать пакеты из файла, а не интерфейса;
      • -G — создавать новый файл лога через указанный промежуток времени;
      • -H — обнаруживать заголовки 802.11s;
      • -i — имя интерфейса для перехвата пакетов. Вы можете захватывать пакеты со всех интерфейсов, для этого укажите any;
      • -I — переключить интерфейс в режим монитора для захвата всех проходящих пакетов;
      • -j — установить формат Timestamp для записи пакетов;
      • -J — посмотреть доступные Timestamp;
      • -K — не проверять контрольные суммы пакетов;
      • -l — добавить поддержку прокрутки к выводу;
      • -L — вывести поддерживаемые протоколы подключения для интерфейса;
      • -n — не отображать доменные имена;
      • -r — прочитать пакеты из файла, созданного с помощью -w;
      • -v, -vv, -vvv — более подробный вывод;
      • -q — выводить минимум информации;
      • -w — записать вывод в файл;
      • -Z — пользователь, от имени которого будут создаваться файлы.

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

      Анализатор пакетов: 15 примеров команды tcpdump

      FavoriteДобавить в избранное

      Главное меню » Операционная система Linux » Анализатор пакетов: 15 примеров команды tcpdump

      Анализатор пакетов: 15 примеров команды tcpdump

      Команда tcpdump будет работать на большинстве разновидностей операционной системы UNIX. tcpdump позволяет сохранять захваченные пакеты, так что мы можем использовать захваченный пакет для дальнейшего анализа. Сохраненный файл может быть просмотрен той же командой tcpdump. Мы также можем использовать программное обеспечение с открытым исходным кодом, как Wireshark для чтения файлов tcpdump PCAP.

      На этом уроке мы рассмотрим некоторые практические примеры того, как использовать команду tcpdump.

      1. Захват пакетов от конкретного интерфейса локальных сетей с использованием tcpdump -i

      При выполнении команды tcpdump без какого-либо варианта, он будет захватывать все пакеты, проходящие через все интерфейсы. Опция -i команды tcpdump, позволяет фильтровать по определенному интерфейсу Ethernet.

      В этом примере, tcpdump захватил все пакеты потока в интерфейсе eth1 и отображает в стандартном выводе.

      2. Захват только N-ое число пакетов с помощью tcpdump -c

      При выполнении команды tcpdump дает пакеты, пока вы не отмените команду tcpdump. Используя опцию -c вы можете указать количество пакетов для захвата.

      Команда tcpdump захватили только 2 пакета от интерфейса eth0.

      3. Выод на дисплей перехваченных пакетов в ASCII, используя tcpdump -a

      Следующий синтаксис tcpdump печатает пакет в ASCII.

      4. Вывод на дисплей перехваченных пакетов в HEX и ASCII с использованием tcpdump -xx

      Некоторые пользователи могли бы анализировать пакеты в шестнадцатеричных значениях. tcpdump предоставляет возможность печатать пакеты в обоих форматах ASCII и HEX.

      5. Захват пакетов и запись в файл с помощью tcpdump -w

      tcpdump позволяет сохранить пакеты в файл, а затем вы можете использовать файл пакетов для дальнейшего анализа.

      Опция -w записывает пакеты в указанный файл. Расширение файла должно быть .pcap, который может быть прочитан любым протоколом сетевого
      анализатора.

      6. Чтение пакетов из сохраненного файла с помощью tcpdump -r

      Вы можете прочитать захваченный файл PCAP и просматривать пакеты для анализа, как показано ниже.

      7. Захват пакетов с IP-адреса с помощью tcpdump -n

      Во всех приведенных выше примерах, он печатает пакеты с адресом DNS, но не адрес IP. Следующий пример захватывает пакеты и отображает IP-адрес участвующей машины.

      8. Захват пакетов с надлежащей временной меткой с использованием считываемой tcpdump -tttt

      9. Пакеты прочитанные больше, чем n байт

      Вы можете получить больше пакетов, чем n числа байтов, используя фильтр «greater» через команду tcpdump

      10. Получение пакетов только определенного типа протокола

      Вы можете получить пакеты в зависимости от типа протокола. Вы можете указать один из этих протоколов – fddi, tr, wlan, ip, ip6, arp, rarp, decnet, tcp и udp. Следующий пример захватывает только пакеты arp, протекающие через интерфейс eth0.

      11. Чтение пакетов меньше, чем n байтов

      Вы можете получить только пакеты меньше, чем n байтов, используя фильтр «less» с помощью команды tcpdump

      12. Прием пакетов потоков на определенный порт, используя порт tcpdump

      Если вы хотите знать все пакеты, полученные по определенному порту на компьютере, вы можете использовать команду tcpdump, как показано ниже.

      В данном случае порт 22 отключен.

      13. Захват пакетов для конкретного адресата ip-адреса и порта

      Эти пакеты будут иметь номера источника и назначения ip-адреса и порт. Используя tcpdump мы можем применить фильтры на источнике или назначения IP и номер порта. Следующая команда перехватывает поток пакетов в eth0, с конкретного IP-адреса назначения и номера порта 22.

      14. Захват пакетов TCP между двумя узлами

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

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

      15. Фильтр пакетов tcpdump – захват всех, кроме пакетов arp и rarp

      В команде tcpdump, вы можете указать условие “and”, “or” и “not” для фильтрации пакетов.

      Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

      Выводы

      Анализ TCP с помощью Wireshark и других программ

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

      Подписывайтесь на рассылку, делитесь статьями в соцсетях и задавайте вопросы в комментариях!

      голоса
      Рейтинг статьи
      Читать еще:  Пропали значки с рабочего стола в Windows 7: как вернуть обратно
Ссылка на основную публикацию
ВсеИнструменты
Adblock
detector