Я ломал себе голову, пытаясь заставить 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.
Чтобы рабочая станция Windows 2000 могла использовать Kerberos KDC, необходимо настроить и сервер Kerberos KDC, и рабочую станцию, как описано ниже.
Чтобы настроить сервер Kerberos KDC и рабочую станцию Windows 2000
Запустить Ksetup утилита для настройки сервера Kerberos KDC и области (подробности см. Ksetup раздел далее в этом документе).
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.
C:> Ksetup /setdomain REALM.RESKIT.COM
C:> Ksetup /addkdc REALM.RESKIT.COM kdc.realm.reskit.com
C:> Ksetup /setmachpassword password
Перезагрузите компьютер, чтобы изменения вступили в силу. (Это обязательный шаг.) При внесении изменений во внешний KDC и конфигурацию области требуется перезапуск.
Использовать Ksetup для настройки единого входа в учетные записи локальных рабочих станций. Определите сопоставления счетов; это сопоставит учетные записи локальных компьютеров с принципалами Kerberos. Например:
C:> Ksetup /mapuser auser@REALM.RESKIT.COM guest C:> Ksetup /mapuser * *
Обратите внимание, что вторая команда сопоставляет клиентов с локальными учетными записями с тем же именем.
Использовать Ksetup без аргументов, чтобы увидеть текущие настройки. (Обратите внимание, что серверы KDC не показаны.)
@jyvenard - то, что, вероятно, в конечном итоге сделал Томмед, - это использовать SSH или какой-либо другой метод для аутентификации своего ящика. Если он использовал SSH (что я, вероятно, сделал бы в этих обстоятельствах), то у него, вероятно, есть хост, на котором он аутентифицирован, против использования kerberos.
В таком методе:
[client] --ssh -> [host] --pam support for ssh -> [KDC server]
[клиент] <- ssh-- [хост] <- успех или неудача - [сервер KDC]
Он использует kerberos для аутентификации пользователя в его клиентской системе, пытаясь установить ssh на хост, который пытается проверить его учетные данные с помощью KDC, но билет Kerberos фактически никогда не приобретается клиентом, только успех или сбой в сеансе ssh.