Назад | Перейти на главную страницу

Аутентификация PBIS Open AD перестает работать на ubuntu с ошибками: «срок действия учетной записи истек» и «ваша учетная запись заблокирована?»

Мы использовали PowerBroker Identity Services Open для успешной аутентификации пользователей Active Directory с хостов ubuntu в течение шести месяцев.

Недавно аутентификация AD перестала работать на нескольких рабочих станциях после того, как пользователи выполнили apt-get upgrade сразу 200+ пакетов. Попытки аутентификации выдают ошибки: «неверный пароль», «срок действия учетной записи истек» или «ваша учетная запись заблокирована?»

Мне не удалось связать проблему с определенным обновлением пакета, но на рабочих станциях, созданных с нуля с теми же версиями пакетов, проблема не возникает. Я попытался переустановить PBIS и проверил все файлы конфигурации, но что-то упустил .... Я в растерянности и хотел бы получить любой совет. Я бы предпочел не перестраивать еще одну коробку, когда это произойдет в следующий раз!

Попытки аутентификации

Сначала я убедился, что учетная запись пользователя AD была включена, не заблокирована и срок ее действия не истек. Аутентификация локального пользователя отлично работает через lightdm и ssh.

  1. lightdm

    • действительные учетные данные
      • пользователю возвращена ошибка «Неверный пароль, попробуйте еще раз».
      • auth.log: ничего
      • системный журнал: ничего
    • неверный пароль

      • пользователю возвращена ошибка «Неверный пароль, попробуйте еще раз».
      • auth.log:

        lightdm: [lsass-pam] [module:pam_lsass]pam_sm_authenticate error [login:username][error code:40022]
        
      • системный журнал:

        lsass: [LwKrb5GetTgtImpl /builder/src-buildserver/Platform-8.0/src/linux/lwadvapi/threaded/krbtgt.c:276] KRB5 Error code: -1765328360 (Message: Preauthentication failed)
        lsass: [lsass] Failed to authenticate user (name = 'username') -> error = 40022, symbol = LW_ERROR_PASSWORD_MISMATCH, client pid = 17768
        
  2. ssh

    • действительные учетные данные

      • ssh отключен с сообщением «Соединение закрыто по IP_ADDRESS».
      • auth.log:

        sshd[18237]: error: PAM: User account has expired for DOMAIN\\USER from HOSTNAME
        sshd[18237]: error: Received disconnect from IP_ADDRESS: 13: Unable to authenticate [preauth]
        
      • системный журнал: ничего
    • неверный пароль

      • ssh отключен с сообщением «Соединение закрыто по IP_ADDRESS».
      • auth.log:

        sshd[18276]: [lsass-pam] [module:pam_lsass]pam_sm_authenticate error [login:domain\username][error code:40022]
        sshd[18272]: error: PAM: Authentication failure for domain\\username from hostname
        
      • системный журнал

        lsass: [LwKrb5GetTgtImpl /builder/src-buildserver/Platform-8.0/src/linux/lwadvapi/threaded/krbtgt.c:276] KRB5 Error code: -1765328360 (Message: Preauthentication failed)
        lsass: [lsass] Failed to authenticate user (name = 'domain\username') -> error = 40022, symbol = LW_ERROR_PASSWORD_MISMATCH, client pid = 18276
        
  3. Просто пробую какие-то сумасшедшие местные вещи (и нет, учетная запись не заблокирована в AD)

            root@hostname:~# su - domain\\username
            su: Authentication failure
            (Ignored)
            reenter password for pam_mount:
            DOMAIN\username@hostname:~$ sudo cat /etc/fstab
            [sudo] password for DOMAIN\username:
            sudo: account validation failure, is your account locked?
            DOMAIN\username@hostname:~$
    

Конфигурация

К вашему сведению: domainjoin-cli configure --enable pam также повторно добавит эти строки после обновления. PBIS Open 8.x и выше должным образом доставляет /usr/share/pam-configs/pbis конфигурации, чтобы этого не произошло в будущем.

Кроме того, PBIS регистрирует более конкретные ошибки в демону syslog, поэтому вы можете просматривать их в ubuntu в /var/log/syslog скорее, чем /var/log/secure.

Ключевая линия такова:

sshd[18237]: error: PAM: User account has expired for DOMAIN\\USER from HOSTNAME

Это означает, что модуль PAM считает, что срок действия учетной записи истек. Я бы меньше сосредоточился на auth/session и многое другое на account, который является средством, ориентированным на свойства учетной записи, не связанные с аутентификацией. Ваша первая задача - определить модуль, вызывающий проблему. Как только вы это узнаете, будет намного легче определить Зачем модуль считает, что пользователя следует заблокировать.

Просмотрите применимые account модули один за другим и попробуйте добавить debug для отдельных записей, чтобы расширить вывод журнала, если вам нужны дополнительные подсказки. Если вы действительно в тупике и это не нарушит безопасность критической среды, вы также можете попробовать прокомментировать account линии по очереди, пока вы не определите виновного.

Что касается того, что изменилось, более чем вероятно, что ваша конфигурация PAM была изменена при установке этих пакетов. Скорее всего, указанные пользователи все время находились в таком состоянии, но база данных, связанная с некорректным поведением account модуль был обойден. (пропущено, прокомментировано, отсутствует и т. д.)

Еще раз спасибо @Andrew B за помощь в поиске решения.

Для записи, вот копия правильной конфигурации /etc/pam.d/common-account, которая ИСПРАВЛЯЕТ мою проблему (две строки pam_lsass.so отсутствовали в системах, которые не работали):

 account [success=3 new_authtok_reqd=done default=ignore]        pam_unix.so
 account [success=ok new_authtok_reqd=ok default=ignore]         pam_lsass.so unknown_ok
 account [success=1 new_authtok_reqd=done default=ignore]        pam_lsass.so
 account requisite                       pam_deny.so
 account required                        pam_permit.so

Я столкнулся с этой проблемой на одном из наших серверов Ubuntu 14.04.4 для одного пользователя. В отображаемом имени пользователя в AD был значок ø. Когда я заменил ø на o, он смог войти в систему. Я еще не понял, почему это была проблема только на одном сервере.