Bug 50096 - Ошибка при создании пользователя - "Сервер не хочет выполнять".
Summary: Ошибка при создании пользователя - "Сервер не хочет выполнять".
Status: NEW
Alias: None
Product: Branch p10
Classification: Unclassified
Component: admc (show other bugs)
Version: не указана
Hardware: x86_64 Linux
: P5 normal
Assignee: samael@altlinux.org
QA Contact: qa-p10@altlinux.org
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-04-19 18:41 MSK by Nikolai Zurabishvili
Modified: 2024-07-24 15:45 MSK (History)
9 users (show)

See Also:


Attachments
список пакетов, после обновления которых воспроизводится ошибка (4.72 KB, text/plain)
2024-07-02 19:11 MSK, Дмитрий
no flags Details
Wireshark connection (130.49 KB, image/png)
2024-07-22 19:01 MSK, Andrey Limachko
no flags Details
Wireshark LDAP Request (263.55 KB, image/png)
2024-07-22 19:01 MSK, Andrey Limachko
no flags Details
Wireshark LDAP Response (336.60 KB, image/png)
2024-07-22 19:02 MSK, Andrey Limachko
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Nikolai Zurabishvili 2024-04-19 18:41:38 MSK
admc-0.16.0-alt1

Стенды (обновлены до сизифа):
Клиенты:
KWorkstation 10.2.1 x86-64
Workstation 10.2 x86-64

Server 10.1 x86-64 - контроллер домена dc 

Шаги:
1. $ kinit administrator 
$ admc
2. Создать нового пользователя:

Раскрыть список с именем домена -> ПКМ на Users -> Создать -> Пользователь

Ввести необходимые данные и включить/выключить чекбокс Пользователь должен сменить пароль при следующем входе в систему (не влияет на воспроизведение ошибки)

Нажать OK

Фактический результат: Появляется окно с ошибкой - Не удалось изменить пароль для объекта Иванов. Ошибка: "Сервер не хочет выполнять".

Ожидаемый результат: Успешное создание пользователя. Пользователь появился в списке.

В p10 не воспроизводится

Доп: Текст ошибки совершенно непонятен. По какой причине сервер не хочет выполнять ? Настроение плохое ?
На самом dc сервере при этом корректно создаются пользователи например командой: # samba-tool user create newuser 123
Comment 1 Vodin26 2024-06-20 11:12:33 MSK
admc 0.16.3

KWorkstation 11.0
Ядро 6.6.31-un-def-alt1 

Тоже проблема при попытки сбросить пароль у пользователя. 
Не удалось изменить пароль для объекта Ошибка: "Сервер не хочет выполнять".
Comment 2 Дмитрий 2024-07-02 19:11:13 MSK
Created attachment 16361 [details]
список пакетов, после обновления которых воспроизводится ошибка
Comment 3 Дмитрий 2024-07-02 19:14:05 MSK
admc 0.16.3-alt1

AltServer 10.2 x86_64
AltWorkstation 10.2 x86_64

Ошибка воспроизводится при создании пользователя, либо при попытке смены пароля через интерфейс admc. Через samba-tool все действия выполняются без ошибок.
Стало воспроизводиться после обновления системы. Список прилетевших пакетов в предыдущем комментарии во вложении
Comment 4 Дмитрий 2024-07-02 19:55:13 MSK
upd:
Ошибка воспроизводится после обновления следующих пакетов:
1: libsasl2-3-2.1.27-alt2.1            
2: libsasl2-plugin-gssapi-2.1.27-alt2.1

Проверено даунгрейдом на репозиторий 3-недельной давности и попытками обновлять вручную пакеты из списка.
Comment 5 Samael 2024-07-02 21:00:25 MSK
Добавил в бэклог https://my.basealt.space/issues/140250
Comment 6 Andrey Limachko 2024-07-22 18:35:20 MSK
Проблема возникает при попытке admc сменить пароль созданному пользователю.
Для этого admc пытается выполнить операцию LDAP Modify (Action: replace) на атрибуте "unicodePwd". Сервер отказывает ему в этой операции с кодом ошибки 53 (Unwilling to perform).

Про unicodePwd:
https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-adts/6e803168-f140-4d23-b2d3-c3a8ab5917d2

Происходит это в функции AdInterface::attribute_replace_values, где вызывается функция ldap_modify_ext_s.

На контроллере домена при этом происходит следующее:
[2024/07/22 19:17:17.116789,  5] ../../source4/kdc/db-glue.c:3718(dsdb_extract_aes_256_key)
  dsdb_extract_aes_256_key: Failed to find a ENCTYPE_HMAC_SHA1_96_AES256 key in supplementalCredentials of CN=pupupu,OU=fghfgh,DC=domain,DC=alt at KVNO 1 (got 0 keys, expected 1)
[2024/07/22 19:17:17.126451,  5] ../../lib/audit_logging/audit_logging.c:97(audit_log_human_text)
  DSDB Change [Modify] at [Mon, 22 Jul 2024 19:17:17.126434 +04] status [Unwilling to perform] remote host [ipv4:10.64.128.194:53866] SID [S-1-5-21-439847955-704139617-3774719554-500] DN [CN=pupupu,OU=fghfgh,DC=domain,DC=alt] attributes [repl
ace: unicodePwd [REDACTED SECRET ATTRIBUTE]]
[2024/07/22 19:17:17.126600,  5] ../../lib/audit_logging/audit_logging.c:97(audit_log_human_text)
  Password Change [Reset] at [Mon, 22 Jul 2024 19:17:17.126593 +04] status [Unwilling to perform] remote host [ipv4:10.64.128.194:53866] SID [S-1-5-21-439847955-704139617-3774719554-500] DN [CN=pupupu,OU=fghfgh,DC=domain,DC=alt]
  {"timestamp": "2024-07-22T19:17:17.126630+0400", "type": "dsdbChange", "dsdbChange": {"version": {"major": 1, "minor": 0}, "statusCode": 53, "status": "Unwilling to perform", "operation": "Modify", "remoteAddress": "ipv4:10.64.128.194:53866
", "performedAsSystem": false, "userSid": "S-1-5-21-439847955-704139617-3774719554-500", "dn": "CN=pupupu,OU=fghfgh,DC=domain,DC=alt", "transactionId": "cfb02dc3-367a-40a1-b263-e6830a82e4d1", "sessionId": "b0c94ddf-1790-4e84-b7dc-6d9f7a8f93c4", "attributes": {"unicodePwd": {"actions": [{"action": "replace", "redacted": true}]}}}}
  {"timestamp": "2024-07-22T19:17:17.126707+0400", "type": "passwordChange", "passwordChange": {"version": {"major": 1, "minor": 1}, "eventId": 4724, "statusCode": 53, "status": "Unwilling to perform", "remoteAddress": "ipv4:10.64.128.194:538
66", "userSid": "S-1-5-21-439847955-704139617-3774719554-500", "dn": "CN=pupupu,OU=fghfgh,DC=domain,DC=alt", "action": "Reset", "transactionId": "cfb02dc3-367a-40a1-b263-e6830a82e4d1", "sessionId": "b0c94ddf-1790-4e84-b7dc-6d9f7a8f93c4"}}
[2024/07/22 19:17:17.126842,  5] ../../lib/audit_logging/audit_logging.c:97(audit_log_human_text)
  DSDB Transaction [rollback] at [Mon, 22 Jul 2024 19:17:17.126793 +04] duration [12775]
  {"timestamp": "2024-07-22T19:17:17.126865+0400", "type": "dsdbTransaction", "dsdbTransaction": {"version": {"major": 1, "minor": 0}, "action": "rollback", "transactionId": "cfb02dc3-367a-40a1-b263-e6830a82e4d1", "duration": 12775}}
Comment 7 Andrey Limachko 2024-07-22 18:59:37 MSK
Wireshark говорит, что, для выполнения LDAP Modify для атрибута UnicodePwd, шифрование вообще не используется.

Выглядит так, будто для подключения sasl выбирает механизм simple bind.
Comment 8 Andrey Limachko 2024-07-22 19:01:02 MSK
Created attachment 16461 [details]
Wireshark connection
Comment 9 Andrey Limachko 2024-07-22 19:01:51 MSK
Created attachment 16462 [details]
Wireshark LDAP Request
Comment 10 Andrey Limachko 2024-07-22 19:02:22 MSK
Created attachment 16463 [details]
Wireshark LDAP Response
Comment 11 Корытов Иван 2024-07-24 15:45:48 MSK
(Ответ для Дмитрий на комментарий #4)
> upd:
> Ошибка воспроизводится после обновления следующих пакетов:
> 1: libsasl2-3-2.1.27-alt2.1            
> 2: libsasl2-plugin-gssapi-2.1.27-alt2.1
> 
> Проверено даунгрейдом на репозиторий 3-недельной давности и попытками
> обновлять вручную пакеты из списка.

Спасибо за совет. Пересобрал версию 2.1.27-alt2.2 через hasher и проблема ушла.