Дальше  

Петрозаводский государственный университет
Математический факультет

Кафедра информатики и математического обеспечения




2.3. TCPDump.


TCPDump - это программа, позволяющая выводить в файл или на экран информацию о пакетах, приходящих на сетевой интерфейс и удовлетворяющих заданному условию. Она может обрабатывать как сохраненные в файл пакеты, так и непосредственно поступающие от устройства, а так же отброшенные ядром из за недостатка места в буфере. Обычно сетевые платы для сред передачи захватывают только фреймы канального уровня, адресованные конкретному интерфейсу или отправленные на широковещательный адрес. Программа tcpdump разработана таким образом, чтобы переводить сетевую плату в смешанный режим (promiscuous mode), при этом, каждый пакет, проходящий по кабелю, фиксируется TCPdump использует библиотеку libpcap (библиотека захвата пакетов - packet capture library), которая свободно доступна. Библиотека libpcap универсальна и работает с пакетным фильтром BSD, SVR4 Data-link Provider Interface (DLPI) и интерфейсом Linux SOCK_PACKET.

Помимо многочисленных опций, позволяющих определять многие параметры обработки пакетов, синтаксис вызова этой функции включает выражение для выбора пакетов.

tcpdump [-options] [expression]

Выражение может содержать следующие ограничения:

Tun(type) ограничение, определяющее тип следующего за ним имени или числа. Может принимать значение host, net и port. Например, 'host foo', 'net 128.3', 'port 20'. По умолчанию host.

Направление(dir) ограничение, определяющее направление. Может принимать значение src, dst, src or dst и src and dst соответственно от англ, source и destination. Например, 'src foo', 'dst net 128.3', 'src or dst port ftp-data'.
Протокол(proto) ограничение, определяющее конкретный протокол.
Может принимать значение ether, fddi, tr, ip, ip6, arp, rarp, decnet, tcp, udp.
Нарпимер, 'ether src foo', 'arp net 128.3', 'tcp port 21'.
Существуют ограничения, не соответствующие шаблону. Это ключевые слова gateway, broadcast, less, greater и набор арифметических операций.

Выражение может принимать следующие формы:

  • dst host host - истина, если поле назначения пакета в формате IPv4/v6 имеет значение host которое может быть именем или адресом.
  • src host host - то же, но поле источника.
  • host host - истина, если и адрес источника и адрес назначения host.
  • ether dst ehost - истина, если Ethernet-адрес получателя ehost.
  • ether dst ehost - истина, если Ethernet-адрес отправителя ehost.
  • ether host host - истина, если и Ethernet-адрес получателя, и Ethernet-адрес отправителя ehost.
  • gateway host - истина, если пакет использовал host в качестве шлюза, т.е. если Ethernet-адрес отправителя или получателя был host, но ни IP-адрес отправителя, ни IP-адрес получателя не был host.
  • dst net net - истина, если IPv4/v6 адрес получателя с номером сети net.
  • src net net - истина, если IPv4/v6 адрес отправителя с номером сети net.
  • net net - истина, если IPv4/v6 адрес получателя или адрес отправителя с номером сети net.
  • net net mask netmask - истина, если маска сети IP-адреса netmask.
  • net net/len - истина, если IPv4/v6 адрес указывает на сеть с длиной сетевой маски в len бит.
  • dst port port - истина, если пакет ip/tcp, ip/udp, ip6/tcp or ip6/udp и порт получателя port.
  • src port port - истина, если пакет ip/tcp, ip/udp, ip6/tcp or ip6/udp и порт отправителя port
  • less length - истина, если длина пакета меньше length.
  • greater length - истина, если длина пакета больше length.
  • ip proto protocol - истина, если ip пакет содержит в себе пакет протокола protocol, protocol м.б. icmp, icmp6, igmp, igrp, pim, ah, esp, vrrp, udp or tcp.
  • ip6 proto protocol - то же, но для ip6.
  • ip broadcast - истина, если пакет имеет широковещательный IP-адрес (последовательность нулей или единиц).
  • ip multicast - истина, если ip пакет отправлен на несколько машин в разных сетях одновременно.
  • ether proto protocol выражения, принимающие значение истина,
    fddi protocol protocol если пакет стандартов Ethernet, FDDI иB
    tr protocol protocol TokenRing или OSI соответственно.
    iso proto protocol
  • tcp, udp, icmp - сокращения от ip proto p or ip6 proto p , где р - это протокол вышележащего уровня. В выражениях можно также использовать следующие арифметические операции: >, <, >= , <=, =, !=; а так же бинарные: +,-,*, /, &, |.







Петрозаводск
2004