Вопрос: SSH работает с истекшим Kerberos Password


У меня есть SSH - один знак с использованием kerberos V5. Когда срок действия пароля пользователя истек, он возвращает 'Внимание: срок действия пароля истек.'и позволяет пользователю войти в систему! Я даже внес изменения в /etc/pam.d/password-auth такой, что pam_krb5.so выше pam_unix.so:

Стек Auth:

auth        requisite     pam_krb5.so uid >= 500

#Google authentication configuration module
auth        [success=1 default=ignore] pam_access.so accessfile=/etc/security/access-local.conf
auth        requisite  pam_google_authenticator.so


auth        [success=1 default=ignore]  pam_unix.so nullok try_first_pass
auth        required      pam_deny.so
auth        requisite     pam_succeed_if.so uid >= 0 quiet

Счет:

account required pam_unix.so broken_shadow
account sufficient pam_localuser.so
account sufficient pam_succeed_if.so uid < 500 quiet
account [default=bad success=ok user_unknown=ignore] pam_krb5.so uid >= 500
account required pam_permit.so

Пожалуйста, предложите любые изменения, чтобы запретить пользователям с истекшими паролями войти в систему.

ЖУРНАЛ :

krb5kdc.log

Jun 03 11:34:29 <HOST-NAME> krb5kdc[1752](info): AS_REQ (4 etypes {18 17 16 23}) 192.168.181.40: CLIENT KEY EXPIRED: testyoga@EXAMPLE.COM for krbtgt/EXAMPLE.COM@EXAMPLE.COM, Password has expired
Jun 03 11:34:47 <HOST-NAME> krb5kdc[1752](info): AS_REQ (4 etypes {18 17 16 23}) 192.168.181.40: ISSUE: authtime 1464933887, etypes {rep=18 tkt=18 ses=18}, testyoga@EXAMPLE.COM for kadmin/changepw@EXAMPLE.COM –

/var/log/auth.log

/var/log/auth.log : /var/log/auth.log : pam_krb5[24516]: authentication succeeds for 'testyoga' (testyoga@EXAMPLE.COM) –

5
2018-06-02 10:39


Источник


Можете ли вы показать нам журналы? Я понимаю предупреждение, которое вы показываете нам, но было бы полезно, если бы вы показали нам, что регистрируется, начиная с сообщения о подключении клиента. (то есть когда их IP-соединение впервые подключается) - Andrew B
krb5kdc.log: Jun 03 11:34:29 <HOST-NAME> krb5kdc [1752] (info): AS_REQ (4 etypes {18 17 16 23}) 192.168.181.40: КЛЮЧ КЛЮЧА: testyoga@EXAMPLE.COM для krbtgt /EXAMPLE.COM@EXAMPLE.COM, Password истекло Jun 03 11:34:47 <HOST-NAME> krb5kdc [1752] (info): AS_REQ (4 etypes {18 17 16 23}) 192.168.181.40: ВОПРОС: authtime 1464933887, etypes {rep = 18 tkt = 18 ses = 18}, testyoga@EXAMPLE.COM для kadmin/changepw@EXAMPLE.COM - Chandira Mouli
/var/log/auth.log: /var/log/auth.log: pam_krb5 [24516]: проверка подлинности прошла успешно для 'testyoga' (testyoga@EXAMPLE.COM) - Chandira Mouli
Измените эти детали в вопросе. Благодаря! - Andrew B
Один последний пункт: пожалуйста, добавьте свой account стека к вопросу. Я собираюсь в предварительном порядке ответить на вопрос, исходя из сообщений журнала, но ваш account стек подтвердит эту проблему. - Andrew B


Ответы:


Редактировать:

Исходя из содержания предоставленного account стек, похоже pam_krb5.so будут пропущены, если pam_localuser.so преуспевает. Это наиболее вероятная причина ограничений для ограничения пароля, которые не применяются.


Вот что мы знаем до сих пор:

  • Зарегистрированные сообщения подтверждают, что пароль пользователя истек.
  • pam_krb5 несмотря на это.

Я подозреваю, что ваша проблема в том, что у вас нет account стек правильно настроен. Существует несколько различных реализаций pam_krb5 там, и не все из них выполняют проверку старения пароля внутри auth стек:

http://linux.die.net/man/8/pam_krb5

Когда пользователь входит в систему, функция проверки подлинности модуля выполняет простую проверку пароля и, если возможно, получает учетные данные Kerberos 5, кэшируя их для последующего использования. Когда приложение запрашивает инициализацию учетных данных (или открывает сеанс), создаются обычные файлы билетов. Когда приложение впоследствии запрашивает удаление учетных данных или закрытие сеанса, модуль удаляет файлы билета. Когда приложение запрашивает управление учетными записями, если модуль не участвовал в аутентификации пользователя, он будет сигнализировать libpam о игнорировании модуля. Если модуль действительно участвовал в аутентификации пользователя, он будет проверять пароль пользователя с истекшим сроком действия и проверить авторизацию пользователя, используя файл .k5login аутентифицируемого пользователя, который, как ожидается, будет доступен для модуля.

Работа account stack должен обеспечить соблюдение политик доступа, независимо от того, была ли аутентификация успешной. Это важно, поскольку auth стека часто обойдется при использовании проверки подлинности на основе ключа. Отдельные разработчики должны решить, должно ли старение паролей также приводить к сбою при вызове модуля в auth контекст.

И наоборот, pam_krb5 реализация, поддерживаемая Русом Албери (мой предпочтительный вариант), поймала бы это в auth стек.

https://www.eyrie.org/~eagle/software/pam-krb5/pam-krb5.html

Счет

Предоставляет реализацию pam_acct_mgmt (). Все, что он делает, это сделать   такая же проверка авторизации, как и pam_authenticate ()   описанная выше.


2
2018-06-03 20:18