LINUX.ORG.RU
решено ФорумAdmin

Проблема с использованием фильтров в tcpdump и(или) tshark

 ,


1

1

Добрый день! Имеется сеть, с нее мне дают зеркало белого трафика (точно не знаю каким способом) на мой сервак, допустим на интерфейс eth5. Команда tcpdump -i eth5 выдает всю кучу трафика, все видно все показывается, но стоит добавить любой фильтр, будь то tcpdump -i eth5 port 80 , или tcpdump -i eth5 host x.x.x.x (где х.х.х.х хост, который 100% там есть!) или же любой другой, то в ответ тишина, будто бы ничего похожего нет. Команды типа tcpdump -i eth5 " vlan and host x.x.x.x", тоже результата не дает. PS команда tcpdump -i eth5 vlan даёт тот же результат что и tcpdump -i eth5.

Кусок трафика с командой tcpdump -i eth5 vlan -vvv

x.x.x.50.http > y.y.y.50.33992: Flags [.], cksum 0x7d12 (correct), seq 1229:2457, ack 518, win 7776, options [nop,nop,TS val 406095669 ecr 173397620], length 1228 17:35:53.399196 IP (tos 0x0, ttl 56, id 22575, offset 0, flags [DF], proto TCP (6), length 1280) x.x.x.50.http > y.y.y.50.33992: Flags [.], cksum 0x0916 (correct), seq 2457:3685, ack 518, win 7776, options [nop,nop,TS val 406095669 ecr 173397620], length 1228 17:35:53.399201 IP (tos 0x0, ttl 56, id 22576, offset 0, flags [DF], proto TCP (6), length 1280) x.x.x.50.http > y.y.y.50.33992: Flags [P.], cksum 0x2877 (correct), seq 3685:4913, ack 518, win 7776, options [nop,nop,TS val 406095669 ecr 173397620], length 1228 17:35:53.399204 IP (tos 0x0, ttl 64, id 49774, offset 0, flags [DF], proto TCP (6), length 52) y.y.y.50.33992 > x.x.x.50.http: Flags [.], cksum 0xd2a5 (correct), seq 518, ack 1229, win 65, options [nop,nop,TS val 173397646 ecr 406095669], length 0 17:35:53.399207 IP (tos 0x0, ttl 63, id 50532, offset 0, flags [none], proto UDP (17), length 1420)

или

5:53.399945 IP (tos 0x10, ttl 64, id 60890, offset 0, flags [DF], proto TCP (6), length 1420) y.y.y.41.ssh > z.z.z.89.54674: Flags [.], cksum 0x3de8 (correct), seq 4682024:4683392, ack 3081, win 222, options [nop,nop,TS val 894536314 ecr 2014337488], length 1368 17:35:53.399950 IP (tos 0x10, ttl 64, id 60891, offset 0, flags [DF], proto TCP (6), length 84) y.y.y.41.ssh > z.z.z.89.54674: Flags [P.], cksum 0x8f5d (correct), seq 4683392:4683424, ack 3081, win 222, options [nop,nop,TS val 894536314 ecr 2014337488], length 32 17:35:53.399953 IP (tos 0x10, ttl 64, id 60892, offset 0, flags [DF], proto TCP (6), length 1004) y.y.y.41.ssh > z.z.z.89.54674: Flags [P.], cksum 0xc8e7 (correct), seq 4683424:4684376, ack 3081, win 222, options [nop,nop,TS val 894536314 ecr 2014337488], length 952 17:35:53.399955 IP (tos 0x10, ttl 64, id 60893, offset 0, flags [DF], proto TCP (6), length 620) y.y.y.41.ssh > z.z.z.89.54674: Flags [P.], cksum 0x9fc6 (correct), seq 4684376:4684944, ack 3081, win 222, options [nop,nop,TS val 894536314 ecr 2014337488], length 568 17:35:53.399959 IP (tos 0x10, ttl 64, id 60894, offset 0, flags [DF], proto TCP (6), length 540) y.y.y.41.ssh > z.z.z.89.54674: Flags [P.], cksum 0xa024 (correct), seq 4684944:4685432, ack 3081, win 222, options [nop,nop,TS val 894536314 ecr 2014337488], length 488 17:35:53.399963 IP (tos 0x10, ttl 64, id 60895, offset 0, flags [DF], proto TCP (6), length 268) y.y.y.41.ssh > z.z.z.89.54674: Flags [P.], cksum 0x57ed (correct), seq 4685432:4685648, ack 3081, win 222, options [nop,nop,TS val 894536314 ecr 2014337488], length 216

PPS tcpdump -i eth5 port 80 tcpdump: WARNING: eth5: no IPv4 address assigned tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth5, link-type EN10MB (Ethernet), capture size 65535 bytes ^C 0 packets captured 1762 packets received by filter 1685 packets dropped by kernel

Как видно из последнего, пакеты приходят, но вывода никакого нет.

https://c.radikal.ru/c21/1806/3f/56f9587f92e3.png



Последнее исправление: ivanfranko (всего исправлений: 3)

А покажи выхлоп без фильтра vlan, но с ключем -e

Это покажет ethernet заголовки, может в зеркале нет кадров с 802.1Q тегами? Или наоборот - там Q-in-Q

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 1)

tcpdump -i eth5 port 80

Ну так не рстегируется же. Создай eth5.valnid и смотри на нём в нужном vlan. Сделай несколько для нескольких. Или grep.

AS ★★★★★
()
Ответ на: комментарий от AS

Можно подробнее, что значит не регистрируется? Ведь tcpdump -i eth5 показывает все что там есть.

PS grep не вариант. Проблема именно в том что я не могу отфильтровать по нужному ip-адресу, но весь трафик я вижу.

ivanfranko
() автор топика
Ответ на: комментарий от Pinkbyte

09:48:16.628594 d0:50:99:c1:77:89 (oui Unknown) > 00:23:9c:9b:5f:c1 (oui Unknown), ethertype 802.1Q (0x8100), length 1442: vlan 3500, p 0, ethertype 802.1Q, vlan 3788, p 0, ethertype IPv4, у.у.у.41.ssh > х.х.х.89.54756: Flags [.], seq 4700032:4701400, ack 2961, win 222, options [nop,nop,TS val 952879543 ecr 2028923364], length 1368

09:48:16.628863 00:23:9c:9b:5f:c1 (oui Unknown) > d0:50:99:c1:77:89 (oui Unknown), ethertype 802.1Q (0x8100), length 114: vlan 3500, p 0, ethertype 802.1Q, vlan 3788, p 0, ethertype IPv4, х.х.х.89.54756 > у.у.у.41.ssh: Flags [P.], seq 2961:3001, ack 4656256, win 3613, options [nop,nop,TS val 2028923365 ecr 952879539], length 40

ivanfranko
() автор топика
Ответ на: комментарий от ivanfranko

Можно подробнее, что значит не регистрируется?

tcpdump, очевидно, работает не как grep. И не может наложить фильтр на пакет, где присутствует тэг 802.1q (хотя, может, и можно, но я как-то не задумывался). По-этому его надо снять предварительно. Это не особенно удобно, но точно работает.

grep не вариант. Проблема именно в том что я не могу отфильтровать по нужному ip-адресу

tcpdump -eni eth5 | grep x.y.z.n

Или тут смысл в том, чтобы вывод tcpdump в файл записать после фильтра в бинарном виде?

AS ★★★★★
()
Последнее исправление: AS (всего исправлений: 1)

Решено

Всем спасибо! Разобрался! Проанализировав трафик, заметил, что имеется два vlan`а 3500 и 3788.

Используя команду tcpdump -i eth5 «vlan 3500 and vlan 3788 and host x.x.x.x» я получаю требуемый результат.

ivanfranko
() автор топика
Ответ на: комментарий от ivanfranko

Хм. Если «vlan and port 80» должен работать, то, наверное, сработал бы «vlan and vlan and port 80» ? Если можно VLAN ID не указывать.

AS ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.