Bug 55744

Summary: samba: Клиенты, введённые в домен Windows AD с помощью Winbind, теперь не могут войти в систему, если время на клиенте и сервере отличается
Product: Sisyphus Reporter: Artem Varaksa <varaksaaa>
Component: sambaAssignee: Evgeny Sinelnikov <sin>
Status: CLOSED NOTABUG QA Contact: qa-sisyphus
Severity: normal    
Priority: P5 CC: sin
Version: unstable   
Hardware: x86_64   
OS: Linux   

Description Artem Varaksa 2025-08-27 17:38:31 MSK
Примечание: возможно, это ожидаемое изменение, т. к. в контексте безопасности часто требуется совпадение времени?


Шаги
====

1. Развернуть Windows AD DC на Windows Server 2012 R2.

2. Установить на Windows обновление KB5004285 (https://bugzilla.altlinux.org/48450).

3. Создать пользователя в AD.

4. Ввести клиента с помощью Winbind:

# apt-get install -y task-auth-ad-winbind pwgen alterator-gpupdate && \
    DOMAINNAME="ad.testd" && \
    SERVERIP=<windows-ad-dc-ip> && \
    hostname=nota-w-$(pwgen -1 -A) && \
    hostnamectl set-hostname $hostname.${DOMAINNAME} && \
    echo -e "name_servers=${SERVERIP}\nsearch_domains=${DOMAINNAME}" >> /etc/resolvconf.conf && \
    reboot

# system-auth write ad "ad.testd" "$(hostname --short)" "AD" Admin '$Password1' --winbind --gpo && \
    reboot

5. На клиенте изменить время, например:

# timedatectl set-ntp false && \
    timedatectl set-time "$(date --date 'today - 25 hours' "+%F %T")"

6. Попробовать войти на клиенте в пользователя.


Фактический результат
=====================

Вход возможен в p11.

Вход невозможен в p11+387440.10, sisyphus:

# tail -f /var/log/lightdm/lightdm.log

> [+318.81s] DEBUG: Session pid=1935: Authentication complete with return value 7: Сбой при проверке подлинности
> [+318.81s] DEBUG: Authenticate result for user testuser: Сбой при проверке подлинности


Ожидаемый результат
===================

Вход возможен в p11+387440.10, sisyphus, т. е. сохранение поведения p11.


Дополнительно
=============

Не воспроизводится с SSSD - вход возможен при неправильном времени.

С Samba DC (Internal DNS) вход клиентов Winbind невозможен при неправильном времени в p11, p11+387440.10, sisyphus.


Воспроизводимость
=================

Воспроизводится c клиентами Winbind на виртуальных машинах:

[sisyphus] ALT Workstation 11.0 x86_64
alterator-auth-0.48-alt1.x86_64
samba-4.21.7-alt4.x86_64
sssd-2.9.7-alt3.x86_64
gpupdate-0.13.3-alt1

[p11+387440.10] ALT Workstation, Education (XFCE), Education (KDE) 11.0, Workstation K 11.1 x86_64
alterator-auth-0.48-alt1.x86_64
samba-4.21.7-alt4.x86_64
sssd-2.9.7-alt3.x86_64
gpupdate-0.13.3-alt1


Не воспроизводится c клиентами Winbind на виртуальных машинах:

[p11] ALT Workstation 11.0 x86_64
alterator-auth-0.45-alt1.x86_64
samba-4.20.8-alt2.x86_64
sssd-2.9.7-alt1.x86_64
gpupdate-0.13.2-alt1
Comment 1 Artem Varaksa 2025-08-27 17:48:41 MSK
При этом, если, например, пароль пользователя истёк, он может его сменить на экране входа, несмотря на несовпадение времени. Но после (успешной) смены пароля авторизация не проходит ни сразу, ни после повторных попыток (уже по новому паролю).
Comment 2 Evgeny Sinelnikov 2025-08-29 11:34:42 MSK
Строго говоря, это не проблема. Оно так и должно работать.

Могут быть разные настройки. Вариаций понижения безопасности и потребностей соответствующих хватает.

Регрессом при расхождении времени отсутствие логина не является. Это нормальное поведение для протокола Kerberos. Это также означает, что требования по безопасности с отключением проткола NTLM, на который "перепрыгивает" аутентификация, наконец-то, включены по умолчанию.