Анализаторы пакетов
Категория: Управление сетями | Автор: admin | 5-06-2010, 19:17 | Просмотров: 3840

Программы tcpdump, snoop и nettl относятся к классу инструментальных средств, известных как анализаторы пакетов. Они следят за трафиком в сети и регистрируют либо выводят на экран пакеты, которые удовлетворяют заданным критериям. Например, можно перехватывать все пакеты, посылаемые на какой-то компьютер или с него, либо TCP-пакеты, относящиеся к конкретному сетевому соединению.

Анализаторы пакетов полезны как для решения известных проблем, так и для выявления абсолютно новых. Весьма полезно время от времени запускать эти программы и проверять, нормально ли обрабатывается сетевой трафик.

Поскольку анализаторам необходимо уметь перехватывать пакеты, которые локальный компьютер обычно не получает (или на которые не обращает внимания), базовые сетевые аппаратные средства должны разрешать доступ к каждому пакету. Это характерно для широковещательных технологий, в частности Ethernet, а также для некоторых видов сетей Token Ring, в которых отправитель пакета удаляет его из кольца после полного обхода контура.

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

 

Аппаратный интерфейс должен не только иметь возможность получать доступ ко всем сетевым пакетам, но также содержать механизм, обеспечивающий передачу этих пакетов вверх на программный уровень. Ведь обычно адреса пакетов проверяются на аппаратном уровне, а ядру показываются лишь широковещательные/групповые пакеты и те, которые адресованы данному компьютеру. В беспорядочном режиме (promiscuous mode) интерфейс позволяет ядру получать все сетевые пакеты, даже если они предназначены для других компьютеров.

Анализаторы пакетов, как правило, поддерживают многие форматы пакетов, используемые стандартными демонами UNIX, и часто могут отображать содержимое пакетов в удобном для пользователя виде. Это облегчает пользователю анализ сеанса между двумя программами. Некоторые анализаторы кроме заголовка пакета выводят и содержимое пакета в текстовом виде, что полезно для исследования протоколов верхних уровней. Так как некоторые из этих протоколов пересылают информацию (в том числе и пароли) по сети в незашифрованном виде, следует заботиться о сохранении конфиденциальности пользовательских данных.

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

 

Программа snoop: анализатор пакетов в Solaris

 

В Solaris анализатор пакетов называется snoop. С помощью аргументов командной строки можно задать перехват пакетов определенного типа, конкретного компьютера, протокола, порта и т.д.

Если программа запущена без аргументов, она анализирует пакеты, проходящие через первый из найденных ею интерфейсов. Обычно это тот интерфейс, который приведен первым в выводе команды netstat -i (исключая интерфейс обратной связи). Для указания конкретного интерфейса применяется опция -d имя_интерфейса. Имя интерфейса следует вводить в том виде, в котором оно сообщается командой netstat -i (например, для первого интерфейса Ethernet часто используется имя hme0). Опция -V позволяет получить развернутую информацию, а при наличии опции -v выводится несколько дополнительных поясняющих строк для каждого пакета.

Синтаксис командной строки программы snoop достаточно сложен, но все ее опции хорошо описаны на соответствующей man-странице. В командную строку можно помещать выражения, содержащие такие ключевые слова, как host, port, tcp, udp и ip, а также обозначения операций and, or или not.

Рассмотрим несколько примеров. Ниже приведены результаты работы программы snoop, которые могут оказаться полезными для настройки процесса передачи электронных сообщений между компьютерами evolve и chimchim. Мы задали такие параметры командной строки, которые позволят проиллюстрировать работу этого анализатора пакетов:

# snoop host chimchim and host evolve and tcp port 25

evolve.xor.com -> xor.com SMTP С

     xor.com -> evolve.xor.com SMTP R 220 xor.com ESMTP Se evolve.xor.com -> xor.com SMTP С

evolve.xor.com -> xor.com SMTP С EHLO evolve .xor.comr

     xor.com -> evolve.xor.com R 250- xor.com Hello ev

evolve.xor.com -> xor.com SMTP    С MAIL FROM: <root@evol

     xor.com -> evolve.xor.com  SMTP R

     xor.com -> evolve.xor.com  SMTP R 250 <root@evolve.xor

evolve.xor.com -> xor.com SMTP  С RCPT TO: <ned@xor.com>

     xor.com -> evolve.xor.com  SMTP R 250 <ned@xor.com>...

evolve.xor.com -> xor.com SMTP  С DATArn

     xor.com -> evolve.xor.com  SMTP R 354 Enter mail, end

 

 

Указанная командная строка означает следующее: "Перехватывать все пакеты, передаваемые между компьютерами chimchim и evolve и адресованные ТСР-порту 25".

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

Если с помощью программы telnet зарегистрироваться на удаленном узле, а затем запустить анализатор snoop, придется отфильтровать пакеты самого сеанса от общего трафика. Например, чтобы проигнорировать трафик, направленный к компьютеру evolve или идущий от него, следует задать такую команду:

# snoop not host evolve

 

Если нужно исследовать неработающий DNS-сервер с именем mrha, воспользуйтесь следующей командой:

# snoop host mrhat | grep DNS

 

В этом случае утилита grep позволит исключить вывод ненужной информации.

 

Программа nettl: анализатор пакетов в HP-UX

 

В HP-UX входит жалкая пародия на анализатор пакетов, называемая nettl. На самом деле это очень мощная программа, способная работать в быстрых сетях, но конфигурировать ее настолько сложно, что для быстрой отладки сети она не годится. Тем, кто планируют осуществлять анализ пакетов с компьютера, работающего под управлением HP-UX, мы рекомендуем инсталлировать программу tcpdump.

Программа nettl входит в пакет Network Tracing and Logging (трассировка пакетов и регистрация событий в сети) системы HP-UX. По умолчанию эта программа запускается на этапе начальной загрузки системы. Если ее использование не планируется, то не забудьте отключить ее. Для этого в файле /etc/rc.config.d/nettl установите переменную NETTL равной 0.

Программа nettl считывает параметры своей конфигурации из файла /etc/nettlgen.conf

 

Программа tcpdump: самый лучший анализатор

 

Замечательный анализатор пакетов tcpdump, написанный Ваном Джейкобсоном, входит в комплект поставки систем Red Hat Linux и FreeBSD и уже давно считается промышленным стандартом. Его исходные коды имеются в HP-UX, Solaris и большинстве других операционных систем. Работа с этим анализатором напоминает работу с программой snoop.

По умолчанию программа tcpdump использует первый найденный ею сетевой интерфейс. Если она выбрала не тот интерфейс, то посредством опции -i следует задать нужный. В случае неисправности службы DNS или если необходимо видеть адреса компьютеров, воспользуйтесь опцией -n. Эта опция имеет большое значение, так как медленная работа DNS может вызвать отбрасывание пакетов до того, как они будут проанализированы программой tcpdump. Опция -v позволяет получить более детальное описание каждого пакета, а самые подробные результаты выдаются при задании опции -w. Если указана опция -w, программа сохраняет перехваченные пакеты в файле. Для чтения пакетов из файла предназначена опция -r.

Ниже показаны результаты работы программы tcpdump, запущенной на узле jaguar.xor.com. Спецификация host jaguar задает получение информации только о тех пакетах (получаемых и отправляемых), которые имеют непосредственное отношение к компьютеру jaguar.

# tcpdump host jaguar

13:40:23 jaguar.xor. com. 1697 > xor. com.domain: A? cs.colorado.edu.

13:40:23 xor.com.domain > jaguar.xor.com.1697 : A mroe.cs.colorado.edu

13:40:23 jaguar.xor.com.1698 > xor.com.domain: PTR? 5.96.138.128.in-addr.arpa.

13:40:23 xor.com.domain >jaguar.xor.com.1698: PTRmroe.cs.colorado.edu.

 

 

В первой строке вывода содержится информация о том, что с компьютера jaguar в домен xor.com отправлен пакет с запросом к службе DNS, касающимся имени cs.colorado.edu. Во второй строке приводятся сведения об ответном пакете, где говорится о том, что указанное имя является псевдонимом узла mroe.cs.colorado.edu. Далее выдаются данные о пакете с запросом доменного имени, соответствующего IP-адресу компьютера mroe. В последней строке сообщается результат запроса.

На man-странице, посвященной программе tcpdump, приведен ряд хороших примеров задания различных фильтров, а также полный список ключевых слов, которые могут использоваться в командной строке.


 (голосов: 0)
Версия для печати | Комментариев: 0
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии в данной новости.


 
Логин
Пароль
 

 
Locations of visitors to this page