5) Перехватить пакет из определенного порта
Вы можете перехватить пакеты с указанным номером порта с параметром port
# tcpdump -i eth0 -c 5 -nn port 22 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes 09:27:27.773270 IP 96.126.114.47.22 > 169.255.7.5.44284: Flags , seq 1435459900:1435460016, ack 4135948192, win 419, options , length 116 09:27:27.773357 IP 96.126.114.47.22 > 169.255.7.5.44284: Flags , seq 116:232, ack 1, win 419, options , length 116 09:27:28.032620 IP 169.255.7.5.44284 > 96.126.114.47.22: Flags , ack 0, win 722, options , length 0 09:27:28.032655 IP 96.126.114.47.22 > 169.255.7.5.44284: Flags , seq 232:648, ack 1, win 419, options , length 416 09:27:28.032668 IP 169.255.7.5.44284 > 96.126.114.47.22: Flags , ack 116, win 722, options , length 0 5 packets captured 6 packets received by filter 0 packets dropped by kernel
Примеры использования tcpdump
перечислить доступные интерфейсы (которые можно прослушивать при помощи опции -i)
tcpdump -D
посмотреть трафик одного хоста:
tcpdump host 1.2.3.4
посмотреть трафик на порте:
tcpdump src port 80
посмотреть IP трафик на хост:
tcpdump ip host 1.2.3.4
посмотреть ARP трафик на хост:
tcpdump arp host 1.2.3.4
посмотреть RARP трафик на хост:
tcpdump rarp host 1.2.3.4
посмотреть трафик, кроме хоста unixserver:
tcpdump not host unixserver
посмотреть трафик на server1 и server2
tcpdump host server1 or host server2
посмотреть содержимое пакетов на интерфейсе tun0 на хост ya.ru
tcpdump -X -i tun0 host ya.ru
подсмотреть номера и пароли к icq
tcpdump -X -i fxp1 port aol
посмотреть содержимое пакетов на интерфейсе tun0 на хост ya.ru, при этом прочитать из каждого пакета по 1500 байт и не преобразовывать IP в имя хоста
tcpdump -X -s 1500 -n -i tun0 host ya.ru
Сетевой grep
Сниффер tcpdump хорош своей универсальностью и разнообразием возможностей, однако для поиска конкретных данных внутри передаваемых пакетов его использовать не так просто и удобно. С этой задачей гораздо лучше справляется ngrep, предназначенный для отображения проходящих сетевых пакетов, удовлетворяющих заданной маске.
Например, чтобы найти параметры, передаваемые методами GET и POST в рамках HTTP-сессии, можно использовать следующую команду:
# ngrep -l -q -d eth0 «^GET |^POST » tcp and port 80
Выявляем бездельников:
# ngrep -i ‘game*|p0rn|adult’ -W byline -d eth0 > slackers.txt
Анализируем SMTP-трафик на всех сетевых интерфейсах:
# ngrep -i ‘rcpt to|mail from’ tcp port smtp
Наедине с консолью
Попробуем разобраться, как работает tcpdump и с какой стороны следует к нему подходить. Открой терминал и запусти программу с правами пользователя root (как и любой сниффер, tcpdump должен иметь полный доступ к сетевым интерфейсам), указав имя сетевого интерфейса и ограничив количество выводимых пакетов десятью:
# tcpdump -i wlan0 -c 10 -n
Ключ -n отключает преобразование IP-адресов в DNS-имена. Теперь попытаемся отследить обмен только с конкретным хостом, например с домашним роутером:
# tcpdump -i wlan0 -c 10 -n host 192.168.0.1 and port 53
Давай посмотрим, что же нам вывел tcpdump, на примере двух строк, представленных на скриншоте «DNS-запрос глазами tcpdump». Можно легко понять, что это DNS-запрос (порт 53) с хоста 192.168.0.101 хосту 192.168.0.1 и последующий за ним ответ. Но что значат все остальные цифры и знаки?
Цифры 16:22:41.340105 — это время отправки пакета, включая миллионные доли секунды (так называемый frac). Две буквы IP, как нетрудно догадаться, идентифицируют используемый протокол сетевого уровня, далее следуют адрес: порт отправки и адрес: порт назначения пакета. Все, что идет после двоеточия, напрямую зависит от используемого протокола транспортного или прикладного уровня. С некоторыми протоколами tcpdump знаком и умеет расшифровывать их до понятного человеку вида, другие он оставляет как есть и просто приводит содержимое пакета. В данном случае tcpdump расшифровал DNS-сообщения и вернул строку 49244+ A? ya.ru. (23) , что означает: был послан запрос (A?) адреса, ассоциированного с именем ya.ru., общая длина пакета за вычетом TCP/IP-заголовков составила 23 байт. Первая цифра — это идентификатор запроса.
В следующей строке мы видим ответ, формат представления которого практически аналогичен запросу, с той лишь разницей, что теперь после идентификатора запроса идет информация о количестве найденных записей (8/2/3) и сами записи (A 213.180.204.3, A 77.88.21.3, A 87.250.250.3…).
В арсенале tcpdump есть поддержка многих протоколов, благодаря чему он может представить в читаемом виде информацию о протоколах TCP, UDP и ICMP, SMB/CIFS, NFS, AFS, AppleTalk. Но что, если tcpdump ничего не знает об используемом протоколе прикладного уровня или не может определить его? В обычной ситуации он просто выведет информацию о пакете. Она может выглядеть примерно так:
Flags , seq 3666073194:3666074622, ack 3281095139, win 2000, options , length 1428
Это TCP-пакет, формат представления информации о котором в tcpdump следующий (поля разделяются запятыми):
- flags — установленные флаги. Обозначаются символами S (SYN), F (FIN), P (PUSH) и R (RST), точка означает отсутствие установленных флагов;
- data-seqno — описывает данные, содержащиеся в пакете, в таком формате: first:last, где first и last — номер последовательности первого и последнего байта передаваемых данных, nbytes;
- ack — следующий номер последовательности (ISN + 1);
- window — размер окна;
- options — здесь могут указываться дополнительные сведения, например (максимальный размер сегмента);
- length — длина пакета.
Все эти данные могут быть очень полезны во время изучения или отладки протоколов и сетевых приложений, однако они ничего нам не говорят о его содержимом. Чтобы увидеть содержимое пакета в шестнадцатеричном формате, следует применить флаг -X:
# tcpdump -i wlan0 -c 10 -n -X host 192.168.0.1 and port 80
Эту функцию очень удобно использовать для анализа протоколов, в которых передача данных идет открытым текстом, например HTTP. Для бинарных протоколов и протоколов с шифрованием она, конечно же, будет бесполезна.
Кроме того, для получения дополнительных сведений о пакете можно использовать флаг -v. Тогда после IP в скобках появится подробная информация об IP-пакете:
(tos 0x0, ttl 64, id 8339, offset 0, flags , proto UDP (17), length 51)
В общем-то, здесь все довольно прозаично. Вначале идет тип обслуживания (TOS), далее время жизни пакета (TTL), идентификатор пакета, смещение от начала первого пакета в цепочке, флаги, используемый прокол транспортного уровня (TCP, UDP, ICMP) и длина.
tcpdump commonly used flags¶
The following table shows the most commonly used command line flags with
. Each option will be discussed in further detail in this section.
Flag |
Description |
---|---|
-i <interface> |
Listen on <interface>, .e.g. “-i igb0” |
-n |
Do not perform reverse DNS resolution on IP addresses |
-w <filename> |
Save capture in pcap format to <filename>, e.g. “-w /tmp/wan.pcap” |
-s |
Snap length: Amount of data to be captured from each frame |
-c <packets> |
Exit after receiving a specific number of packets |
-p |
Do not put the interface in promiscuous mode |
-v |
Verbose output |
-e |
Print link-layer header on each line |
-n flag
Do not resolve IP addresses using reverse DNS. When this option is not
specified, tcpdump will perform a reverse DNS (PTR) lookup for each IP address.
This generates a significant amount of DNS traffic in captures displaying large
volumes of traffic. Disable this to avoid adding load to DNS servers. We
recommend always using because it eliminates the delay between a packet’s
capture and its display that is caused by performing the reverse lookup. Also IP
addresses tend to be easier to read and understand than their PTR records. That
is a matter of personal preference though, and in familiar environments where
the PTR records are known to provide the actual host names of the devices,
captures may be run without to show the hostnames.
Another reason to use , is to be “sneaky.” One means of detecting packet
capturing is looking for spikes and patterns in DNS PTR lookups. Skipping the
DNS lookup will not cause any extra traffic to be generated in the process.
-w flag
tcpdump allows capture files to be saved in pcap format for later analysis or
analysis on another system. This is commonly done from command line only devices
like pfSense so the file can be copied to a host running Wireshark or another
graphical network protocol analyzer and reviewed there. When saving to a file
using , the frames will not be displayed in the terminal as they otherwise
are.
See also
See Using Wireshark with pfSense for more
information about using Wireshark with pfSense.
-s flag
By default tcpdump will only save the first 64 bytes of each frame when
capturing to a file. This is enough to get the IP and protocol header for most
protocols, but limits the usability of capture files. By using the flag,
tcpdump can be told how much of the frame to capture, in bytes. This is called
the snap length.
Flag |
Description |
---|---|
-s 500 |
Capture the first 500 bytes of each frame |
-s 0 |
Capture each frame in its entirety |
In most cases, using is the best practice when capturing to a file for
analysis on another system. The only exception to this is scenarios where a
significant amount of traffic must be captured over a longer period of time. If
the information being sought is known to be in the header, the default 64 bytes
of each frame may be used to get the required information while significantly
reducing the size of the resulting capture file.
-c flag
To capture a certain number of frames and then exit, use the flag.
Example usage: will exit after capturing 100 frames by specifying
.
-p flag
Normally when capturing traffic with , it puts the network interface
into promiscuous mode. When not running in promiscuous mode, the NIC only
receives frames destined for its own MAC address as well as broadcast and
multicast addresses. When switched into promiscuous mode, the interface shows
every frame on the wire that arrives at the network interface. In a switched
network, this generally has little impact on the capture. In networks where the
device is connected to a vswitch also in promiscuous mode, or a hub, using
can significantly limit noise in the capture when the only traffic of
interest is to and from the system performing the capture.
-v flag
The flag controls the detail, or verbosity, of the output. Using more “v”
options yields more detail, so use , , or to view even
more detail in the output printed to the console. This option does not affect
the detail stored in a capture file when using the switch, but will
instead cause the process to report the number of packets captured every 10
seconds.
Чтение и запись снимков в файл
Еще одна полезная функция tcpdump, это записывать пакеты в файл. Это удобно, когда вы захватываете большое количество пакетов или когда хотите захватить пакеты для последующего анализа.
Чтобы начать запись в файл, используйте параметр -w, за которым следует выходной файл захвата:
sudo tcpdump -n -w data.pcap
Эта команда выше сохранит захват в файл с именем data.pcap. Вы можете назвать файл так, как хотите, но это распространенное соглашение – использовать расширение .pcap (захват пакета).
Когда -wиспользуется опция, вывод не отображается на экране. tcpdumpзаписывает необработанные пакеты и создает двоичный файл, который невозможно прочитать с помощью обычного текстового редактора.
Чтобы проверить содержимое файла, вызовите tcpdump с опцией -r:
sudo tcpdump -r data.pcap
Файл захвата также можно проверить с помощью других инструментов анализа пакетов, таких как Wireshark.
При захвате пакетов в течение длительного периода времени вы можете включить ротацию файлов. tcpdump позволяет создавать новые файлы или вращать файл дампа за указанный промежуток времени или фиксированный размер. Следующая команда будет создавать до десяти 200MB файлов, именованных file.pcap0, file.pcap1 и так далее: перед перезаписью старых файлов.
sudo tcpdump -n -W 10 -C 200 -w /tmp/file.pcap
После создания десяти файлов старые файлы будут перезаписаны.
Обратите внимание, что вы должны работать tcpdumpтолько во время устранения неполадок. Если вы хотите начать tcpdump в определенное время, вы можете использовать cronjob
tcpdump не имеет возможности выйти через заданное время. Вы можете использовать timeoutкоманду, чтобы остановить tcpdumpчерез некоторое время. Например, чтобы выйти через 5 минут, вы должны использовать:
Если вы хотите начать tcpdump в определенное время, вы можете использовать cronjob . tcpdump не имеет возможности выйти через заданное время. Вы можете использовать timeoutкоманду, чтобы остановить tcpdumpчерез некоторое время. Например, чтобы выйти через 5 минут, вы должны использовать:
sudo timeout 300 tcpdump -n -w data.pcap &
Символ амперсанда ( &) в конце команды запускает команду в фоновом режиме.
Reading / Writing Captures to a File (pcap)
It’s often useful to save packet captures into a file for analysis in the future. These files are known as PCAP (PEE-cap) files, and they can be processed by hundreds of different applications, including network analyzers, intrusion detection systems, and of course by itself. Here we’re writing to a file called capture_file using the switch.
tcpdump port 80 -w capture_file
You can read PCAP files by using the switch. Note that you can use all the regular commands within tcpdump while reading in a file; you’re only limited by the fact that you can’t capture and process what doesn’t exist in the file already.
tcpdump -r capture_file
1) Анализ трафика по всему интерфейсу
tcpdump по умолчанию не установлен, поэтому вам нужно установить его
На Ubuntu 16.04
# apt install tcpdump
Формат источника – source.port, где источником может быть имя хоста или IP-адрес.
Вы можете видеть в первой строке, пакет, захваченный в timestamp 07: 41: 25.886307, является IP-протоколом, который создается с именем хоста li339-47.members.linode.com и port ssh, поэтому вы видите li339-47. members.linode.com.ssh.
Пакет предназначен для флага 169.255.7.5.44284.
Вам нужно нажать кнопку отмены, чтобы остановить ее.
Если вам нужна дополнительная информация, tcpdump предоставляет несколько опций, которые улучшают или изменяют его вывод:
- -i интерфейс: прослушивание указанного интерфейса.
- -n: Не разрешать имена хостов. Вы можете использовать -nn, чтобы не разрешать имена хостов или имена портов.
- -t: Не печатать метку времени на каждой линии сброса.
- -X: Показать содержимое пакета как в hex, так и в ascii.
- -v, -vv, -vvv: увеличить количество информации о пакете, которую вы получите.
- -c N: Только получить N количество пакетов и затем остановить.
- -s: Определить привязку (размер) захвата в байтах. Используйте -s0, чтобы получить все, если вы не намеренно захватываете меньше.
- -S: печать абсолютных порядковых номеров.
- -q: Показывать меньше информации о протоколе.
- -w-файл: достаточно записать исходные пакеты в файл
2) Список доступных интерфейсов
Вы можете узнать доступный интерфейс с параметром -D
# tcpdump -D 1.eth0 2.nflog (Linux netfilter log (NFLOG) interface) 3.nfqueue (Linux netfilter queue (NFQUEUE) interface) 4.any (Pseudo-device that captures on all interfaces) 5.lo
При этом вы можете выбрать, какой интерфейс использовать
Как пользоваться tcpdump
Перед тем как перейти к использованию tcpdump нужно посмотреть какие сетевые интерфейсы вы можете использовать. Для этого запустите команду с опцией -D:
Начнем рассматривать примеры tcpdump с захвата трафика на интерфейсе eth0, у меня это основной интерфейс, который подключен к интернету. Для работы программе необходимы права суперпользователя, поэтому не забудьте указать sudo:
Чтобы остановить работу команды нажмите Ctrl+C. В выводе вы сразу же увидите все перехваченные пакеты. Формат записи для каждого пакета будет выглядеть следующим образом:
13:03:41.795599 IP udp032919uds.hawaiiantel.net.6881 > 192.168.1.2.52055: Flags , seq 640160396:640161844, ack 436677393, win 2050, options , length 1448
Такой формат характерен для пакетов данных, в зависимости от протокола выделенный черным текст будет отличаться. Сначала идет временная метка, затем протокол, далее зеленым отмечен ip адрес отправителя, а синим адрес адресата, в данном случае, нашего компьютера. Дальше идут дополнительные параметры tcp и в конце размер пакета в байтах. Подробность вывода информации можно контролировать с помощью опций -v, Например:
Здесь уже появляется информация о протоколе IP:
IP (tos 0x0, ttl 64, id 50309, offset 0, flags , proto TCP (6), length 64)
Мы можем узнать информацию о времени жизни пакета ttl, версию протокола TCP и длину поля заголовка. Опция -vv будет выводить проверку контрольных сумм пакета и содержимое в некоторых случаях.
После опций вы можете указывать фильтры для пакетов. Вот основные параметры, по которым можно отсеивать пакеты:
- host — имя хоста;
- ip — ip адрес;
- proto — протокол;
- net — адрес сети или подсети;
- port — адрес порта;
- src — параметр, касающийся отправителя;
- dst — параметр, касающейся получателя;
- Доступны такие протоколы: ether, fddi, tr, wlan, ip, ip6, arp, rarp, decnet, tcp и udp.
Вы можете все это комбинировать между собой, чтобы получить желаемый результат. Рассмотрим более детально на примерах. Отсеем только пакеты, адресованные нашему компьютеру:
Также мы можем отобрать пакеты, отправляемые на определенный узел:
Как видите, это DNS пакеты и здесь вместо флагов TCP содержится полезная информация, запрос ip адреса хоста. Также вы можете выбрать ответные пакеты от определенного хоста:
Здесь нет полного содержимого пакета, если вы хотите его получить нужно использовать опцию -v или -vv:
С помощью оператора and вы можете объединить несколько фильтров в один:
Из операций объедения доступны and и or, также можно применять скобки для обозначения приоритета. Вам необязательно указывать host, во многих случаях достаточно src или dst, утилита сама поймет что имелось в виду. Точно такую же конструкцию можно использовать для портов. Например, мы можем отсеять все запросы или ответы к DNS (на порт 53):
Точно такое же можно провернуть для http (порт 80):
Естественно, тут тоже можно применять dst и src для более конкретных результатов. Вы можете фильтровать не один порт, а целый диапазон портов:
Если указать один из протоколов, вы отфильтруете только пакеты этого протокола, например tcp, udp или arp:
Точно также можно выбрать все udp пакеты:
Также доступен фильтр по обозначению сети:
Кроме того, вы можете фильтровать пакеты по их размеру, например, меньше 32 байт:
Или больше 128:
Иногда бывает необходимо сохранить захваченный трафик в файл, для этого используется опция -w:
Этот файл можно открыть с помощью любой программы для чтения таких файлов, например, Wireshark. Чтобы открыть сохраненные в файл пакеты используйте опцию -r:
Остался еще один момент, на который стоит обратить внимание. Это формат отображения содержимого пакетов
Вы можете вывести содержимое пакета в формате ASCII используйте опцию -A:
Также вы можете отобразить содержимое в формате HEX и ASCII для этого используйте -XX:
9) Чтение файла записи tcpdump
Вы не можете прочитать содержимое файла, который сохраняет пакеты tcpdump с помощью общих команд, таких как cat или less, то вам нужно использовать параметр -r команды tcpdump
# tcpdump -r packets-record.cap reading from file packets-record.cap, link-type EN10MB (Ethernet) 10:06:25.310077 IP li339-47.members.linode.com.ssh > 169.255.7.5.44284: Flags , seq 1435573932:1435573976, ack 4135958592, win 457, options , length 44 10:06:25.565590 IP 169.255.7.5.44284 > li339-47.members.linode.com.ssh: Flags , ack 0, win 722, options , length 0 10:06:25.565633 IP li339-47.members.linode.com.ssh > 169.255.7.5.44284: Flags , seq 44:160, ack 1, win 457, options , length 116 10:06:25.570384 IP 169.255.7.5.44284 > li339-47.members.linode.com.ssh: Flags , ack 44, win 722, options , length 0 10:06:25.827438 IP 169.255.7.5.44284 > li339-47.members.linode.com.ssh: Flags , ack 160, win 722, options , length 0
Использование Tcpdump для анализа трафика
tcpdump — очень мощный и широкоиспользуемый инструмент для снифинга и анализа, кторый используется для перехвата TCP/IP пакетов, получаемых или отправляемых по сети. Утилита доступна практически во всех операционных системах Линукс. Tcpdump так же дает возможность сохранять перехваченные пакеты в файл, для их дальнейшего анализа в будующем. А если сохранить файлы в формате pcap, то их можно будет анализировать с помощью такого инструмента как Wireshark.
Установка tcpdump
sudo yum install tcpdump
Debian-like:
sudo apt-get install tcpdump
Tcpdump имеет формат записи:
tcpdump options expressions
При использовании tcpdump, требует права root.
Разберем опции tcpdump:
- -i — указывает на каком интерфейсе выполнять перехват пакетов (по-умолчанию используется первый интерфейс);
- -D — вывести список всех досиупных в системе интерфейсов;
- -c — указывает количество пакетов для перехвата;
- -n — указывает не выполнять преобразование ip-адреса в доменное имя;
- -nn — указывает не преобразовывать номер порта в имя демона;
- -A — выводит содержание пакета в формате ASCII;
- -X — выводит содержимое пакета в формате HEX и ASCII;
- -w — запись перехваченных пакетов в файл;
- -r — чтение из файла;
- -q — выводить мало данных;
- -s — указывать сколько байт пакета необходимо захватить (по-умолчанию s0 или захват польностью);
- -e — добавить в вывод содержание ethernet заговолков (2-й уровень OSI);
- -v — более информативный вывод (например добавляется TTL и TOS);
- -vv — еще более информативный вывод;
- -ee -vvv — добавить в вывод теги Vlan.
Приведен список наиболее часто используемых опций, полный перечень смотрите в официальной документации и в man
Теперь разберем какие могут быть выражения для перехвата пакетов, по-большому счету это фильтры на основании, которых будет проводится перехват пакетов.
- host — указвание адреса или имени хоста;
- net — указвание сети;
- src — указание источника пакета;
- dst — указание назначения пакета;
- port — указание порта демона;
- tcp,udp,icmp — указание протокола (tcp,udp,icmp и т.д.)
- less длина — указывает перехватывать пакеты, длина которых меньше указанной;
- greater длина — указывает перехватывать пакеты,длина которых больше указанной;
- ether — указание MAC-адреса;
- broadcast — указание что пакет должен быть Broadcast;
И конечно же все эти вырадения можно сочитать между собой с помощью логческих выражений:
- and или && — логическое и;
- or или || — логическое или;
- not или ! — отрицание.
Рассмотрим примеры использования tcpdump
Перехват пакетов с источником 192.168.10.1 идущих к сети 192.168.20.0/24 на порт 22
sudo tcpdump src host 192.168.0.1 and dst net 192.168.20.0/24 \
and dst port 22
Перехват icmp пакетов с выводм MAC-адресов без преобразования ip-адресов и номеров портов:
sudo tcpdump -evnn icmp
tcpdump: listening on enp3s0, link-type EN10MB (Ethernet), capture size 262144 bytes 13:07:40.660870 50:46:5d:73:08:28 > 00:25:90:a2:29:b4, ethertype IPv4 (0x0800), length 98: (tos 0x0, ttl 64, id 13131, offset 0, flags , proto ICMP (1), length 84) 172.20.9.40 > 172.20.1.1: ICMP echo request, id 29815, seq 1, length 64 13:07:40.661081 00:25:90:a2:29:b4 > 50:46:5d:73:08:28, ethertype IPv4 (0x0800), length 98: (tos 0x0, ttl 64, id 58057, offset 0, flags , proto ICMP (1), length 84)
Перехват пакетов идущих к адресу назначения yandex.ru на порт 80 или 443 :
sudo tcpdump «host yandex.ru and (tcp dst port 80 \
or tcp dst port 443")
Перехват трафика с отображением номеров Vlan (их можно потом искать с помощью grep):
sudo tcpdump -ee -vvv -i eth0
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes 10:03:26.973635 00:25:90:a2:29:b4 (oui Unknown) > 50:46:5d:73:08:28 (oui Unknown), ethertype 802.1Q (0x8100), length 122: vlan 7, p 0, ethertype IPv4, (tos 0x10, ttl 64, id 3187, offset 0, flags , proto TCP (6), length 104) 172.20.1.1 > 172.20.9.40.38552: Flags , cksum 0x62ac (incorrect -> 0x8f59), seq 1666480162:1666480214, ack 2683254910, win 354, options , length 52 10:03:26.973657 00:25:90:a2:29:b4 (oui Unknown) > 50:46:5d:73:08:28 (oui Unknown), ethertype 802.1Q (0x8100), length 122: vlan 7, p 0, ethertype IPv4, (tos 0x10, ttl 64, id 3188, offset 0, flags , proto TCP (6), length 104)
Как видно можно видеть в строке с указанием стандарта 802.1Q и номер vlan в нашем случае 7
Запись журнала в определенный файл
Можно сохранить захваченные пакеты в файле.
По умолчанию при захвате пакетов в файл он сохраняет только 68 байтов данных из каждого пакета.
Остальная часть информации игнорируется.
Вы можете использовать -s, чтобы сообщить tcpdump, сколько байтов для каждого пакета сохранить и указать 0, поскольку длина моментального снимка пакетов указывает tcpdump на сохранение целого пакета.
# tcpdump -i eth0 -c 5 -nn tcp -w packets-record.cap -s 0 tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes 5 packets captured 5 packets received by filter 0 packets dropped by kernel