Bug 50096

Summary: Ошибка при создании пользователя - "Сервер не хочет выполнять".
Product: Branch p10 Reporter: Nikolai Zurabishvili <zurabishvilinn>
Component: admcAssignee: samael <samael>
Status: REOPENED --- QA Contact: qa-p10 <qa-p10>
Severity: normal    
Priority: P5 CC: amakeenk, boot.efi, director, greh, kevl, knyazevsr, liannnix, max.gordeef, shevchenkodyu, sin, supertuxxx, vodin26
Version: не указана   
Hardware: x86_64   
OS: Linux   
Attachments:
Description Flags
список пакетов, после обновления которых воспроизводится ошибка
none
Wireshark connection
none
Wireshark LDAP Request
none
Wireshark LDAP Response none

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
Добавил в бэклог
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 и проблема ушла.
Comment 12 Repository Robot 2024-08-01 16:20:04 MSK
admc-0.16.4-alt1 -> sisyphus:

 Tue Jul 30 2024 Semyon Knyazev <samael@altlinux> 0.16.4-alt1
 - Samba 4.20 compatibility update. Fixed related errors with security
   descriptor manipulations. (closes: 50776)
 - Fixed user creation incapability after Samba dependencies
   update. (closes: 50096)
Comment 13 Alexander Makeenkov 2024-08-12 11:03:48 MSK
В p10 воспроизводится. Версия в репозитории 0.16.3-alt1.
Comment 14 Alexander Makeenkov 2024-08-12 11:08:52 MSK
Так же падают встроенные тесты admc_test_create_object_dialog и admc_test_password_edit:

ADMCTestPasswordEdit::apply() "Failed to change password for object ADMCTEST-test-user. Error: \"Server is unwilling to perform\"."
Comment 15 globonet 2024-08-16 11:57:07 MSK
Приветствую
Хочется уточнить когда будет обновление пакетов с исправлением, чтобы не требовалось дополнительных действий для заказчиков?
Comment 16 globonet 2024-08-16 12:01:18 MSK
На P10
На версиях пакетов
1: libsasl2-3-2.1.28-alt2            
2: libsasl2-plugin-gssapi-2.1.28-alt2

Ошибка воспроизводится
Comment 17 Шевченко Денис 2024-08-16 12:05:32 MSK
(Ответ для globonet на комментарий #15)
> Приветствую
> Хочется уточнить когда будет обновление пакетов с исправлением, чтобы не
> требовалось дополнительных действий для заказчиков?

Проблема решается с обновлением admc до версии 0.16.4.
Данная версия попадёт в репозиторий после прохождения процедуры тестирования.
На данный момент для p10 можете проверить решение таким образом:
apt-get update
apt-get dist-upgrade
apt-repo upgrade 353175
Comment 18 Repository Robot 2024-08-20 18:08:31 MSK
admc-0.16.4-alt1 -> p11:

 Tue Jul 30 2024 Semyon Knyazev <samael@altlinux> 0.16.4-alt1
 - Samba 4.20 compatibility update. Fixed related errors with security
   descriptor manipulations. (closes: 50776)
 - Fixed user creation incapability after Samba dependencies
   update. (closes: 50096)
Comment 19 Alexander Makeenkov 2024-08-20 20:24:40 MSK
Ждём в р10.
Comment 20 Repository Robot 2024-08-22 20:51:44 MSK
admc-0.16.4-alt1 -> c10f2:

 Tue Jul 30 2024 Semyon Knyazev <samael@altlinux> 0.16.4-alt1
 - Samba 4.20 compatibility update. Fixed related errors with security
   descriptor manipulations. (closes: 50776)
 - Fixed user creation incapability after Samba dependencies
   update. (closes: 50096)
Comment 21 Alexander Makeenkov 2024-08-22 21:49:55 MSK
В р10 всё ещё нету.
Comment 22 Samael 2024-08-22 21:51:02 MSK
(Ответ для Alexander Makeenkov на комментарий #21)
> В р10 всё ещё нету.

В p10 будет 0.17.0