Поиск по сайту:

Как перехватывать пакеты TCP SYN, ACK и FIN с помощью tcpdump


Вопрос: я хочу отслеживать динамику TCP-соединения (например, трехстороннее рукопожатие для установления соединения и четырехстороннее рукопожатие для разрыва соединения). Для этого мне нужно захватить только контрольные пакеты TCP, такие как пакеты с установленным флагом SYN, ACK или FIN. Как я могу использовать tcpdump для захвата пакетов TCP SYN, ACK и/или FYN?

Как де-факто инструмент захвата пакетов, tcpdump предоставляет мощные и гибкие возможности фильтрации пакетов. Механизм захвата пакетов libpcap, на котором основан tcpdump, поддерживает стандартные правила фильтрации пакетов, такие как фильтрация на основе заголовка пакета из 5 кортежей (т. е. на основе IP-адресов/портов источника/получателя). и тип IP-протокола).

Правила фильтрации пакетов tcpdump/libpcap также поддерживают более общие выражения для пакетов, в которых произвольные диапазоны байтов в пакете проверяются с помощью операций отношения или бинарных операторов. Для представления диапазона байтов вы можете использовать следующий формат:

proto [ expr : size ]

proto может быть одним из известных протоколов (например, ip, arp, tcp, udp, icmp, ipv6). expr представляет смещение в байтах относительно начала указанного заголовка протокола. Существуют общеизвестные смещения байтов, такие как tcpflags, или константы значений, такие как tcp-syn, tcp-ack или tcp- плавник. size является необязательным и указывает количество байтов для проверки, начиная со смещения в байтах.

Используя этот формат, вы можете фильтровать пакеты TCP SYN, ACK или FIN следующим образом.

Чтобы захватить только пакеты TCP SYN:


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

Чтобы захватить только пакеты TCP ACK:


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

Чтобы захватить только TCP-пакеты FIN:


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

Чтобы захватить только пакеты TCP SYN или ACK:


# tcpdump -r <interface> "tcp[tcpflags] & (tcp-syn|tcp-ack) != 0"

Статьи по данной тематике: