Проверка подлинности Kerberos для рабочих станций вне домена

8

У меня есть базовое понимание того, как Kerberos работает в среде Active Directory и какие методы он использует для аутентификации пользователей и рабочих станций в сети, но у меня такой вопрос ... поскольку Kerberos полагается на выдачу токена безопасности, который конечный пользователь затем использует для доступа сетевые ресурсы, как системы (ноутбуки), не находящиеся в домене, могут получить доступ к одним и тем же сетевым ресурсам, используя только имя пользователя и пароль пользователя активного каталога?

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

Если бы кто-нибудь мог просветить меня, я был бы благодарен!

Эрик
источник
Глупый вопрос .. с использованием Kerberos в среде Active Directory .. есть ли необходимость включать NTLM? Не то чтобы я был полностью уверен, что его можно отключить, но я заметил, что на вики-странице joeqwerty со ссылкой на Microsoft сказано, что он не рекомендует его использовать.
Эрик
Если вы переходите на сервер не по имени (например, \\ 10.12.181.29), то вы переключитесь на NTLM; потому что kerberos зависит от имен серверов, соответствующих их сертификату.
Ян Бойд

Ответы:

3

NTLM используется в этом случае ...

http://msdn.microsoft.com/en-us/library/windows/desktop/aa378749(v=vs.85).aspx

http://en.wikipedia.org/wiki/NTLM

joeqwerty
источник
Глупый вопрос .. с использованием Kerberos в среде Active Directory .. есть ли необходимость включать NTLM? Не то чтобы я был полностью уверен, что его можно отключить, но я заметил, что на вики-странице, на которую вы ссылаетесь, Microsoft не рекомендует использовать ее.
Эрик
5

Как системы (ноутбуки), не входящие в домен, могут получить доступ к одним и тем же сетевым ресурсам, используя только имя пользователя и пароль пользователя активного каталога?

Это зависит от того, какие «сетевые ресурсы» задействованы. На подключенном к домену компьютере Windows, на котором вы вошли, в игре находятся по крайней мере две идентификационные записи Kerberos клиента:

  • вы, пользователь @ DOMAIN
  • компьютер, рабочая станция $ @ DOMAIN

Существует также хост / рабочая станция @ DOMAIN, но это, как правило, идентификация службы, работающей на хосте, доступ к которой осуществляется из других источников. Если привилегированный процесс на хосте хочет что-то сделать, скажем, добавить свое имя в DNS, используя динамический DNS с аутентификацией Kerberos, он использует для этого свою идентификационную информацию, рабочую станцию ​​$ @ DOMAIN. Однако если вы во время сеанса входа в систему обращаетесь к какому-либо ресурсу самостоятельно, например, к сетевому ресурсу CIFS или к URL-адресу с проверкой подлинности HTTP, то идентификатор клиента - это ваше основное имя, user @ DOMAIN (учетные данные, для которых вы получаете данные автоматически, используя пароль, который вы ввели для входа). От вашего вопроса вы, кажется, думаете, что какая-то комбинация вовлечена; это не так, они отдельные.

Вот почему нет проблем с использованием Kerberos для доступа к ресурсам на базе Windows с других платформ. Вы также можете ввести «kinit user» в поле Linux, ввести свой пароль, чтобы получить учетные данные Kerberos (TGT) от контроллера домена, а затем использовать Firefox для доступа к веб-странице с проверкой подлинности Kerberos в IIS. Протоколы для всего этого являются стандартными, и вам ничего не нужно, кроме ваших учетных данных пользователя.

В предыдущем ответе говорилось, что в этом случае требуется NTLM; это неверно (хотя, конечно, это может быть использовано). Однако, когда вы обращаетесь к какому-либо ресурсу с компьютера, не входящего в домен, и у вас запрашивают имя пользователя и пароль, вы не обязательно знаете, какой метод аутентификации фактически используется. Это может использовать Kerberos. Он также может просто прибегнуть к механизму на основе паролей, при котором он отправляет ваше имя пользователя и пароль на сервер для проверки, а затем кэширует ваш пароль, чтобы вам не приходилось вводить его повторно. Многие протоколы позволяют использовать обе схемы абстракции, такие как SASL. Вы должны посмотреть на провод, чтобы увидеть, что происходит.

Ричард Э. Сильверман
источник
Если использовался Kerberos, вы можете впоследствии увидеть закешированный билет службы с помощью команды "klist". Если вы получили доступ без этого, что вызвало кэширование билета службы, скорее всего, вы использовали NTLM. Чтобы действительно подтвердить, что вы использовали Kerberos, вам, вероятно, придется отключить NTLM (в случае, если Windows все еще может переключиться с Kerberos на NTLM после получения билета на обслуживание).
Маркус Кун
1

Ниже приведены инструкции по аутентификации на сервере Samba с использованием Kerberos из клиента Windows 7/10 (возможно, других). Я не проверял другие версии клиента и сервера:

На клиенте Windows «Запуск от имени администратора» cmd.exe. Затем введите эту команду, чтобы предоставить Windows сведения о контроллере домена Kerberos (KDC) для Kerberos REALM.COM.

Если KDC находятся в DNS:

ksetup /addkdc REALM.COM

В противном случае:

ksetup /addkdc REALM.COM kdc01.realm.com

(Введите дополнительные KDC для области REALM.COM, если они существуют. Также можно добавить другие области в любом стиле.)

Затем используйте проводник для доступа к интересующей сетевой папке. (Например, \\samba.realm.com\shareв адресной строке.) Откроется запрос пароля, если общий ресурс защищен.

Вам нужно будет указать область в имени пользователя. Это может быть сделано как user@REALM.COMили REALM.COM\user.

Затем введите пароль.

lickdragon
источник
0

Я знаю по крайней мере одну систему, которая может использовать kerberos, которая работает с рабочих станций, не входящих в домен. Это приложение называется «Портал SAP NETWEAVER». Я выполнил некоторый анализ сетевого трафика на рабочей станции и во время связи, когда захожу в веб-приложение, которое находится между рабочей станцией и контроллерами домена. Перед этим выполняется DNS-запрос для записей домена srv _krb, которые я передал в поле имени пользователя (это должен быть формат домена FQDN, например, mydomain.local \ myusername). После этого происходит несколько кадров kerberos.

Katter
источник