Команды tcpdump

Команды tcpdump

1. Опции захвата трафика.

В простейшем случае достаточно указать интерфейс для анализа трафика:

tcpdump –i INTERFACEМожно отключить преобразования IP адресов в доменные имена:

tcpdump -nОграничение числа перехватываемых пакетов:

tcpdump –c PACKET_COUNTЗапись в файл:

tcpdump -w FILE_NAMEЧтение из файла:

tcpdump -r FILE_NAMEОтметим, что для воспроизведения записанного файла в сеть можно использовать отдельную утилиту tcpreplay (не входящую в комплект tcpdump):

tcpreplay FILE_NAMEВывод данных канального уровня (например, mac адреса и прочее):

tcpdump -eВывод дополнительной информации (например, TTL, опции IP):

tcpdump -vУвеличение размера захватываемых пакетов (больше 68 байт по умолчанию):

tcpdump -s SNAP_LEN

2. Опции фильтрации трафика.

Можно осуществлять фильтрацию на канальном уровне. Для выделения Ethernet фреймов используются следующие конструкции:

tcpdump ether { src | dst | host } MAC_ADDRESStcpdump ether { broadcast | multicast }

 Примеры:

# tcpdump -n -i vlan0 ether src 0:2:b3:d8:d8:2c# tcpdump -n -e -i vlan0 ether broadcast

Просмотр фреймов 802.1Q можно осуществить следующими способами (на интерфейсе с виланами):

tcpdump –i INTERFACE vlanПримеры:

# tcpdump -n -e -i fxp0 vlan# tcpdump -n -e -i fxp0 vlan 100

# tcpdump -n -e -i fxp0 ether proto 0x8100

Фильтрация по IP протоколу:

tcpdump { arp | rarp | ip | tcp | udp | icmp | wlan | multicast | broadcast }Примеры:

# tcpdump -n -i fxp0 ip# tcpdump -n -i fxp0 tcp

# tcpdump -n -i fxp0 udp

Фильтрация по IP адресам:

tcpdump { src | dst } { net | host | port }

Примеры:

# tcpdump -n -i fxp0 src 195.12.66.1# tcpdump -n -i fxp0 dst 195.12.66.65

# tcpdump -n -i fxp0 host 195.12.66.1

# tcpdump -n -i fxp0 port 25

# tcpdump -n -i fxp0 dst 195.12.66.1 and port 53

Фильтрация по размеру пакетов:

tcpdump { less | greater } PACKET_SIZEСуществуют расширенные возможности по фильтрации пакетов TCP с флагами. Заголовок TCP пакета состоит из 20 октетов. Поле битов управления (флагов) TCP содержится в октете номер 13. Соответственно под флаги отводятся следующие битовые позиции в 13 байте (по возрастанию степени 2): FIN (1), SYN(2), RST(4), PSH(8), ACK(16), URG(32), ECE(64), CWR(128).

Таким образом, например, для пакетов только с флагом SYN октет номер 13 заголовка TCP должен содержать значение 2. И соответствующий фильтр будет выглядеть так:

# tcpdump -n -i em0 ‘tcp[13] == 2’Для перехвата пакетов только с флагами SYN и ACK (значения битовых позиций 2 и 16) можно использовать следующую конструкцию:

# tcpdump -n -i em0 ‘tcp[13] == 18’Кроме того, можно использовать опцию tcpflags.

Пакеты с любым флагом:

# tcpdump -n -i em0 ‘tcp[tcpflags] != 0’Пакеты, включающие SYN:

# tcpdump -n -i em0 ‘tcp[tcpflags] & tcp-syn != 0’Для того, чтобы анализировать передаваемые данные по протоколу TCP, можно использовать tcpflow:

# tcpflow -c -i ep0 host 195.12.69.199 and port 80

3. Полезные рецепты.

Получение рейтинга наиболее активных участников сетевого взаимодействия (top talkers):

# tcpdump -tn -c 10000 -i fxp0 tcp or udp | awk -F «.» ‘{print $1″.»$2″.»$3″.»$4}’ | \ sort | uniq -c | sort -nr | awk ‘$1 > 100’Выявление аномалий TCP путем вычисления отношения числа исходящих пакетов с SYN флагом к числу входящих с SYN+ACK:

SYN_ONLY_FROM_ISP=`tcpdump -n -l -r $1 ‘src net 192.168.0.0/24’ and \ ‘dst net not 192.168.0.0/24’ and ‘tcp[13] == 2’ | wc | awk ‘{print $1}’`

SYN_ACK_TO_ISP=`tcpdump -n -l -r $1 ‘src net not 192.168.0.0/24’ and \ ‘dst net 192.168.0.0/24’ and ‘tcp[13] == 18’ | wc | awk ‘{print $1}’`

RATIO=$(echo «scale=3; $SYN_ACK_TO_ISP/$SYN_ONLY_FROM_ISP» | bc)

Автор: Бондаренко А.С.

Запись опубликована в рубрике *Lan&Wan, *Unix,*Linux. Добавьте в закладки постоянную ссылку.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Я не спамер This plugin created by Alexei91