Иллюстрированный самоучитель по администрированию Windows 2000/2003

Обзор компонентов Windows 2000

Использование протокола SMB во время загрузки и входа в систему

Протокол SMB используется клиентом ОС Windows 2000 во время загрузки и входа в систему для загрузки объектов групповой политики, соответствующих этой рабочей станции или пользователю. Основной SMB-операцией, которая будет рассмотрена для процессов запуска и входа в систему, будет согласование SMB-диалекта. Этот процесс представляет собой обмен данными между клиентом и сервером с целью определения того, какой из SMB-диалектов они будут использовать. Протокол SMB также используется при создании ссылок DFS на общие ресурсы, к которым предоставляется доступ. Основной составляющей SMB-трафика, генерируемого во время процесса загрузки и входа в систему, будут объекты групповой политики, загружаемые клиентом.

Для получения дополнительной информации обратитесь к Техническому руководству: Протоколы стека TCP/IP и службы Windows 2000 (Windows 2000 TCP/IP Protocols and Services Technical Reference) (EN).

Удаленный вызов процедур MSRPC

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

В процессе RPC задействованы:

  • Клиентское приложение. Подает запрос на удаленное выполнение.
  • Клиентский суррогат (Client stub). Преобразует вызовы в/из стандартного формата NDR.
  • Client RPC Runtime Library. Преобразует NDR в сетевые сообщения.

    Транспортный протокол управляет соединениями в сети.

  • Server RPC Runtime Library. Преобразует NDR в сетевое сообщение.
  • Серверный суррогат (Server stub). Преобразует вызовы в/из стандартного формата NDR.
  • Серверное приложение. Выполняет требуемые инструкции.

RPC однозначно определяются по номеру интерфейса (UUID), номеру операции (opnum) и номеру версии. Номер интерфейса определяет группу связанных удаленных процедур. Примером интерфейса может выступить служба сетевого входа, у которой UUID имеет значение 12345678-1234-ABCD-EF00-01234567CFFB.

Пример вызова RPC:

MSRPC: c/o RPC Bind: UUID 12345678-1234-ABCD-EF00-01234567CFFB call 0x1
assoc grp 0x0 xmit 0x16D0 recv 0x16D0
MSRPC: Version = 5 (0x5)
MSRPC: Version (Minor) = 0 (0x0)
MSRPC: Packet Type = Bind
+ MSRPC: Flags 1 = 3 (0x3)
MSRPC: Packed Data Representation
MSRPC: Fragment Length = 72 (0x48)
MSRPC: Authentication Length = 0 (0x0)
MSRPC: Call Identifier = 1 (0x1)
MSRPC: Max Trans Frag Size = 5840 (0x16D0)
MSRPC: Max Recv Frag Size = 5840 (0x16D0)
MSRPC: Assoc Group Identifier = 0 (0x0)
+ MSRPC: Presentation Context List

RPC не зависит от низкоуровневых транспортных протоколов. Microsoft RPC (MSRPC) может использовать несколько различных транспортных протоколов, таких как TCP/IP, IPX/SPX или NetBEUI.

Большинство интерфейсов RPC используют динамические порты для связи в сети. В этом случае возникает необходимость использовать особый интерфейс, называемый сопоставителем конечных точек (End Point Mapper). Этот интерфейс всегда прослушивает порт 135 для TCP/IP-соединений и имеет номер UUID E1AF8308-5D1F-11C9-91A4-08002B14A0FA.

Прежде чем клиент сможет вызвать процедуры, он должен осуществить привязку к интерфейсу. В том случае, если удалось установить привязку, он может выслать запрос к сопоставителю конечных точек (End Point Mapper), в котором будет указан UUID необходимого интерфейса. Сопоставитель конечных точек возвращает номер порта, который клиент может использовать для соединения.

В следующей таблице указана последовательность пакетов, которыми обмениваются стороны, участвующие в этом процессе:

Пакет Источник Получатель Протокол Описание
1 Клиент Сервер MSRPC c/o RPC-привязка: UUID E1AF8308-
5D1F-11C9-91A4-08002B14A0FA l
2 Сервер Клиент MSRPC c/o RPC-привязка Ack: call 0x1 assoc
grp 0xC85D xmit 0x16D0 recv
3 Клиент Сервер MSRPC c/o RPC-запрос: call 0x1 opnum
0x3 context 0x0 hint 0x84
4 Сервер Клиент MSRPC c/o RPC-ответ: call 0x1
context 0x0 hint 0x80 cancels 0x0

Также можно инкапсулировать пакеты MSRPC в SMB. В данном случае клиент и сервер для обмена данными используют дескриптор ранее открытого файла.

Процессы загрузки и входа в систему Windows 2000 используют интерфейсы сетевого входа в систему (Netlogon) и службы репликации каталога (Directory Replication Service, DRS). Интерфейс Netlogon используется в домене для установления защищенного канала между клиентом и контроллером домена. Служба DRS в первую очередь используется для связи контроллеров домена с серверами глобального каталога. Тем не менее, она также предоставляет интерфейс, который используется во время процесса входа в систему. Служба DRS обеспечивает преобразование имен к формату, который может использоваться в протоколе LDAP.

Для получения дополнительной информации обратитесь к следующим материалам:

  • Раздел "Сетевой трафик, генерируемый клиентом в Active Directory" книги Организация служб предприятия Active Directory: заметки на полях ("Active Directory Client Network Traffic," Notes from the Field BuildingEnterprise Active Directory Services) (EN)
  • Статья 159298 раздела TechNet: Анализ RPC-трафика TCP/IP ("Analyzing Exchange RPC Traffic Over TCP/IP [159298]" on TechNet) (EN)
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.