Если у вас Unix или Unix-подобная операционная система (Linux, Mac OS), вы можете использовать tcpdump для проверки сетевого трафика. Программа tcpdump – это утилита командной строки, которую можно установить бесплатно. Обычно он не интегрируется в операционные системы, поэтому вам необходимо установить его из реестра tcpdump GitHub или с официального сайта tcpdump.
Элементы tcpdump
Утилита захвата пакетов, используемая tcpdump, предоставляется libpcab, которая представляет собой библиотеку процедур C / C ++. Основная программа tcpdump – это интерфейс для процесса захвата пакетов. При запуске он запускает процесс libcap для захвата пакетов, а затем отображает их содержимое на экране. Если при запуске программы не указано ограничение на количество перехватываемых пакетов, она будет работать вечно. Обработка затем завершается сигналом прерывания (Control-C).
Программа запускается из командной строки и включает в себя ряд параметров, которые обозначены флагами. Эти флаги изменяют поведение программы, заставляя ее выбирать пакеты, соответствующие заданному шаблону, ограничивать время ее выполнения или заставлять ее читать сохраненные пакеты из файла, а не из сетевого интерфейса..
Формат Tcpdump
Команда tcpdump может быть введена сама по себе или с параметрами, параметрами и / или регулярными выражениями. Ни один из этих элементов не является обязательным, и порядок не важен.
ТСРйитр <-option_identifier>
Параметры Tcpdump
Команда tcpdump сопровождается параметрами, которые также известны как флаги. Каждый из них обозначается дефисом, за которым следует буква. Ниже приведен список каждого из этих флагов.
– печатать пакеты в ASCII без заголовков канального уровня
-б показать номер AS в формате ASDOT
-В размер буфера в единицах КиБ (1024 байта
-с подсчитывать – предел пакетов для захвата
-С размер файла – процесс создаст новый файл, как только этот предел размера файла будет заполнен; Размер х 1 миллион байт
-d Дамп скомпилированного кода сопоставления пакетов в ASCII
-дд Дамп код сопоставления пакетов как С фрагмент программы
-ддд Дамп код сопоставления пакетов в виде десятичных чисел с предшествующим счетом
-D Список всех доступных интерфейсов
-е Напечатайте заголовок уровня связи в каждой строке дампа
-Е spi @ ipaddr algo: секрет – для расшифровки пакетов ESP IPsec:
СПИ такое индекс параметра безопасности
IPадр адрес получателя в пакете
алго алгоритм по умолчанию дез-CBC и поле не является обязательным.
Возможные значения:
- дез-CBC
- 3des-CBC
- Blowfish-CBC
- rc3-CBC
- CAST128-CBC
секрет текст ASCII для секретного ключа ESP Если ему предшествует 0x, то это шестнадцатеричное значение
-е Печатайте «чужие» IPv4-адреса в числовом, а не в символическом
-F файл – использовать файл в качестве входных данных для выражения фильтра
-грамм rotate_seconds – период, чтобы повернуть файл сохранения опции -w, добавит метку времени к имени
-час Напечатайте строки версии tcpdump и libpcap, напечатайте сообщение об использовании и выйдите
-ЧАС Определить заголовки ячеистой сети 802.11s
-я интерфейс – интерфейс для прослушивания, по умолчанию в алфавитном порядке самое низкое имя
-я режим монитора | немедленный режим – удаляет буферизацию
-J tstamp_type – установите тип метки времени для захвата в tstamp_type
-J tstamp_precision – установить точность отметки времени (микро или нано) по умолчанию микро. Если tstamp_precision имеет значение null, список типов временных меток и выход
-К Не проверяйте контрольные суммы
-L Стандартная строка буферизована. Например. tcpdump -l | тройник или tcpdump -l > Дат & хвост-дата
-L Вывести список известных типов каналов передачи данных для интерфейса в указанном режиме и выйти
-м модуль – загрузить определения модуля SMI MIB из файла модуль.
-M секрет – общий секретный параметр для проверки с помощью опции TCP-MD5
-N Не конвертируйте адреса (например, адреса хоста, номера портов и т. Д.) В имена
-N Не печатать доменное имя, квалифицирующее имена хостов
-# Напечатайте дополнительный номер пакета в начале строки
-О Не запускайте оптимизатор кода соответствия пакетов
-п Не переводите интерфейс в беспорядочный режим
-Q направление – отправить / получить направление. Возможно в, вне, или INOUT
-Q Печатайте меньше протокольной информации
-р файл – читать пакеты из файл. Уточнить – для стандартного ввода
-S Вывести абсолютные порядковые номера TCP
-s snaplen – ворчать snaplen байтов из каждого пакета, не по умолчанию 262144 байта
-T тип – интерпретировать пакеты как указано тип. Варианты:
- AODV Специальный протокол векторного расстояния по требованию
- карп Протокол общего резервирования адресов
- cnfp Протокол Cisco NetFlow
- LMP Протокол управления ссылками
- МПГ Прагматичный General Multicast
- pgm_zmtp1 ZMTP / 1.0 внутри PGM / EPGM)
- соответственно REdis Протокол Сериализации
- радиус РАДИУС
- RPC Удаленный вызов процедур
- РТП Протокол приложений реального времени
- RTCP Протокол управления приложениями реального времени
- SNMP Простой протокол управления сетью
- TFTP Тривиальный протокол передачи файлов
- НДС Visual Audio Tool
- термометру распределенная белая доска
- zmtp1 ZeroMQ Протокол передачи сообщений 1.0
- vxlan Виртуальная расширяемая локальная сеть
-T Не печатайте метку времени на каждой строке дампа
-тт Выведите метку времени как смещение с 1 января 1970 года на каждой строке дампа
-ТТТ Распечатать дельта (микросекундное разрешение) между текущей и предыдущей строкой
-TTTT Напечатайте метку времени: дату, час, минуту, секунду на каждой строке дампа
-TTTTT Распечатать дельта (микросекундное разрешение) между текущей и первой строкой
-U Печать недекодированных ручек NFS
-U Пакет с буферизацией
-v Чуть более подробный вывод
-ст Более подробный вывод
-VVV Самый подробный вывод
-В файл – прочитать список имен файлов из файл. Стандартный ввод используется, если файл является –
-вес файл – записать вывод в файл
-W предел – максимальное количество файлов, которые будут созданы -С и -грамм параметры
-Икс Вывести данные каждого пакета минус заголовок уровня ссылки в шестнадцатеричном виде
-хх Распечатать данные каждого пакета, в том числе заголовок уровня ссылки в шестнадцатеричном виде
-Икс Вывести данные каждого пакета минус заголовок уровня канала в шестнадцатеричном и ASCII
-XX Распечатать данные каждого пакета, в том числе заголовок уровня ссылки, в шестнадцатеричном и ASCII.
-Y datalinktype – Установите тип канала передачи данных, который будет использоваться при захвате пакетов datalinktype
-Z postrotate-команда – обрабатывать файлы сохранения обычно со сжатием, например -z gzip
-Z пользователь – изменить идентификатор пользователя на пользователь и идентификатор группы к основной группе пользователь
Параметры Tcpdump
Параметры для tcpdump также известны как примитивы. Они указывают, должен ли захват пакета получать данные только от указанных хостов. Эти параметры также могут быть выражены как условия с использованием булевых операторов и, или, и не. Вам не нужно ставить знак равенства (=) между именем параметра и его значением, и вам не нужно ставить параметры с пунктуацией. В каждом случае вам просто нужно место.
Наиболее часто используемым из этих параметров является хост, который позволяет ограничить перехват передач только одним источником. В каждом случае имя устройства в качестве значения параметра можно заменить его адресом. Где параметр имеет ДСТ версия, эта вариация ограничивает вывод только пакетами, которые имеют этот атрибут для своего назначения. Параметры, которые включают ЦСИ искать пакеты, которые имеют заданное значение в данных, связанных с их происхождением.
Вот параметры параметра:
хозяин host_name – также хост dst или Src Host.
Может также дополняться IP, агр, или RARP
эфир ehost – значение из / etc / ethers или число. Также эфирный источник и эфир дест.
шлюз хозяин – получить пакеты, которые прошли через шлюз хозяин
сеть network_num – IP источника или назначения включает в себя network_num Также чистая сеть и Src Net
порт номер | имя – также порт dst и порт src. Можно с ТСР или УДП ограничить протокол
IP Proto протокол – захватывать IP-пакеты указанного протокола. Имя должно быть в / etc / protocol
эфир прото протокол – захватить пакет типа эфирного протокола. Варианты для протокол число или:
- IP
- ip6
- агр
- RARP
- разговор
- atalkarp
- DECnet
- decdts
- decdns
- lanbridge
- Lat
- mopdl
- moprc
- щенок
- SCA
- фея
- СТП
- Vexp
- vprod
- хпе
Broadcast Захватывает широковещательные пакеты Ethernet. Также написано как эфирная трансляция
ip трансляция Захватывает пакеты широковещания ip
многоадресного Захватывает многоадресные пакеты Ethernet. Также написано как эфирный многоадресный
ip multicast Захватывает многоадресные IP-пакеты
хост decnet host_name – если источник или место назначения DECNET host_name
Decnet SRC host_name – захватить, если источником DECNET является host_name
Decnet DST host_name – захватить, если пункт назначения DECNET host_name
Wlan Host ehost – если первый, второй, третий или четвертый адрес IEEE 802.11 ehost
WLAN Addr1 ehost – захватить, если первый адрес IEEE 802.11 ehost
WLAN Addr2 ehost – захватить, если второй адрес IEEE 802.11 ehost
WLAN Addr3 ehost – захватить, если третий адрес IEEE 802.11 ehost
WLAN Addr4 ehost – если четвертый адрес IEEE 802.11 ehost. Используется только для WDS
тип тип – захватить, если тип кадра IEEE 802.11 тип, который является числом или:
- данные
- MGT
- CTL
подтип подтип – захватить, если кадр IEEE 802.11 подтип, который является числом или:
- assocreq
- assocresp
- reassocreq
- reassocresp
- probereq
- proberesp
- маяк
- ATIM
- disassoc
- авт
- deauth
- данные
реж реж – захватить, если направление кадра IEEE 802.11 реж, который является числом или:
- поклоны
- TODS
- fromds
- dstods
Выражение Tcpdump
Сегмент выражений команды tcpdump дает вам возможность добавить немного программирования к вашему выбору пакетов. Однако, в отличие от обычной программы, этот набор инструкций должен быть записан в одну строку. Если вы часто пользуетесь Unix или Linux, вы привыкнете к регулярным выражениям сценариев оболочки и не должны иметь проблем с пониманием формата этих фильтров.
Пакеты, которые соответствуют тесту, установленному выражением, будут перехвачены. Таким образом, результат каждого выражения должен быть «истинным».
Есть несколько условий выражения, которые обычно не встречаются в сценариях оболочки, и они перечислены ниже:
Len
Это возвращает длину пакета. Пример использования: len! = 5.
прото [выражение: размер]
В этом объекте:
прото это имя уровня протокола. Может быть:
- эфир
- FDDI
- IP
- агр
- RARP
- ТСР
- УДП
- ICMP
выраж смещение байта. Это должно быть включено, но оно может быть задано как 0, чтобы получить значение с начала объекта.
размер является необязательным и представляет количество байтов в опции. Значением по умолчанию является 1, но оно также может быть 2, 3 или 4.
Примеры использования:
эфир [0] & 1! = 0 верно для всего многоадресного трафика.
ф [0] & 0xf! = 5 верно для всех IP-пакетов с опциями.
ф [6: 2] & 0x1fff = 0 верно для нефрагментированных дейтаграмм и фрагментов нулей фрагментированных дейтаграмм.
Примеры Tcpdump
Во всех этих случаях результаты команды будут отображаться на экране, если только не включена опция, относящаяся к файлу, или если команда не запущена с перенаправлением вывода в режиме ожидания или путем передачи в файл..
Отображение пакетов, отправляемых с компьютера или на компьютер, обозначенный как lab1
tcpdump host lab1
Показать все IP-пакеты, проходящие между lab1 и любым узлом, кроме приема:
tcpdump ip host lab1 а не прием
Отобразить весь трафик ftp через интернет-шлюз styx:
tcpdump sty шлюз styx и (порт ftp или ftp-данные) ’
Отобразите пакеты SYN и FIN каждого диалога TCP, который включает нелокальный хост:
tcpdump ‘tcp [tcpflags] & (tcp-syn | tcp-fin)! = 0, а не src и dst net localnet ’
Показать широковещательные или многоадресные IP-пакеты, которые не были отправлены через широковещательную или многоадресную передачу Ethernet:
tcpdump ‘ether [0] & 1 = 0 и IP [16] >= 224 ’
Выходной формат Tcpdump
Формат записи, используемый для записи пакетов в файлы, стал стандартом, принятым многими новыми анализаторами пакетов и анализаторами трафика..
Стандарт не прост и адаптирован для каждого протокола. Однако те приложения, которые приняли формат, также учитывают эти различия. Формат называется PCAP, это имя процесса захвата пакета, используемого tcpdump. Файлы в этом формате обычно имеют .PCAP расширение.
Tcpdump для Windows
Существует адаптация tcpdump, которая работает в Windows. Это называется WinDump и это зависит от WinPcap для захвата пакета так же, как tcpdump использует функцию pcap из libpcap. WinPcap фактически принадлежит Riverbed Technology. Эта же компания является основным спонсором Wireshark, который, вероятно, является самым известным и широко используемым анализатором пакетов в мире. Существует беспроводная версия WinPcap, которая называется AirPcap. Вы можете бесплатно загрузить WinDump, WinPcap и AirPcap с веб-сайта WinPcap.
Использование анализаторов пакетов
Утилита командной строки tcpdump полезна для тех, кто знаком с Юникс и Linux операционные системы и наслаждайтесь написанием сценариев оболочки. Тем, кто не имеет большого опыта в составлении команд с регулярными выражениями в командной строке, будет трудно использовать эту программу.
У вас есть другие варианты, потому что есть много доступных анализаторов пакетов, таких как Wireshark, который был упомянут выше. Вы можете узнать больше об альтернативах tcpdump в этом обзоре анализаторов пакетов.
У вас есть любимый анализатор пакетов? Вы поклонник tcpdump или предпочитаете более удобные альтернативы? Оставьте сообщение в Комментарии раздел ниже и поделитесь своим опытом.
Изображение: захват пакета tcpdump в Linux Скриншоты через Flickr. Лицензировано под CC BY 2.0
It looks like the text is in Russian. The topic is about using tcpdump to check network traffic on Unix or Unix-like operating systems such as Linux or Mac OS. Tcpdump is a command-line utility that can be installed for free from the tcpdump GitHub registry or official website. The article explains the elements, format, parameters, and expressions of tcpdump, as well as provides examples and output formats. It also mentions the use of packet analyzers and how to install tcpdump on Windows.