Назад | Перейти на главную страницу

Как идентифицировать пакеты udp с помощью tcpdump

Я пытаюсь выполнить автоматическое лечение pcap с помощью tcpdump (чтобы сохранить их в ELK). Моя проблема в том, что мне нужен доступ к флагам TCP, и я не могу определить, является ли пакет TCP или UDP.

Если я использую -q, после номера порта назначения есть довольно очевидное поле, но флаги TCP не отображаются:

Oct 04 16:47:21.058974 00:08:e3:ff:fc:04 00:00:5e:00:01:19 171: 10.193.47.54.3389 > 10.60.2.87.54075: tcp 117 (DF) [tos 0x2 (E)] (ttl 127, id 14452, len 157)
Oct 04 16:47:21.058990 2c:76:8a:53:2f:d6 00:08:e3:ff:fc:04 157: 10.60.7.17.54934 > 10.194.151.66.53522: udp 115 (ttl 62, id 0, len 143, bad ip cksum 0! -> c90d)

Если я удалю -q флаг, это поле в основном исчезает. Он заполняется только для пакетов UDP, но не каждый раз (особенно для запросов DNS и SNMP).

Oct 04 16:49:52.964277 00:08:e3:ff:fc:04 00:00:5e:00:01:19 0800 172: 10.194.5.11.53 > 10.202.7.126.55187: 61642 NXDomain 0/1/0 (130) (ttl 126, id 10111, len 158)
Oct 04 16:51:59.321776 2c:76:8a:53:2f:d6 00:08:e3:ff:fc:04 0800 128: 10.60.2.46.161 > 10.194.125.121.41624: |30|54|02|01|04|05C=toto47 |a2|48GetResponse(60)|02|02|02|01|02|01|30|3c |30|12|06|0c.1.3.6.1.2.1.25.5.1.1.2.4305=|02|022824 |30|13|06|0c.1.3.6.1.2.1.25.5.1.1.1.4305=|02|03539869 |30|11|06|0c.1.3.6.1=[|snmp] (ttl 62, id 0, len 114, bad ip cksum 0! -> e7d6)

Есть ли способ, чтобы протокол l4 всегда отображался на выходе без потери флагов TCP? Или хотя бы всегда отображать, если это UDP?

Или мне придется выполнить сложную фильтрацию журналов, чтобы разобраться в DNS и SNMP?

Спасибо

Я не уверен, что это ваше намерение, но вы просто используете параметры -v, а затем вы получаете такой результат, где у вас есть «proto»:

1507132726.499248 IP (tos 0x0, ttl 64, id 60959, offset 0, flags [DF], proto UDP (17), length 59)

Правильно ли я говорю, что ваш приоритет - отфильтровать, какие пакеты - TCP, а какие - UDP?

Хотя я не совсем уверен, что это полное решение вашей проблемы, одним из вариантов было бы отфильтровать вывод из tcpdump по протоколу уровня 4.

Это можно сделать следующим образом, чтобы просто отобразить пакеты UDP:

tcpdump 'udp'

Эквивалент отображения только пакетов TCP:

tcpdump 'tcp'