Наличие ограничения срока действия пароля в днях (централизованный и локальный механизм)

В AccentOS поддерживается аутентификация пользователей, базирующаяся на локальных механизмах модуля Keystone OpenStack и централизованных механизмах LDAP, в частности MS AD, FreeIPA, OpenLDAP.

Выбор механизма аутентификации

Аутентификация настраивается на локальный или внешний режим работы в Keystone.

  • Внешние централизованные механизмы (LDAP) — предпочтительны при работе в распределенных архитектурах и в организациях, где уже развернут LDAP для минимизации издержек на его поддержку

  • Локальные механизмы (Keystone) — используются для небольших установок или когда по соображениям безопасности необходимо отделить аутентификацию от любых других инструментов

Предупреждение

Абсолютно безопасного метода для сохранения паролей не существует ни в FreeIPA, ни в Keystone, поскольку угрозы проистекают из уязвимостей ОС Linux или Windows и в определенной мере связаны с криптографическими методами, которые являются основным риском при хранении хешей паролей.

Ограничение срока действия пароля в LDAP (на примере FreeIPA)

Безопасность пользователей, опции и ограничения паролей при использовании LDAP базируются на механизмах, реализованных в самом LDAP. Парольные политики распространяются либо на группу пользователей LDAP, либо на всех пользователей (глобальная политика).

Основные параметры политики паролей FreeIPA

Параметр

Описание

Пример

Максимальный срок действия (--maxlife)

Максимальный срок действия пароля в днях. Значение по умолчанию — 90 дней. Если задано значение 0, срок действия пароля не ограничен.

--maxlife=180

Минимальный срок действия (--minlife)

Минимальный интервал между двумя операциями смены пароля (в часах).

--minlife=1

Размер журнала (--history)

Количество предыдущих паролей, которые нельзя повторно использовать.

--history=0

Классы символов (--minclasses)

Минимальное количество различных классов символов в пароле.

--minclasses=0

Минимальная длина (--minlength)

Минимальная длина пароля.

--minlength=8

Максимальное количество ошибок (--maxfail)

Число неудачных попыток входа до блокировки учётной записи.

--maxfail=6

Интервал сброса ошибок (--failinterval)

Время (в секундах), после которого счётчик неудачных попыток сбрасывается.

--failinterval=60

Длительность блокировки (--lockouttime)

Время (в секундах), на которое блокируется учётная запись после превышения лимита ошибок.

--lockouttime=600

Преимущества использования LDAP с Kerberos

Преимуществом использования LDAP на основе FreeIPA и MS AD является протокол Kerberos, который реализует функции безопасности пользователей и функции безопасности при хранении, модификации, распространении, администрировании паролей пользователей.

Примечание

  • Современные реализации FreeIPA используют усиленные пароли на базе SPAKE и FAST

  • Kerberos поддерживает работу с несколькими доменами

  • Поддерживаются Kerberos tickets, которые позволяют проводить аутентификацию пользователей непосредственно на требуемых системах и ресурсах

Хранение паролей в FreeIPA

В FreeIPA не хранятся пароли пользователей, а только их хеши:

  • ipaNTHash — NT-хеш пароля пользователя для интеграции с LDAP

  • userPassword — основной атрибут, в котором хранится хеш пароля пользователя, используемый для LDAP-аутентификации

Предупреждение

Если администратор:

  • имеет root-права на сервере FreeIPA

  • владеет паролем от учетной записи Directory Manager

  • имеет возможность читать хеши паролей учетных записей в каталоге LDAP

у него существует возможность с помощью brute force получить информацию о паролях, если будет получен MasterKey и krbPrincipalKey.

Ограничение срока действия пароля в Keystone OpenStack

При использовании Keystone OpenStack можно (и нужно) независимо друг от друга включать дополнительные функции обеспечения безопасности Keystone в соответствии с корпоративной политикой безопасности.

Хеширование паролей

Keystone использует методы хранения хешей, а не паролей в СУБД, использует современные криптографические методы:

  • bcrypt — используется по умолчанию

  • pbkdf2_sha512 — поддерживается

  • scrypt — поддерживается

Важно

Считается, что sha512_crypt недостаточен для безопасного хеширования паролей для хранения в базе данных. Keystone по умолчанию использует bcrypt.

Функции безопасности Keystone (акцент на срок действия)

Операция

Включить для всех пользователей

Изменить для конкретных пользователей

Настройка срока действия пароля

password_expires_days: <NUM>

Устанавливает количество дней, по истечении которых срок действия пароля истекает.

ignore_password_expiry: True

Принудить пользователя к смене пароля при первом использовании

change_password_upon_first_use: True

ignore_change_password_upon_first_use: True

Пороговое значение блокировки учетной записи

lockout_failure_attempts: <NUM>

lockout_duration: <NUM>

ignore_lockout_failure_attempts: True

Запретить пользователю менять свой пароль

Н/Д

lock_password: True

Настройка требований к надежности паролей

password_regex: <STRING>

password_regex_description: <STRING>

Н/Д

Отключение неактивных пользователей

disable_user_account_days_inactive: <NUM>

Н/Д

Настройка уникальной истории паролей

unique_last_password_count: <NUM>

minimum_password_age: <NUM>

Н/Д

Рекомендации по настройке срока действия паролей

Для централизованного механизма (LDAP/FreeIPA)

# Установка срока действия пароля 180 дней
ipa pwpolicy-mod --maxlife=180

# Установка минимального интервала между сменами (24 часа)
ipa pwpolicy-mod --minlife=24