<?xml version="1.0" encoding="UTF-8" ?>

<bugzilla version="5.2"
          urlbase="https://bugzilla.altlinux.org/"
          
          maintainer="jenya@basealt.ru"
>

    <bug>
          <bug_id>48450</bug_id>
          
          <creation_ts>2023-11-14 21:41:13 +0300</creation_ts>
          <short_desc>Не меняет пароль через Winbind для Windows AD</short_desc>
          <delta_ts>2025-01-14 14:23:36 +0300</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>samba</component>
          <version>unstable</version>
          <rep_platform>x86_64</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>NOTABUG</resolution>
          
          <see_also>https://bugzilla.altlinux.org/show_bug.cgi?id=52692</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P5</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Evgeny Shesteperov">alimektor</reporter>
          <assigned_to name="Andrey Limachko">liannnix</assigned_to>
          <cc>aen</cc>
    
    <cc>amakeenk</cc>
    
    <cc>max.gordeef</cc>
    
    <cc>sin</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>237144</commentid>
    <comment_count>0</comment_count>
    <who name="Evgeny Shesteperov">alimektor</who>
    <bug_when>2023-11-14 21:41:13 +0300</bug_when>
    <thetext>Версия

-   samba-4.18.8-alt1

Дистрибутивы

-   ALT Server 10.1, обновлённый до Sisyphus

Предусловия

-   Настроенный Windows Server 2012R2 с AD.
-   Пользователь с включенной опцией Требовать смены пароля при
    следующем входе test1
-   Пользователь с просроченным паролем test2

Шаги воспроизведения

1.  Ввести машину в домен (WinBIND):

    apt-get install -y task-auth-ad-winbind pwgen alterator-gpupdate &amp;&amp; \
    DOMAINNAME=&quot;altad.testdoma&quot; &amp;&amp; \
    SERVERIP=&lt;SERVER IP&gt; &amp;&amp; hostname=$(pwgen -1 -A) &amp;&amp; \
    hostnamectl set-hostname $hostname.${DOMAINNAME} &amp;&amp; \
    echo -e &quot;name_servers=${SERVERIP}\nsearch_domains=${DOMAINNAME}&quot; &gt;&gt; /etc/resolvconf.conf &amp;&amp; \
    reboot

    system-auth write ad &quot;altad.testdoma&quot; &quot;$(hostname --short)&quot; &quot;ALTAD&quot; Admin &apos;$Password1&apos; --winbind --gpo &amp;&amp; reboot

2.  На клиенте изменить уровень логирования аутентификации для
    pam_winbind:

    # sed -i &quot;s|pam_winbind.so krb5_auth|pam_winbind.so krb5_auth pwd_change_prompt debug|g&quot; /etc/pam.d/system-auth-winbind-only

Перезагрузить систему, изменив параметр смены паролей:

    # sed -i &apos;/machine password timeout = 0/d&apos; /etc/samba/smb.conf &amp;&amp; \
    reboot

Попытаться войти в систему доменным пользователем test1 с включенной
опцией Требовать смены пароля при следующем входе:

1.  Ввести старый пароль два раза.
2.  Ввести новый пароль два раза.

Ожидаемый результат: изменения пароля и вход пользователя

Фактический результат: пароль не изменён, вход пользователя
заканчивается с сообщением Неверный пароль, попробуйте ввести ещё раз в
логах LightDM:

    [+90.19s] DEBUG: Continue authentication
    [+90.81s] DEBUG: Session pid=3231: Authentication complete with return value 4: Системная ошибка
    [+90.81s] DEBUG: Authenticate result for user test1: Системная ошибка

Аналогичная ошибка с пользователем test2, у которого просрочился пароль.

В P10 не воспроизводится.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237422</commentid>
    <comment_count>1</comment_count>
    <who name="Evgeny Sinelnikov">sin</who>
    <bug_when>2023-11-17 17:15:38 +0300</bug_when>
    <thetext>Давайте проверим на 4.19

#333680 TESTED #5 [test-only] sisyphus libtalloc.git=2.4.1-alt1 libtdb.git=1.4.9-alt1 libtevent.git=0.15.0-alt1 libldb.git=2.8.0-alt1 samba.git=4.19.2-alt1 sssd.git=2.9.2-alt1 admc.git=0.14.0-alt1 gpui.git=0.2.37-alt1 freeipa.git=4.9.12-alt1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237437</commentid>
    <comment_count>2</comment_count>
    <who name="Evgeny Shesteperov">alimektor</who>
    <bug_when>2023-11-17 21:19:16 +0300</bug_when>
    <thetext>(Ответ для Evgeny Sinelnikov на комментарий #1)
&gt; #333680 TESTED #5 [test-only] sisyphus libtalloc.git=2.4.1-alt1
&gt; libtdb.git=1.4.9-alt1 libtevent.git=0.15.0-alt1 libldb.git=2.8.0-alt1
&gt; samba.git=4.19.2-alt1 sssd.git=2.9.2-alt1 admc.git=0.14.0-alt1
&gt; gpui.git=0.2.37-alt1 freeipa.git=4.9.12-alt1

Воспроизводится согласно описанию.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238487</commentid>
    <comment_count>3</comment_count>
    <who name="Evgeny Sinelnikov">sin</who>
    <bug_when>2023-12-06 05:34:25 +0300</bug_when>
    <thetext>Данная проблема связана отсутствием апдейтов на Windows сервере.

Ключевая точка - в samba-4.17 появилась новая функция в для смены пароля:
* https://gitlab.com/samba-team/samba/-/commit/3469895aca624cf3fcf56c612fe4469bb03a8b5d

В WHATSNEW.txt релиза 4.17.3 для этого фикса есть исправление:
* https://bugzilla.samba.org/show_bug.cgi?id=15206

    ...
       * BUG 15206: libnet: change_password() doesn&apos;t work with
         dcerpc_samr_ChangePasswordUser4().
    ...

Старая версия Windows Server 2012R2 отбрасывает этот запрос и закрывает соединение.

Данная функция описана в спецификации MS-SAMR:

[MS-SAMR]: Security Account Manager (SAM) Remote Protocol (Client-to-Server)
* https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-samr/4df07fab-1bbc-452f-8e92-7853a3c7e380
3.1.5.10.4 SamrUnicodeChangePasswordUser4 (Opnum 73)
* https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-samr/bbc1c5e5-9b81-4038-b2b9-c87d3569ed38

Исправление по безопасности вышло 13 июля 2021г.:

KB5004605: обновление добавляет защиту шифрования AES к протоколу MS-SAMR для CVE-2021-33757
* https://support.microsoft.com/ru-ru/topic/kb5004605-обновление-добавляет-защиту-шифрования-aes-к-протоколу-ms-samr-для-cve-2021-33757-e4daa133-54aa-4a5d-a921-04bb50868fc2
* https://support.microsoft.com/en-us/topic/kb5004605-update-adds-aes-encryption-protections-to-the-ms-samr-protocol-for-cve-2021-33757-e4daa133-54aa-4a5d-a921-04bb50868fc2
* https://msrc.microsoft.com/update-guide/advisory/CVE-2021-33757

Старый метод с RC4 - SamrUnicodeChangePasswordUser2 (OpNum 55)
Новый метод с AES - SamrUnicodeChangePasswordUser4 (OpNum 73)

Новости:
* https://msreview.net/windows-10/4364-microsoft-vypustila-windows-10-build-190411110-190421110-i-190431110.html
* https://msreview.net/windows-7/4367-stali-dostupny-ijulskie-nakopitelnye-obnovlenija-dlja-windows-7-i-windows-81.html
* https://www.blumira.com/sam-database-vulnerability/

Качается в паках, один из них:
July 13, 2021—KB5004285 (Security-only update)
* https://support.microsoft.com/en-us/topic/july-13-2021-kb5004285-security-only-update-76461c8b-4aef-4a94-acb1-78b6d9bdd220

Скачивание:
Обновление качества (только система безопасности) для систем Windows Server 2012 R2 на базе процессоров x64 (KB5004285), 07 2021г.
* https://www.catalog.update.microsoft.com/Search.aspx?q=KB5004285</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>244634</commentid>
    <comment_count>4</comment_count>
    <who name="Alexander Makeenkov">amakeenk</who>
    <bug_when>2024-04-12 13:32:23 +0300</bug_when>
    <thetext>(Ответ для Evgeny Sinelnikov на комментарий #3)
&gt; Обновление качества (только система безопасности) для систем Windows Server
&gt; 2012 R2 на базе процессоров x64 (KB5004285), 07 2021г.
&gt; * https://www.catalog.update.microsoft.com/Search.aspx?q=KB5004285

Подтверждаю, установка этого обновления решает проблему.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>