Управление корневыми ключами
Для работы с корневыми ключами с помощью утилиты samba-tool используется группа подкоманд domain kds root-key.
Операции доступны пользователям с правами администратора домена (член группы Domain Admins) или администратора предприятия (член группы Enterprise Admins).
Корневые ключи KDS в Эллес
Чтобы контроллеры домена начали формировать пароли для учетных записей gMSA, должен быть сгенерирован корневой ключ (root key). Данный ключ сохраняется в контейнере CN=Master Root Keys,CN=Group Key Distribution Service,CN=Services,CN=Configuration,DC=domain,DC=name службы каталогов и реплицируется на все контроллеры домена.
Корневой ключ представляет собой объект класса msKds-ProvRootKey с ассиметричным ключом; длина открытой (msKds-PublicKeyLength) и закрытой (msKds-PrivateKeyLength) части ассиметричного ключа используется для создания секретов с помощью алгоритма симметричного шифрования.
Создание корневого ключа
Формат вызова:
samba-tool domain kds root-key create [-H <URL>] [options]
При создании ключу присваивается уникальный идентификатор (GUID), который должен в дальнейшем использоваться для работы с ним.
По умолчанию время начала периода действия корневого ключа совпадает с временем его создания. Существует возможность задать начало периода действия с помощью параметра --use-start-time.
Рекомендуется задавать это значение таким образом, чтобы выделенного интервала было достаточно для репликации корневого ключа на все контроллеры в домене. Попытка воспользоваться учетной записью gMSA до момента завершения процесса репликации со всеми его участниками может привести к невозможности получения пароля.
При создании домена «Эллес» с помощью подкоманды samba-tool domain provision корневой ключ создается автоматически.
|
Параметры
Параметры вызова:
-
-H URL|--URL=URL— URL сервера LDAP; может содержать указание на протокол, имя хоста и номер порта; -
--json— вывод результатов выполнения операции в формате JSON; -
--use-start-time— начало использования корневого ключа в формате ISO 8601YYYY-MM-DD HH:MM:SS, в формате временной метки LDAPYYYYmmddHHMMSS.0Zили в виде строкового значенияnow(ключ доступен для использования на целевом контроллере сразу после создания); -
-v|--verbose— вывод детальной информации.
Примеры
Пример создания корневого ключа:
samba-tool domain kds root-key create created root key 52c454a8-9e1d-0b4b-3e1a-75b360333e85, usable from 2024-07-09T20:32:30.989180+00:00 (about now)
Пример создания корневого ключа с выводом детальной информации в формате JSON:
samba-tool domain kds root-key create \
--json \
-v
{
"cn": "0bab54e8-ca8b-6b09-05a6-25df7b3fba84",
"dn": "CN=0bab54e8-ca8b-6b09-05a6-25df7b3fba84,CN=Master Root Keys,CN=Group Key Distribution Service,CN=Services,CN=Configuration,DC=elles,DC=inno,DC=tech",
"message": "created root key 0bab54e8-ca8b-6b09-05a6-25df7b3fba84, usable from 2024-07-09T20:35:20.560902+00:00 (about now)\n",
"msKds-CreateTime": "2024-07-09T20:35:20.560902+00:00",
"msKds-DomainID": "CN=DC01,OU=Domain Controllers,DC=elles,DC=inno,DC=tech",
"msKds-KDFAlgorithmID": "SP800_108_CTR_HMAC",
"msKds-KDFParam": "00000000010000000e000000000000005300480041003500310032000000",
"msKds-PrivateKeyLength": 256,
"msKds-PublicKeyLength": 2048,
"msKds-SecretAgreementAlgorithmID": "DH",
"msKds-UseStartTime": "2024-07-09T20:35:20.560902+00:00",
"msKds-Version": 1,
"name": "0bab54e8-ca8b-6b09-05a6-25df7b3fba84",
"objectGUID": "c637f7ac-0144-4a67-8f86-6f3e6eac6a7d",
"whenChanged": "20240709203520.0Z",
"whenCreated": "20240709203520.0Z"
}
Пример создания корневого ключа с заданием начала периода действия:
samba-tool domain kds root-key create \
--json \
--use-start-time='2024-07-10 10:00:00'
{
"dn": "CN=11840b9f-451a-a4b1-0a4f-eb01bd957aa1,CN=Master Root Keys,CN=Group Key Distribution Service,CN=Services,CN=Configuration,DC=elles,DC=inno,DC=tech",
"message": "created root key 11840b9f-451a-a4b1-0a4f-eb01bd957aa1, usable from 2024-07-10T07:00:00+00:00 (about 10 hours in the FUTURE)",
"msKds-CreateTime": "133650311471620020",
"msKds-UseStartTime": "133650684000000000",
"name": "11840b9f-451a-a4b1-0a4f-eb01bd957aa1",
"status": "OK"
}
Удаление корневого ключа
Формат вызова:
samba-tool domain kds root-key delete [-H <URL>] [options]
В качестве имени корневого ключа в параметре --name ожидается GUID, присвоенный ему при создании. Для получения GUID доступных корневых ключей используйте подкоманду samba-tool domain kds root-key list.
| Удаление и последующее повторное создание корневого ключа может приводить к проблемам, поскольку старый ключ сохраняется в кэше контроллеров домена и его использование может продолжаться и после удаления. В этом случае рекомендуется перезапустить службу KDS на всех контроллерах домена. |
Параметры
Параметры вызова:
-
-H URL|--URL=URL— URL сервера LDAP; может содержать указание на протокол, имя хоста и номер порта; -
--name— GUID удаляемого корневого ключа (обязательный); -
--json— вывод результатов выполнения операции в формате JSON.
Примеры
Пример удаления корневого ключа:
-
получение GUID:
samba-tool domain kds root-key list \ --json [ { "dn": "CN=11840b9f-451a-a4b1-0a4f-eb01bd957aa1,CN=Master Root Keys,CN=Group Key Distribution Service,CN=Services,CN=Configuration,DC=elles,DC=inno,DC=tech", "msKds-CreateTime": "2024-07-09T20:39:07.162002+00:00", "msKds-UseStartTime": "2024-07-10T07:00:00+00:00", "name": "11840b9f-451a-a4b1-0a4f-eb01bd957aa1" } ] -
удаление корневого ключа:
samba-tool domain kds root-key delete \ --name=11840b9f-451a-a4b1-0a4f-eb01bd957aa1 deleted root key 11840b9f-451a-a4b1-0a4f-eb01bd957aa1
Получение информации о корневом ключе
Формат вызова:
samba-tool domain kds root-key view [-H <URL>] [options]
В качестве имени корневого ключа в параметре --name ожидается GUID, присвоенный ему при создании. Для получения GUID доступных корневых ключей используйте подкоманду samba-tool domain kds root-key list.
Для получения информации о последнем созданном ключе без указания его GUID может использоваться параметр --latest.
В базовом варианте вызова подкоманды в выводе содержатся следующие основные атрибуты корневого ключа:
-
cn— относительное доменное имя (GUID) ключа; -
dn— уникальное доменное имя ключа; -
msKds-CreateTime— время создания ключа; -
msKds-DomainID— полное доменное имя сервера, на котором был создан ключ; -
msKds-KDFAlgorithmID— идентификатор криптографического алгоритма (по умолчанию —SP800_108_CTR_HMAC); -
msKds-KDFParam— параметры для алгоритма наследования ключа; -
msKds-PrivateKeyLength— длина закрытой части ключа (по умолчанию —256); -
msKds-PublicKeyLength— длина открытой части ключа (по умолчанию — 2048); -
msKds-SecretAgreementAlgorithmID— алгоритм совместной генерации общего секретного ключа (по умолчанию —DH); -
msKds-UseStartTime— начало периода действия ключа; -
msKds-Version— версия ключа (по умолчанию —1); -
name— GUID ключа; -
objectGUID— GUID объекта; -
whenChanged— время последнего изменения; -
whenCreated— время создания.
Параметры
Параметры вызова:
-
-H URL|--URL=URL— URL сервера LDAP; может содержать указание на протокол, имя хоста и номер порта; -
--name— GUID удаляемого корневого ключа (обязательный, если не передается--latest); -
--latest— получение информации о последнем созданном корневом ключе без указания его GUID (обязательный, если не передается--name); -
--show-secrets— добавление в вывод секретов; -
--json— вывод результатов выполнения операции в формате JSON; -
-v|--verbose— вывод детальной информации.
Примеры
Пример получения детальной информации о последнем созданном корневом ключе в формате JSON:
samba-tool domain kds root-key view \
--latest \
--show-secrets \
--json \
-v
{
"cn": "0bab54e8-ca8b-6b09-05a6-25df7b3fba84",
"distinguishedName": "CN=0bab54e8-ca8b-6b09-05a6-25df7b3fba84,CN=Master Root Keys,CN=Group Key Distribution Service,CN=Services,CN=Configuration,DC=elles,DC=inno,DC=tech",
"dn": "CN=0bab54e8-ca8b-6b09-05a6-25df7b3fba84,CN=Master Root Keys,CN=Group Key Distribution Service,CN=Services,CN=Configuration,DC=elles,DC=inno,DC=tech",
"instanceType": "4",
"msKds-CreateTime": "2024-07-09T20:35:20.560902+00:00",
"msKds-DomainID": "CN=DC01,OU=Domain Controllers,DC=elles,DC=inno,DC=tech",
"msKds-KDFAlgorithmID": "SP800_108_CTR_HMAC",
"msKds-KDFParam": "00000000010000000e000000000000005300480041003500310032000000",
"msKds-PrivateKeyLength": 256,
"msKds-PublicKeyLength": 2048,
"msKds-RootKeyData": "847e4120e425ef00e5ee118c75bef973981d9db849718b14ca9020c2ec66665e1bf6f3498223286670a39f272b16c733b8be012d6ffbfe45062e7598a6a65a3e",
"msKds-SecretAgreementAlgorithmID": "DH",
"msKds-SecretAgreementParam": "0c0200004448504d0001000087a8e61db4b6663cffbbd19c651959998ceef608660dd0f25d2ceed4435e3b00e00df8f1d61957d4faf7df4561b2aa3016c3d91134096faa3bf4296d830e9a7c209e0c6497517abd5a8a9d306bcf67ed91f9e6725b4758c022e0b1ef4275bf7b6c5bfc11d45f9088b941f54eb1e59bb8bc39a0bf12307f5c4fdb70c581b23f76b63acae1caa6b7902d52526735488a0ef13c6d9a51bfa4ab3ad8347796524d8ef6a167b5a41825d967e144e5140564251ccacb83e6b486f6b3ca3f7971506026c0b857f689962856ded4010abd0be621c3a3960a54e710c375f26375d7014103a4b54330c198af126116d2276e11715f693877fad7ef09cadb094ae91e1a15973fb32c9b73134d0b2e77506660edbd484ca7b18f21ef205407f4793a1a0ba12510dbc15077be463fff4fed4aac0bb555be3a6c1b0c6b47b1bc3773bf7e8c6f62901228f8c28cbb18a55ae31341000a650196f931c77a57f2ddf463e5e9ec144b777de62aaab8a8628ac376d282d6ed3864e67982428ebc831d14348f6f2f9193b5045af2767164e1dfc967c1fb3f2e55a4bd1bffe83b9c80d052b985d182ea0adb2a3b7313d3fe14c8484b1e052588b9b7d2bbd2df016199ecd06e1557cd0915b3353bbb64e0ec377fd028370df92b52c7891428cdc67eb6184b523d1db246c32f63078490f00ef8d647d148d47954515e2327cfef98c582664b4c0f6cc41659",
"msKds-UseStartTime": "2024-07-09T20:35:20.560902+00:00",
"msKds-Version": 1,
"name": "0bab54e8-ca8b-6b09-05a6-25df7b3fba84",
"objectCategory": "CN=ms-Kds-Prov-RootKey,CN=Schema,CN=Configuration,DC=elles,DC=inno,DC=tech",
"objectClass": [
"top",
"msKds-ProvRootKey"
],
"objectGUID": "c637f7ac-0144-4a67-8f86-6f3e6eac6a7d",
"showInAdvancedViewOnly": "TRUE",
"uSNChanged": "5024",
"uSNCreated": "5024",
"whenChanged": "20240709203520.0Z",
"whenCreated": "20240709203520.0Z"
}
Получение списка корневых ключей в домене
Формат вызова:
samba-tool domain kds root-key list [-H <URL>] [options]
В базовом варианте вызова подкоманды в выводе содержатся следующие основные атрибуты каждого корневого ключа:
-
dn— уникальное доменное имя ключа; -
msKds-CreateTime— время создания ключа; -
msKds-UseStartTime— начало периода действия ключа; -
name— GUID ключа.
Параметры
Параметры вызова:
-
-H URL|--URL=URL— URL сервера LDAP; может содержать указание на протокол, имя хоста и номер порта; -
--show-secrets— добавление в вывод секретов; -
--json— вывод результатов выполнения операции в формате JSON; -
-v|--verbose— вывод детальной информации.
Примеры
Получение списка корневых ключей в домене в формате JSON:
samba-tool domain kds root-key list \
--json
[
{
"dn": "CN=0bab54e8-ca8b-6b09-05a6-25df7b3fba84,CN=Master Root Keys,CN=Group Key Distribution Service,CN=Services,CN=Configuration,DC=elles,DC=inno,DC=tech",
"msKds-CreateTime": "2024-07-09T20:35:20.560902+00:00",
"msKds-UseStartTime": "2024-07-09T20:35:20.560902+00:00",
"name": "0bab54e8-ca8b-6b09-05a6-25df7b3fba84"
},
{
"dn": "CN=c730bd98-53ec-942d-7507-ecc02e4828ff,CN=Master Root Keys,CN=Group Key Distribution Service,CN=Services,CN=Configuration,DC=elles,DC=inno,DC=tech",
"msKds-CreateTime": "2024-07-09T20:34:59.444824+00:00",
"msKds-UseStartTime": "2024-07-09T20:34:59.444824+00:00",
"name": "c730bd98-53ec-942d-7507-ecc02e4828ff"
}
]
Обновлено: