Инструменты пользователя

Инструменты сайта


learning:krb

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
learning:krb [29.03.2021 14:50] viacheslavlearning:krb [30.07.2024 19:21] (текущий) – внешнее изменение 127.0.0.1
Строка 1: Строка 1:
 +===== Keytabs =====
 +Кейтаб - текстовый файл, содержащий сведения о сервисе, защищаемом Kerberos, и зашифрованном ключе, ассоциированном с SPN (service principal name), хранящимся на контроллере домена. Нужен для связывания неWindows-систем с доменом, для работы SSO.
  
 +Генерируется на серверных ОС, входящих в домен.
 +++++ ktpass /? |
 +<code>
 +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.
 +</code>
 +++++
 +Пример создания:
 +<code powershell>
 +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
 +</code>
 +Если пересоздать кейтаб, используя тот же SPN, то необходимо перенастроить сервис на новый кейтаб и перезапустить его.
 +
 +Автогенерация пароля предпочтительна - нет шансов его компрометации.
 +
 +Если возникла ошибка <color #ed1c24>Unable to set SPN mapping data,</color> то нужно пересоздать кейтаб, так как этот работать не будет. Нужно сделать следующее:
 +
 +  - Проверить, не дубликат ли это. Команда ''setspn -x'' найдёт учётную запись, где созержится дубликат.
 +  - Удалить дубликат, если таковой обнаружится.
 +  - Убедиться, что ktpass запущен на серверной системе.
 +  - Выключить UAC.
 +  - Запустить консоль с привилегиями доменного админа.
 +  - Запустить ktpass снова.
 +
 +Если как-либо модифицировать кейтаб после его создания, то он перестанет работать, нужно будет его пересоздавать.
 +
 +После создания кейтаба User logon name в свойствах учётки изменится, и будет иметь вид типа HTTP/proxy.domain.ru, также в свойствах нужно включить галку "This account supports Kerberos AES 256 bit encryption", чтобы не получать ошибку <color #ed1c24>Cannot find key of appropriate type to decrypt AP REP...</color>
 +
 +Опция ''-crypto ALL'' помещает все возможные типы шифрования в кейтаб, и сервер с клиентом потом будут выбирать наиболее стойкий вариант.
 +
 +Тест кейтаба (это уже в линуксе на сервере сервиса):
 +<code powershell>
 +kinit -k -t centos1-dev-local.keytab HTTP/centos1.dev.local
 +</code>
 +
 +https://social.technet.microsoft.com/wiki/contents/articles/36470.active-directory-using-kerberos-keytabs-to-integrate-non-windows-systems.aspx

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki