Не правда ли, знакомая ситуация: между двумя совещаниями или в процессе решения текущих проблем от брандмауэра поступает уведомление, что от компьютера с IP-адресом 10.15.97.12 исходит неконтролируемый поток пакетов в NetBIOS-порты сотен других компьютеров. Возможно, компьютер поражен «червем», и нужно попросить владельца компьютера безотлагательно отключить его от сети. На первый взгляд, сделать это можно быстро, но когда счет идет на минуты, даже простые действия трудно выполнить без ошибок. Давайте посмотрим, как соглашения об именовании и IP-стандарты помогут быстро идентифицировать систему, а затем сравним методы преобразования IP-адресов в имена двух известных инструментов Windows.

Изучаем подсети

Рассматривая сети, полезно вслед за инженерами подумать об октетах. С ростом предприятия на место одной плоской подсети приходят несколько подсетей, представляющих зоны безопасности или офисы. Структурированная и предсказуемая схема IP-адресов подсетей позволит более оперативно реагировать на происшествия. Например, в крупной компании с частным IP-пространством нередко используются частные подсети 10.0.0.0/8 или 172.16.0.0/12, в соответствии с документом Request for Comments (RFC) 1918. Удобно выделить второй октет региональным офисам: например, 10 для Нью-Йорка, 15 для Чикаго и 20 для Сиэттла. Если получено уведомление от компьютера с адресом 10.15.97.12, становится ясно, что он находится в чикагском офисе, и можно немедленно связаться с администратором этого офиса.

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

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

Приведенные примеры отражают еще один принцип безопасности: размещать компьютеры с различными уровнями риска в разные подсети. Пример: поместить рабочие станции пользователей и серверы в разные подсети. Даже в плоской сети, состоящей из одной подсети, можно отнести серверы к одному IP-диапазону, а рабочие станции к другому, чтобы получить общее представление о местоположении компьютера по его IP-адресу. Например, в подсети 192.168.0.0/24 можно назначить номера 0-10 в третьем октете сетевому оборудованию, 11-100 серверам и 101-200 рабочим станциям пользователей.

Понятные имена

Соглашение об именовании компьютеров и пользователей, которое упрощает поиск компьютеров только по имени может резко сократить время реагирования на события. Если офисов в организации много, самый эффективный способ - сопоставить местонахождение офиса, в котором расположен компьютер, с именем основного пользователя этого компьютера. Например, мое имя пользователя "jeff" и я работаю в офисе в Сиэттле, поэтому имя моего компьютера "sea-jeff". ИТ-техникам всей организации не обязательно знать меня по имени, но получив предупреждение, указывающее на мой компьютер, они могут немедленно обратиться к местным ИТ-специалистам в Сиэттле или непосредственно ко мне, отыскав мое имя пользователя в Active Directory (AD).

Дополнительное преимущество подобного стандарта именования - возможность без труда сортировать отчеты в алфавитном порядке по имени компьютера или группировать их по офисам. К сожалению, во многих системах по-прежнему действует свойственное NetBIOS ограничение имен компьютеров 15 символами, и приходится проявлять изобретательность, сокращая имена.

Присваиваем имена

Следование стандарту IP-подсетей и соглашению об именовании компьютеров помогает быстро обнаружить местоположение подозрительного компьютера; однако не каждая организация может применить новые соглашения. К счастью, получить имена подозрительных компьютеров можно с помощью двух инструментов, имеющихся в каждом компьютере Windows -- ping и nbtstat. Проблема в том, что эти инструменты не всегда выдают точную информацию. Ключ к успеху -- в их совместном использовании.

Команда ping посылает пакет компьютеру и записывает успешный ответ. В ней также есть параметр для запроса преобразования имени. Команда

ping -a

преобразует IP-адрес с использованием DNS. Ping использует конфигурацию DNS клиентского компьютера, на котором запущена команда, и не имеет непосредственных сведений о целевом компьютере. Поэтому если клиент, на котором запущена команда ping, содержит hosts-файл с ошибками или искаженный кэш DNS, или если данные DNS-сервера, с которым связывается клиент, устарели, ping выдаст неверное имя. Например, некоторые RAS-серверы назначают IP-адреса клиентам из собственных пулов и не обновляют DNS-сервер при смене IP-адресов. Это нелегко, когда один клиент подключается к RAS, регистрирует свое имя в DNS и отключается, затем подключается второй клиент и получает такой же IP-адрес, как у отключившегося клиента. Если второй компьютер не регистрирует свое имя в DNS, то ping преобразует IP-адрес в имя первого, а не второго компьютера.

Экран 1. Неверная запись DNS и исправление nbtstat.
 

На Экране 1 показано, как неверная запись DNS может ввести ping в заблуждение, и программа выдает неправильное имя. Ping сообщает, что компьютер с именем badhost имеет адрес 192.168.0.6, хотя в действительности имя компьютера с этим адресом - midway. Как удалось это выяснить? С помощью второго инструмента, nbtstat.

Выяснить у целевого компьютера имя NetBIOS можно с помощью команды

nbtstat -A

Nbtstat - инструмент командной строки, который отображает статистику протокола и текущие соединения TCP/IP с использованием NetBIOS через протокол TCP/IP. Параметр -A позволяет получить таблицу имен целевого компьютера, если известен его IP-адрес. В отличие от ping, nbtstat напрямую запрашивает целевой компьютер и работает, только если целевой компьютер включен и отвечает на запросы NetBIOS. Для успешного использования nbtstat также необходимо, чтобы целевой компьютер поддерживал NetBIOS.

В сети, состоящей преимущественно из компьютеров Windows, в которых NetBIOS активна по умолчанию, nbtstat очень быстро выдаст имя любого компьютера. Если установленный в системе брандмауэр блокирует трафик NetBIOS, необходимо создать правило, чтобы разрешить трафик NetBIOS от клиента, выполняющего поиск имени. Скорее всего, этим компьютером будет система администратора.

Объединяем команды

Совместное использование ping и nbtstat позволяет выяснить IP-адрес, связанный с именем компьютера. Сочетая эти инструменты с соглашениями об именовании и стандартами подсетей, можно быстро идентифицировать и точно указать уязвимые места сети.

Джефф Феллинг (jeff@blackstatic.com) - редактор Windows IT Pro и вице-президент по информационной безопасности и техническому обеспечению компании aQuantive. Автор книги IT Administrator's Top 10 Introductory Scripts for Windows (издательство Charles River Media).