tcpdump / снифер / sniffer



Установка



yum install tcpdump - установка в centos

apt install tcpdump - установка в debian



Опции утилиты tcpdump:



-i интерфейс # Задает интерфейс, с которого необходимо анализировать трафик (без указания интерфейса - анализ "первого попавшегося")

-n # Отключает преобразование IP в доменные имена. Если указано -nn, то запрещается преобразование номеров портов в название протокола.

-e # Включает вывод данных канального уровня (например, MAC-адреса).

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

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

-w имя_файла # Задать имя файла, в который сохранять собранную информацию.

-r имя_файла # Чтение дампа из заданного файла.

-p # Захватывать только трафик, предназначенный данному узлу. (по умолчанию - захват всех пакетов, например в том числе широковещательных).

-q # Переводит tcpdump в "бесшумный режим", пакет анализируется на транспортном уровне (протоколы TCP, UDP, ICMP), а не на сетевом (протокол IP).

-t # Отключает вывод меток времени.





Наиболее часто используемые фильтрующие параметры команды tcpdump:



dst хост # Проверяет, совпадает ли адрес получателя IP-пакета с указанным значением.

# Возможно задавать как IP, подсеть в формате 10.0.0.1/24, так и имя хоста.



src хост # Проверяет, совпадает ли адрес отправителя IP пакета с указанным значением.

# Возможно задавать как IP, подсеть в формате 10.0.0.1/24, так и имя хоста.



host хост # Проверяет, совпадает ли адрес отправителя или получателя с заданным значением.

# Возможно задавать как IP, подсеть в формате 10.0.0.1/24, так и имя хоста.



net имя_сети # Проверяется, находится ли адрес отправителя/получателя в заданной сети.

# Возможно указание сети в формате CIDR (например 10.0.0.1/22), либо указание имени сети,

# заданной в файле /etc/networks.





ip | arp | rarp | tcp | udp | icmp [хост] # Проверяет, принадлежит ли пакет одному из указанных протоколов и при указании адреса хоста проверяет,

# совпадает ли адрес отправителя\получателя с заданным.

# Возможно задавать как IP, подсеть в формате 10.0.0.1/24, так и имя хоста.



[tcp | udp] dst port номер_порта # Проверяется, принадлежит ли пакет протоколу TCP/UDP и равен ли порт назначения заданному.

# Можно указать номер порта, либо имя, заданное в файле /etc/services.



[tcp | udp] src port номер_порта # Проверяется, принадлежит ли пакет протоколу TCP/UDP и равен ли порт источника заданному.

# Можно указать номер порта, либо имя, заданное в файле /etc/services.



[tcp | udp] port номер_порта # Проверяется, принадлежит ли пакет протоколу TCP/UDP и равен ли порт назначения или источника заданному.

# Можно указать номер порта, либо имя, заданное в файле /etc/services.



ether { src | dst | host } MAC_адрес # Проверяется, принадлежит ли сетевой пакет источнику, назначению,

# источнику или назначению имеющему заданный MAC_адрес.





ip broadcast # Проверяется, является ли IP пакет широковещательным.



ether broadcast # Проверяется, является ли ARP-пакет широковещательным.



@linuxkalii