Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СистПриклПрогЗабез(Хихловская).doc
Скачиваний:
25
Добавлен:
10.02.2016
Размер:
961.02 Кб
Скачать

Программа tcpdump (снифер) сетевой анализатор для поиска неисправностией в сети и отладки сетевых приложений.

Snoop в solaris, iiptrace/ipreport AIX – поставляются вместе с ОС, иногда используются программы третьих фирм – tcpdump.

Сниферы используются для изучения динамики и взаимодействия в сетях, для изучения работы сетевых протоколов. Утилита tcpdump работает во всех Uhix и Windows. Тексты tcpdump опубликованы и ее можно адаптировать для специальных целей или перенести на новую платформу.

Tcpdump состоит из двух компонент: первая работает в ядре и занимается перехватом и, возможно. Фильтрацией пакетов, а вторая действует в адресном пространстве пользователя и определяет интерфейс пользователя, а также выполняет форматирование пакетов, если последнее не делается ядром.

Пользовательская компонента tcpdump взаимодействует с компонентой в ядре с помощью библиотеки libcap (блока для перехвата пакетов), которая абстрагирует системно – зависимые детали общения с канальным уровнем стека протоколов, например, с пакетным фильтром BSD (BDF _ BSD packet bilter) BPF исследует каждый пакет, проходящий через канальный уровень и сопоставляет его с фильтром, заданным пользователем. Если пакет удовлетворяет критерию фильтрации помещается в выделенный ядром буфера, который accoциируется с данными фильтром. Когда буфер заполняется или истекает заданный пользователем тайм – аут, содержимое буфера передается приложению с помощью libcap .

ПЕРЕХВАТ ПАКЕТОВ С ПОМОЩЬЮ BPF

Программа tcpdump и любая другая программа использует BPF для считывания необработанных пакетов, а пользовательская программа читает данные из стека TCP/IP как обычно. BPF перехватывает сетевые пакеты на уровне драйвера устройства, т.е. как только они считаны с носителя. Это не то же самое, что чтение из простого сокета, когда получаются IP – дейтаграммы, уже обработанные уровнем IP и преданные непосредственно приложению, линия транспортный уровень (ТСР или UDР) архитектура WinDump похожа на BSD эта программа пользуется специальным NDIS – драйвером (спецификация стандартного интерфейса сетевых адаптеров), предоставляющем совместный с BPF фильтр и интерфейс NDIS драйвер представляет собой часть стека протоколов, но функционирует он такжеtcpdump, но надо заменитьBPFна драйверNDIS.

Использование tcpdump

Поскольку применение сетевых анализаторов небезопасно, по умолчанию tcpdumpконфигурируется с полномочиями суперпользователяroot(BSD). ДляWinэтих ограничений нет. ЕслиNDIS.-драйвер установлен, то программойWinDumpможно пользоваться. ВBSDследует сделатьtcpdumpsetuid– программой. Если вызватьtcpdumpвообще без параметров, тогда будут перехватываться все пакеты и выводить о них информацию. Но лучше указать кааой-нибудь фильтр, чтобы видеть только нужные пакеты и не отвлекаться на остальные. Например, если требуются лишь пакеты, полученные от хостаbsdили отправленные ему, то можно вызватьtcpdump:

tcpdump host bsd

Если нужны пакеты, которыми обмениваются хосты bsdиsparcто так же используется фильтр:

Фильтровать можно следующие атрибуты:

  1. Протокол

  2. хост отправления и /или назначения

  3. сет отправления и /или назначения

  4. Ethernet-адрес отправления и /или назначения

  5. Порт отправления и /или назначения

  6. Размер пакета

  7. Пакеты, вещаемые на всю локальную сеть или группу (uвEthernet,uвIP)

  8. Пакет, используемый в качестве шлюза указанным хостом

Можно проверять конкретные биты или байты в заголовках протоколов. Например, чтобы отбирать только TCP-терминалы, в которые выставлен бит срочности, следует использовать фильтр:

tcp[13]&16

Четвертый бит четырнадцатого байта заголовка TCP– это бит срочности.

Т.к. разрешается использовать булевские операторы (and) или (&&),or(или ||)not(или !) для комбинирования предикатов, можно задавать фильтры произвольной сложности

Icmpandnotsprcnetlocalnet– фильтр, отбирающийICMP-пакеты, приходящие из внешней сети.