===== Keytabs ===== Кейтаб - текстовый файл, содержащий сведения о сервисе, защищаемом Kerberos, и зашифрованном ключе, ассоциированном с SPN (service principal name), хранящимся на контроллере домена. Нужен для связывания неWindows-систем с доменом, для работы SSO. Генерируется на серверных ОС, входящих в домен. ++++ ktpass /? | Command line options: ---------------------most useful args [- /] out : Keytab to produce [- /] princ : Principal name (user@REALM) [- /] pass : password to use use '*' to prompt for password. [- +] rndPass : ... or use +rndPass to generate a random password [- /] minPass : minimum length for random password (def:15) [- /] maxPass : maximum length for random password (def:256) ---------------------less useful stuff [- /] mapuser : map princ (above) to this user account (default: don't) [- /] mapOp : how to set the mapping attribute (default: add it) [- /] mapOp : is one of: [- /] mapOp : add : add value (default) [- /] mapOp : set : set value [- +] DesOnly : Set account for des-only encryption (default:don't) [- /] in : Keytab to read/digest ---------------------options for key generation [- /] crypto : Cryptosystem to use [- /] crypto : is one of: [- /] crypto : DES-CBC-CRC : for compatibility [- /] crypto : DES-CBC-MD5 : for compatibility [- /] crypto : RC4-HMAC-NT : default 128-bit encryption [- /] crypto : AES256-SHA1 : AES256-CTS-HMAC-SHA1-96 [- /] crypto : AES128-SHA1 : AES128-CTS-HMAC-SHA1-96 [- /] crypto : All : All supported types [- /] IterCount : Iteration Count used for AES encryption Default: ignored for non-AES, 4096 for AES [- /] ptype : principal type in question [- /] ptype : is one of: [- /] ptype : KRB5_NT_PRINCIPAL : The general ptype-- recommended [- /] ptype : KRB5_NT_SRV_INST : user service instance [- /] ptype : KRB5_NT_SRV_HST : host service instance [- /] ptype : KRB5_NT_SRV_XHST : [- /] kvno : Override Key Version Number Default: query DC for kvno. Use /kvno 1 for Win2K compat. [- +] Answer : +Answer answers YES to prompts. -Answer answers NO. [- /] Target : Which DC to use. Default:detect [- /] RawSalt : raw salt to use when generating key (not needed) [- +] DumpSalt : show us the MIT salt being used to generate the key [- +] SetUpn : Set the UPN in addition to the SPN. Default DO. [- +] SetPass : Set the user's password if supplied. ++++ Пример создания: ktpass -out centos1-dev-local.keytab -mapUser krbCentos@DEV.LOCAL +rndPass -mapOp set +DumpSalt -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -princ HTTP/centos1.dev.local@DEV.LOCAL Если пересоздать кейтаб, используя тот же SPN, то необходимо перенастроить сервис на новый кейтаб и перезапустить его. Автогенерация пароля предпочтительна - нет шансов его компрометации. Если возникла ошибка Unable to set SPN mapping data, то нужно пересоздать кейтаб, так как этот работать не будет. Нужно сделать следующее: - Проверить, не дубликат ли это. Команда ''setspn -x'' найдёт учётную запись, где созержится дубликат. - Удалить дубликат, если таковой обнаружится. - Убедиться, что ktpass запущен на серверной системе. - Выключить UAC. - Запустить консоль с привилегиями доменного админа. - Запустить ktpass снова. Если как-либо модифицировать кейтаб после его создания, то он перестанет работать, нужно будет его пересоздавать. После создания кейтаба User logon name в свойствах учётки изменится, и будет иметь вид типа HTTP/proxy.domain.ru, также в свойствах нужно включить галку "This account supports Kerberos AES 256 bit encryption", чтобы не получать ошибку Cannot find key of appropriate type to decrypt AP REP... Опция ''-crypto ALL'' помещает все возможные типы шифрования в кейтаб, и сервер с клиентом потом будут выбирать наиболее стойкий вариант. Тест кейтаба (это уже в линуксе на сервере сервиса): kinit -k -t centos1-dev-local.keytab HTTP/centos1.dev.local https://social.technet.microsoft.com/wiki/contents/articles/36470.active-directory-using-kerberos-keytabs-to-integrate-non-windows-systems.aspx