TCPDUMP захватывает только новые соединения

9

Я использую TCPDUMP для захвата трафика с определенного IP-адреса. Есть ли возможность перехватывать только новые соединения, то есть потоки TCP, начинающиеся с пакета SYN?

Спасибо

Аня Катценельсон
источник
К сожалению нет. tcpdump просто перехватывает пакеты по мере их поступления, он не поддерживает какую-либо информацию о сеансе для различения потоков TCP. Вам нужно будет проанализировать перехват в Wireshark, если вы хотите разделить потоки (например, вы можете упорядочить по номеру потока).
Марк Ридделл
Будьте осторожны, бит SYN установлен в двух первых пакетах трехстороннего рукопожатия TCP. Таким образом, этот фильтр будет соответствовать всем новым попыткам установления соединений, а не только вновь установленным соединениям. Если каким-либо образом (правило программного обеспечения) соединение не будет принято, оно также будет показано.
Angel

Ответы:

7

Для захвата только пакетов TCP SYN:

# tcpdump -i <interface> "tcp[tcpflags] & (tcp-syn) != 0"
pstrozniak
источник
3
Это не будет захватывать весь трафик для нового сеанса. Он будет захватывать только пакеты SYN.
user5870571
1

Следующее будет захватывать пакеты TCP-SYN и SYN-ACK.

tcpdump -i <interface> "tcp[tcpflags] & (tcp-syn) !=0"

Следующее будет захватывать только пакеты TCP-SYN.

tcpdump -i <interface> "tcp[tcpflags] & (tcp-syn) !=0 and tcp[tcpflags] & (tcp-ack) =0"

Причина в том, что пакеты SYN-ACK включают флаги SYN и ACK. Первый фильтр только проверял наличие флага SYN.

Если вы хотите фильтровать только входящие, добавьте опцию -Q in.

tcpdump -i <interface> -Q in "tcp[tcpflags] & (tcp-syn) !=0 and tcp[tcpflags] & (tcp-ack) =0"
JamesL
источник