Назад | Перейти на главную страницу

Блокировка учетной записи после единственного сбоя аутентификации

У меня есть 2 автономных сервера (не в каком-либо домене / AD) - Windows 2003 и Windows 2008.

При подключении к общим ресурсам на них, используя UNC-путь из Windows 2000 pro или Samba (под Linux), если я ошибаюсь при вводе пароля, эти серверы заблокируют учетную запись с первой попытки.

Работает нормально при подключении из Windows 2003, Windows 2008 и Vista.

На всех подключенных машинах он сообщит об ошибке аутентификации и снова запросит учетные данные. Но в Windows 2000 и Samba он продолжит давать сбой при второй попытке, даже если пароль правильный. Попытка войти на эти машины сообщит, что учетная запись заблокирована.

Политика настроена на блокировку учетной записи при 10 сбоях, и она ведет себя правильно, когда попытка подключения выполняется с W2008 или W2003, то есть даже если первая попытка не удалась, следующая будет успешной.

Я провел эксперимент, чтобы разблокировать учетную запись, из окна W2000 я намеренно пытаюсь войти с неверным паролем, и даже без второй попытки я вижу, что учетная запись заблокирована.

Есть идеи, что я могу изменить, чтобы избежать этой проблемы? Обычно это происходит, когда я тороплюсь (конечно :)), поэтому иметь дело с входом в систему для разблокировки учетной записи действительно неприятно.

Я не уверен, каков ваш уровень знакомства с Wireshark, поэтому приношу свои извинения, если это слишком многословно или кратко. ;-)

По сути, вам нужно установить и запустить Wireshark на любом конце - неважно на каком - и начать захват в соответствующем интерфейсе:

  1. В Wireshark щелкните значок Capture меню, тогда Options…
  2. Выберите соответствующий интерфейс.
  3. Поскольку вы упомянули, что находитесь не в домене, я предлагаю ввести Capture Filter чтобы ограничить количество захваченного трафика, например:
    host 169.254.255.127
    IP-адрес должен быть для удаленный хост.
  4. Start захват, затем попытайтесь просмотреть общий ресурс.
  5. Подождите, пока не появится общий ресурс или вам будет показано неверное имя пользователя / пароль, а затем остановите захват.

Я мог бы предложить вам сделать это дважды из каждого места; во-первых, с правильным логином и паролем; и во-вторых, с неверным именем пользователя и / или паролем. Между каждой попыткой обязательно отключитесь от удаленного общего ресурса (чтобы он повторно запросил аутентификацию), выполнив:

net use \\remoteserver\SharedFolder /delete

Мы ищем здесь SMB данных, поэтому первый способ избавиться от всего, что не связано, - это применить простой Показать фильтр в Filter: поле на панелях инструментов:

smb

Вначале вы должны увидеть по существу три типа передач в Info поле:

  • Negotiate Protocol Request/Response
    Они показывают протоколы, поддерживаемые клиентом, и какой протокол был принят сервером. Вы можете расширить это в Packet details раздел, чтобы узнать, использует ли сервер NTLM, Kerberos и т. д.
  • Session Setup AndX Request/Response
    Это аутентификация, которая, надеюсь, происходит в стиле "запрос / ответ". Вы увидите несколько возможных Responses с сервера:
    • STATUS_MORE_PROCESSING_REQUIRED: проверка подлинности выполняется.
    • STATUS_LOGON_FAILURE: это ошибка входа в систему - они вас заинтересуют больше всего!
    • (ничего), в этом случае вы можете расширить SMB > SMB Header и ищи NT Status: STATUS_SUCCESS, что указывает на успешную аутентификацию.
  • Tree Connect AndX Request/Response
    Это клиент, запрашивающий подключение к определенному месту на сервере; вы обычно видите доступ к IPC$ а также доля, которую вы действительно хотите.

Итак, на самом деле вы ищете строки, в которых говорится STATUS_LOGON_FAILURE. Затем посмотрите на одну строку выше, чтобы узнать, какой пользователь не прошел аутентификацию.

Теперь, когда вы просматриваете общий ресурс, типично видеть ошибки входа в систему; это потому, что Windows сначала пытается аутентифицироваться с использованием учетной записи вошедшего в систему пользователя. Так что не удивляйтесь, если даже между «современными» семействами ОС (2k3, Vista, 2k8) произойдет сбой входа в систему.

Когда я запускал этот тест ранее, я видел три ошибки входа в систему с LOCALCOMPUTER\localuser еще до того, как он даже попытался использовать REMOTECOMPUTER\remoteuser (что, в моем случае, удалось с первой попытки). И когда я попробовал это на машине в другом домене, у меня было десять неудачных попыток входа в систему! Это еще до того, как мне было предложено ввести альтернативные учетные данные.

Если вы хотите отфильтровать все, кроме аутентификации, измените фильтр отображения на:

smb.cmd == 0x73

Чтобы просмотреть список всех сбоев входа в систему, измените фильтр отображения на:

smb.nt_status == 0xc000006d

Имейте в виду, что эти сбои при входе в систему могут не иметь никакого влияния, поскольку обычно учетная запись не существует на удаленной машине (так что для нее не требуется, так сказать, «отрицательный учет»).

редактировать: Вы можете сделать паузу на несколько секунд, когда он запрашивает альтернативные учетные данные, чтобы у вас было четкое представление о том, какие сбои аутентификации относятся к «автоматическим» попыткам, а какие принадлежат вам, умышленно ошибочно введя учетные данные.

Дайте нам знать, что вы узнаете!

Скорее всего, у вас проблема с разницей между NTLM и NTLMv2. Windows 2000 и Samba по умолчанию используют NTLM, который отображается на сервере Windows 2003 и Windows 2008 как попытка допустимого пароля, но не может правильно интерпретировать пароль, ожидая NTLMv2.

Я считаю, что Windows 2000 теперь может поддерживать NTLMv2 вместе с последними версиями Samba ...

Вы можете попробовать настроить Windows 2000 и Samba для использования NTLMv2 ...

Еще одна стратегия, которую вы можете попробовать, - это понизить версию NTLM на ваших серверах Windows 2003/2008, чтобы проверить, остались ли у вас проблемы. Я бы не стал оставлять это в NTLM, поскольку NTLMv2 намного безопаснее.

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

Это также может быть связано с несколькими последовательными проблемами аутентификации при каждой попытке подключения. На сайте есть статья в базе знаний и исправление для Windows 2000. http://support.microsoft.com/kb/264678

Если на то пошло, вы можете отключить методы аутентификации, которые вы не используете. :)