Описание процесса загрузки и входа в систему Windows 2000
Установление безопасного канала к контроллеру домена
После того, как клиент определит свой сайт и контроллер домена, он может установить безопасный канал к своему контроллеру домена. Безопасный канал – это соединение между членом домена и контроллером домена, устанавливаемое для получения особой информации домена, для обновления особой информации о компьютере в Active Directory (например, пароля), а также для проверки членства в домене.
Процесс начинается с согласования того, какой SMB-диалект будут использовать обе стороны. После того, как первый вариант протокола SMB был выпущен в 1984 году, его неоднократно пересматривали и вносили в него дополнения. Это означает то, что клиент и сервер могут использовать различные SMB-диалекты. В таком случае ОС Windows 2000 с обеих сторон должны использовать диалект NTLM 0.12. Этот диалект позволяет использовать кодировку Юникод (Unicode) при обмене информацией. До этого обмен данными происходил в кодировке ASCII. Преимуществом записей в кодировке Юникод является то, что они могут включать имена файлов, имена ресурсов и имена пользователей.
Процесс продолжается соединением с интерфейсом сетевого входа (netlogon interface) сервера. В данном процессе должен использоваться сопоставитель конечных портов (End Port Mapper) для того, чтобы подключить клиента к правильному порту сервера. В конце данного процесса клиент отсылает три пакета (NetrServerReqChallenge, NetrServerAuthenticate3 и NetrLogonGetdomainInfo) на этот интерфейс. В течение всего этого процесса генерируется приблизительно 4600 байтов трафика.
Пакет | Источник | Получатель | Протокол | Описание |
---|---|---|---|---|
1 | Клиент | Сервер | SMB | C согласование, диалект = NT LM 0.12 |
2 | Сервер | Клиент | SMB | R negotiate, Dialect # = 5 |
3 | Клиент | Сервер | MSRPC | c/o RPC-привязка: UUID E1AF8308-5D1F- 11C9-91A |
4 | Сервер | Сервер | MSRPC | c/o RPC-привязка Ack: call 0x1 assoc grp 0xD52C |
5 | Клиент | Сервер | MSRPC | c/o RPC-запрос: call 0x1 opnum 0x3 contex |
6 | Сервер | Клиент | MSRPC | c/o RPC-ответ: call 0x1 context |
7 | Клиент | Сервер | MSRPC | c/o RPC-привязка: UUID 12345678-1234- ABCD-EF0 |
8 | Сервер | Клиент | MSRPC | c/o RPC-привязка Ack: call 0x1 assoc grp 0x1C04B |
9 | Клиент | Сервер | R_LOGON | RPC-вызов клиента logon:NetrServerReqChallenge(..) |
10 | Сервер | Клиент | R_LOGON | RPC-ответ сервера logon:NetrServerReqChallenge() |
11 | Клиент | Сервер | R_LOGON | Ошибка: Bad Opcode (Функция не существует) |
12 | Сервер | Сервер | R_LOGON | Ошибка: Bad Opcode (Функция не существует) |
13 | Клиент | Клиент | MSRPC | c/o RPC-привязка: UUID 12345678-1234- ABCD-EF0 |
14 | Сервер | Клиент | MSRPC | c/o RPC-привязка Ack: call 0x3 assoc grp 0x1C04B |
15 | Клиент | Клиент | R_LOGON | Ошибка: Bad Opcode (Функция не существует) |
16 | Сервер | Клиент | R_LOGON | Ошибка: Bad Opcode (Функция не существует) |
Примечание
Текущая версия программы Netmon не может корректно обрабатывать вызовы NetrServerAuthenticate3 и NetrLogonGetdomainInf. Поэтому выше в таблице эти вызовы отмечены как ошибки с отметкой Bad Opcode.
Важно.
В случае, если сетевое окружения является смешанным (после того, как производилось обновление домена с Windows NT 4 на Windows 2000), необходимо помнить о следующей возможной ситуации. В случае, если единственным доступным контроллером домена для проверки подлинности клиента Windows 2000 будет резервный контроллер домена Windows NT 4.0, то невозможно будет установить безопасный канал. Это было сделано в целях усиления безопасности. Клиентам Windows 2000 известен тип домена, к которому они принадлежат, и они не будут упрощать свой способ проверки подлинности при установке безопасного канала. Данная последовательность обмена пакетами как раз соответствует этому варианту. Она соответствует взаимодействию клиента Windows 2000 в домене Windows NT 4.0. Взаимодействие с основным доменом начинается после того, как клиент не смог установить безопасный канал, из-за чего проверка подлинности домена завершилась неудачно.