который пакет прошел на предыдущем шаге (4), — это пограничный маршрутизатор
организации. Сегмент 4 может быть реализован как в виде выделенного программного
брандмауэра, так и в виде простого фильтрующего маршрутизатора. На данном этапе об
этом пока трудно судить. Как правило, именно на устройство,
находящееся
в сегменте,
непосредственно за которым находится реальный компьютер сети, возлагается задача
маршрутизации (например, маршрутизатор или брандмауэр).
Рассмотренный пример слишком прост. В реальных ситуациях к одному и тому же уз-
лу может вести несколько маршрутов, создаваемых устройствами с несколькими интер-
фейсами (например, маршрутизаторы серии Cisco 7500). Более того, каждый интерфейс
может иметь собственный список управления доступом (ACL — access control list). Зачас-
тую некоторые интерфейсы такого устройства пропускают запросы traceroute, а дру-
гие — нет, что определяется конкретным списком ACL. Таким образом, очень важно с
помощью
traceroute
получить схему всей сети. После того
как вы
попробуете просле-
дить
с
помощью
traceroute
маршруты,
по
которым проходят пакеты
к
каждому выяв-
ленному вами узлу сети, можно создать схему сети, наглядно
демонстрирующую
архитек-
туру шлюза Internet, а также показывающую, в каких местах расположены устройства, вы-
полняющие функции управления доступом. Мы будем называть эту схему диаграммой
путей доступа (access path diagram).
Необходимо подчеркнуть, что большинство версий traceroute систем UNIX по умол-
чанию отправляет пакеты UDP
(User
Datagram Protocol), а пакеты
ICMP
(Internet Control
Messaging Protocol) — только в случае явного указания параметра -I. Однако в Windows
NT для этих целей по умолчанию используются пакеты протокола ICMP, называемые эхо-
запросами (echo request). Поэтому, если исследуемый узел блокирует либо пакеты UDP,
либо ICMP, вы можете получать в разных операционных системах различные результаты.
Среди других интересных параметров traceroute можно отметить параметр
-д,
который
позволяет пользователю определять маршрутизацию с потерей источника запроса. Если вы
уверены, что интересующий вас шлюз пропускает пакеты с измененным источником (что
является очень большой ошибкой администратора этого шлюза), то можно попробовать
включить данный режим, указав нужное количество участков (более подробную информа-
цию можно получить с помощью команды man traceroute).
Имеется и несколько других параметров, которые позволяют обойти устройства
управления доступом. Например, параметр
-р
л утилиты traceroute дает возможность
указать начальный номер порта UDP (л), который должен увеличиваться на 1 при каж-
дой попытке отслеживания маршрута. Таким образом, мы не сможем использовать фик-
сированные номера портов, не модифицируя traceroute. К счастью, Майкл Шиффман
(Michael
Schiffman)
уже создал модуль обновления, который позволяет с помощью до-
полнительного параметра -s остановить автоматическое увеличение счетчика для
traceroute версии 1.4а5
(http://www.packetdactory.net/Projects/firewalk/-
traceroute.diff).
Это позволяет в каждом отправляемом пакете использовать один и
тот же номер порта в надежде на то, что устройство управления доступом пропустит эти
пакеты во внутреннюю сеть. Как правило, для этих целей лучше всего подходит UDP-
порт с номером 53 (запросы DNS). Поскольку многие узлы пропускают входящие за-
просы DNS, существует высокая вероятность того, что устройство управления доступом
не среагирует на такую попытку проникновения.
[bash]$
traceroute 10.10.10.2
traceroute to
(10.10.10.2),
30 hops max, 40 byte packets
1
gate
(192.168.10.1)
11.993 ms 10.217 ms 9.023 ms
2 rtrl.bigisp.net
(10.10.12.13)37.442
ms 35.183 ms 38.202 ms
3 rtr2.bigisp.net
(10.10.12.14)
73.945ms
36.336ms
40.146ms
4 hssitrt.bigisp.net
(10.11.31.14)
54.094 ms 66.162 ms 50.873 ms
5 * * *
50 Часть I. Изучение цели