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

Аутентификация Windows 7 по MIT Kerberos 5

Я ломал себе голову, пытаясь заставить Windows 7 аутентифицироваться в MIT Kerberos 5 Realm (которая работает на сервере Arch Linux).

Я сделал следующее на сервере (он же dc1):

addpol users
addpol admin
addpol hosts
ank -policy users tom@TNET.LOC
ank -policy admin tom/admin@TNET.LOC
ank -policy hosts host/wdesk3.tnet.loc -pw MYPASSWORDHERE

Затем я сделал следующее с клиентом Windows 7 (он же wdesk3):

ksetup /SetRealm TNET.LOC
ksetup /AddKdc dc1.tnet.loc
ksetip /SetComputerPassword MYPASSWORDHERE
ksetip /MapUser * *

Однако после всего этого я все еще не могу войти в систему из своего клиента Windows. :(

Смотрим логи на сервере; запрос выглядит нормально, и все работает отлично, я думаю, проблема в том, что ответ от KDC не распознается клиентом Windows, и появляется общая ошибка входа: «Ошибка входа: имя пользователя или пароль недействительны».

Файл журнала для сервера выглядит так (я следил за этим, поэтому знаю, что это происходит, когда машина Windows пытается войти в систему): Снимок экрана: http://dl.dropbox.com/u/577250/email/login_attempt.png

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

Если я попробую: runas / netonly /user:tom@TNET.LOC cmd.exe все работает (хотя я ничего не вижу в журналах сервера, поэтому мне интересно, не касается ли он сервер для этого ??), но если я запускаю: runas /user:tom@TNET.LOC cmd.exe У меня такая же ошибка аутентификации.

Любые гуру Kerberos, которые могут дать мне несколько идей, что попробовать дальше? пожалуйста

Проверять, выписываться pGina. У него нет плагина Kerberos, поэтому вам придется его написать. В качестве альтернативы вы можете использовать OpenLDAP в качестве прокси и использовать плагин pGina LDAP.

Очевидно, AD абсолютно необходим, если у вас есть клиенты Windows, поскольку клиентам Windows требуется небольшое расширение к стандартному билету Kerberos, который добавляет AD.

Сервер MIT Kerberos в настоящее время не может самостоятельно аутентифицировать клиентов Windows.

(Информация получена в группе новостей MIT Kerberos)

Это возможно, но, как указано в приведенном ниже документе, вам нужно будет сопоставить локальных пользователей с принципами Kerberos.

Я полагаю, что для этого можно было бы использовать какую-то форму сценария входа в систему. Вход в Windows - это отдельный процесс. pGina может помочь в этом, как указывает ptman.


Использование MIT KDC с автономной рабочей станцией Windows 2000

Чтобы рабочая станция Windows 2000 могла использовать Kerberos KDC, необходимо настроить и сервер Kerberos KDC, и рабочую станцию, как описано ниже.

Чтобы настроить сервер Kerberos KDC и рабочую станцию ​​Windows 2000

  1. Запустить Ksetup утилита для настройки сервера Kerberos KDC и области (подробности см. Ksetup раздел далее в этом документе).

    • В области Kerberos создайте участника-хост для компьютера. Используйте команду:

    Kadmin q "ank pw password host / machine-name.dns-domain_name"

    Например, если имя рабочей станции Windows 2000 - W2KW, а имя области Kerberos - REALM.RESKIT.COM, основное имя - host / w2kw.realm.reskit.com.

    Kadmin - это утилита, которая является частью дистрибутива MIT Kerberos.

    • Поскольку область Kerberos не является доменом Windows 2000, компьютер должен быть настроен как член рабочей группы. Это происходит автоматически, когда вы устанавливаете область Kerberos и добавляете сервер KDC следующим образом:
    C:> Ksetup /setdomain REALM.RESKIT.COM
    C:> Ksetup /addkdc REALM.RESKIT.COM kdc.realm.reskit.com
    • Установите пароль учетной записи на локальном компьютере, как показано ниже:
    C:> Ksetup /setmachpassword password
  2. Перезагрузите компьютер, чтобы изменения вступили в силу. (Это обязательный шаг.) При внесении изменений во внешний KDC и конфигурацию области требуется перезапуск.

  3. Использовать Ksetup для настройки единого входа в учетные записи локальных рабочих станций. Определите сопоставления счетов; это сопоставит учетные записи локальных компьютеров с принципалами Kerberos. Например:

    C:> Ksetup /mapuser auser@REALM.RESKIT.COM guest C:> Ksetup /mapuser * *

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

  4. Использовать Ksetup без аргументов, чтобы увидеть текущие настройки. (Обратите внимание, что серверы KDC не показаны.)


@jyvenard - то, что, вероятно, в конечном итоге сделал Томмед, - это использовать SSH или какой-либо другой метод для аутентификации своего ящика. Если он использовал SSH (что я, вероятно, сделал бы в этих обстоятельствах), то у него, вероятно, есть хост, на котором он аутентифицирован, против использования kerberos.

В таком методе:

[client] --ssh -> [host] --pam support for ssh -> [KDC server]

[клиент] <- ssh-- [хост] <- успех или неудача - [сервер KDC]

Он использует kerberos для аутентификации пользователя в его клиентской системе, пытаясь установить ssh на хост, который пытается проверить его учетные данные с помощью KDC, но билет Kerberos фактически никогда не приобретается клиентом, только успех или сбой в сеансе ssh.