Дерево страниц

Конфигурационный файл службы sssd: /etc/sssd/sssd.conf.

После внесения изменений в конфигурационный файл для применения этих изменений необходимо перезапустить службу:

sudo systemctl restart sssd


Срок действия пароля: pam_pwd_expiration_warning и pwd_expiration_warning

Источник информации: Red Hat Traiining. Domain Options: Setting Password Expirations

Общепринято задавать в политике применения паролей срок их действия. После истечения этого срока пароль становится недействительным и должен быть заменен. Сроки действия паролей рассчитываются на контроллере домене. Служба SSSD получает информацию о сроках от доменных служб, и может выдавать соответствующие предупреждения при аутентификации с использованием  PAM-стека.

Предупреждение о приближении срока истечения пароля всегда должно быть отправлено доменными службами. Если доменные службы не отправляют такое сообщение, то служба SSSD никогда не выдаст предупреждение. Таким образом, настройка службы SSSD может только уменьшить срок выдачи предупреждений пользователю (сообщения будут игнорироваться, если срок истечения больше заданного в настройках службы SSSD), но не может увеличить этот срок (так как сообщения от доменных служб не будут поступать до заданного в домене срока). 

Включение отображения предупреждений о приближении истечения срока действия пароля осуществляется двумя параметрами конфигурации. Значения этих параметров определяют за какое время (в днях) до истечения срока начать выдавать предупреждения:

  • pam_pwd_expiration_warning — параметр задается в секции [pam] и определяет глобальное значение, используемое по умолчанию для всех доменов.
  • pwd_expiration_warning — параметр задается в секции параметров домена и определяет значение для этого домена. При использовании этого параметра обязательно должен быть указана служба аутентификации домена (authentication provider, задается параметром auth_provider, или, при отсутствии этого параметра, используется значение параметра id_provider).

Если параметры не заданы, то предупреждения не выдаются. Если значение параметра 0, то предупреждения выдаются всегда по мере их получения.

Например:

[sssd]
services = nss,pam
...

[pam]
pam_pwd_expiration_warning = 3
...

[domain/EXAMPLE]
id_provider = ipa
auth_provider = ipa
pwd_expiration_warning = 7

Предупреждения о сроке истечения пароля при беспарольной аутентификации

По умолчанию срок истечения пароля проверяется только при вводе пользователем пароля в процессе аутентификации. Для включения проверки срока истечения пароля при входе без использования пароля (например, в сессии SSH):

  1. Параметру access_provider присвоить значение ldap.
  2. Добавить параметр ldap_pwd_policy со значением shadow.
  3. Добавить параметр ldap_access_orderо с одним из значений:
    1. pwd_expire_policy_reject — отобразить предупреждение и, если срок действия пароля истек, запретить вход;
    2. pwd_expire_policy_warn — отобразить предупреждение и разрешить вход, даже если срок действия пароля истек;
    3. pwd_expire_policy_renew — отобразить предупреждение, и предложить сменить пароль, если его срок действия истек.

Пример:

[domain/EXAMPLE]
access_provider = ldap
ldap_pwd_policy = shadow
ldap_access_order = pwd_expire_policy_warn

Более подробную информацию см. в справочной системе man sssd-ldap(5).

Состояние учетной записи

Сообщения об истечении срока действия (pam_account_expired_message) и блокировке (pam_account_locked_message)

Сообщение о состоянии учетной записи всегда должно быть отправлено доменными службами. Если доменные службы не отправляют такое сообщение, то служба SSSD никогда не выдаст предупреждение.

Информацию о состоянии учетной записи можно корректировать с помощью следующих параметров в секции [pam] конфигурационного файла:

  • pam_account_expired_message — позволяет настроить сообщение об истечении срока действия учетной записи. Дополняет используемое по умолчанию сообщение 'Permission denied'.
    Для того, чтобы это сообщение выдавалось для служб SSH параметру pam_verbosity должно быть присвоено значение 3 (show all messages and debug information).
    Пример определения параметров:

    pam_account_expired_message = Account expired, please contact help desk.
    pam_verbosity = 3
  • pam_account_locked_message — позволяет настроить сообщение о блокировке учетной записи. Дополняет используемое по умолчанию сообщение 'Permission denied'. Пример определения параметра:

    pam_account_locked_message = Учетная запись заблокирована

    Пример результата применения параметра:

    sudo login ipauser01
    Пароль: 
    Permission denied. Сообщение сервера:Учетная запись заблокирована

Срок действия и обновление билетов Kerberos

Срок действия билета Kerberos определяется настройками сервера. Для доменов ALD Pro (FreeIPA) эти настройки определяются в политике билетов Kerberos (команды CLI ipa krbtpolicy).

Срок действия билетов Kerberos не может быть переопределен локально. Локально могут быть определены только периодичность обновления билетов и срок действия билета, запрашиваемый при обновлении:

  • В конфигурации SSSD в секции параметров домена:

    • Параметр krb5_lifetime. Значение параметра задает срок действия, запрашиваемый при обновлении билета. Значением параметра может быть целое число с единицей измерения (s, m, h, d — для секунд, минут, часов и дней соответственно). Если единица измерения не указана, то используются секунды. Например:

      krb5_lifetime 90m

      Использование этого параметра не включает автоматическое обновление билетов.

    • Параметр krb5_renewable_lifetime. Значение задает запрашиваемый при обновлении билета общий срок действия для обновляемых (renewable) билетов.

      Обновляемые (renewable) билеты Kerberos— билеты, для которых обновление сессии выполняется без выпуска нового билета. Имеют два срока действия: срок действия сессии и общий срок действия. Подробнее см. документацию Kerberos.
  • В конфигурации параметров клиента Kerberos (по умолчанию — файл /etc/krb5.conf) —  параметром ticket_lifetime. Значение по умолчанию — 1 день. Подробнее см. документацию Kerberos.

По умолчанию билеты Kerberos службой sssd автоматически не обновляются. Данное умолчание может быть изменено в конфигурации SSSD параметром krb5_renew_interval в секции параметров домена. Значение этого параметра задает периодичность проверки, при этом билеты по результатам проверки обновляются по истечении половины срока их действия. Значением параметра может быть целое число с единицей измерения (s, m, h, d — для секунд, минут, часов и дней соответственно). Если единица измерения не указана, то используются секунды.

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

Кеширование аутентификационных и авторизационных данных пользователей

  1. При нормальной работе сети для ускорения работы и снижения нагрузки на серверы sssd может использовать кешированные аутентификационные данные вместо обращений по сети к контроллерам домена. Срок использования кешированных аутентификационных данных определяется параметром cached_auth_timeout в секции параметров домена. Значение этого параметра задает время в секундах после последнего обновления данных и успешной проверки подлинности, в течение которого используются кешированные данные. По умолчанию значение этого параметра 0, то есть всегда выполняется попытка получить актуальные данные от контроллеров домена.
    Обновление кешированной информации об атрибутах учетной записи и об её участии в группах не будет происходить до истечения интервала, заданного параметром memcache_timeout в секции [nss].
    Независимо от указанных значений параметров информация об учетной записи обновляется при входе (login) пользователя в эту учетную запись, что обеспечивает работу в сессии с актуальным состоянием учетной записи.
  2. При отключении сети (при недоступности контроллеров домена) sssd использует для входа кешированные данные. По умолчанию срок использования кешированных данных не ограничен. Порядок ограничения срока использования кешированных аутентификационных данных см. далее.
  3. При использовании кешированных аутентификационных данных (как при нормальной работе сети, так и при отказе сети) пользователям может выдаваться предупреждения о том, что для входа используются кешированные данные:
    Проверка подлинности с учётными данными из кэша.
    Для того, чтобы это предупреждение выдавалось, параметру pam_verbosity в секции [pam] должно быть присвоено значение 2 или выше. Время использования кешированных данных по умолчанию не ограничено. См. также описание параметра offline_credentials_expiration далее.
  4. Ограничить срок использования кешированных аутентификационных данных можно параметрами:
    1. account_cache_expiration — время в днях хранения кешированной информации об учетной записи. Это время должно быть больше или рано времени хранения данных для входа (параметр offline_credentials_expiration, см. ниже).
    2. offline_credentials_expiration — время в днях актуальности кешированных аутентификационных данных. Если задано ненулевое значение этого параметра и параметр pam_verbosity также имеет ненулевое значение (1, 2 или 3), то при использовании кешированных данных с ограниченным временем действия будет выдаваться предупреждение с указанием истечения срока действия данных:
      Проверка подлинности с учётными данными из кэша, срок действия вашего кэшированного пароля истечёт: Ср 15 янв 2025 13:17:12.
  5. В состав вспомогательных служб службы sssd входит служба nss (Name Service Switch), обеспечивающая работу с авторизационными данными пользователя (информация о пользователе, участие пользователя в группах, мандатные атрибуты пользователя). Служба nss также поддерживает кеширование данных. Общее время кеширования в секундах определяется значением параметра entry_cache_timeout в секции домена. По умолчанию используется значение 5400 секунд, т.е. 90 минут. Более тонкая настройка времени кеширования может выполняться параметрами:

    1. entry_cache_nowait_percentage (целое число от 0 до 99) — управляет фоновым обновлением данных. Задается как доля (в процентах) от времени, заданного параметром entry_cache_timeout. Если обращение к данным происходит в течение времени, заданного параметром entry_cache_timeout, но после времени, заданного параметром entry_cache_nowait_percentage, то возвращаются кешированные данные, после чего выполняется обновление кеша. Значение параметра по умолчанию 50 (т.е. 50%). Не рекомендуется устанавливать это значение менее 10 секунд, так как это может негативно влиять на производительность. Значение 0 отключает возможность фонового обновления.

    2. entry_negative_timeout (целое число)  — количество секунд, в течение которого в кеше будут храниться неудачные обращения к кешу (запросы некорректных записей базы данных, например, несуществующих) перед повторным запросом к внутреннему серверу. По умолчанию 15 секунд.
    3. Группа параметров, позволяющих управлять отдельными типами данных. Определяет время в секундах в течение которого считаются действительными отдельные типы записей. По умолчанию используется значение entry_cache_timeout:
      1. entry_cache_user_timeout — записи пользователей;

      2. entry_cache_group_timeout —  записи групп;

      3. entry_cache_netgroup_timeout — записи сетевых групп;

      4. entry_cache_service_timeout — записи служб;

      5. entry_cache_resolver_timeout — записи узлов и сетей;

      6. entry_cache_sudo_timeout — правила sudo;

      7. entry_cache_autofs_timeout — карты автоматического монтирования для службы автоматического монтирования autofs;

      8. entry_cache_ssh_host_timeout — ключи SSH узлов;

      9. entry_cache_computer_timeout — записи локального компьютера;

    4. refresh_expired_interval (целое число) — время ожидания (в секундах) перед активацией задания фонового обновления всех устаревших или почти устаревших записей. При фоновом обновлении обрабатываются кешированные записи пользователей, групп и сетевых групп. Обновление как записи пользователя, так и участия в группах выполняется для тех пользователей, для которых ранее выполнялись действия по инициализации групп (получение данных об участии пользователя в группах, обычно выполняется при запуске). Записи кеша обновляются фоновым заданием, если прошло 2/3 указанного времени. Рекомендуется установить это значение равным 3/4 от значения entry_cache_timeout. Если в кеше уже есть записи, фоновое задание будет использовать значения времени ожидания устаревания кешированных записей, а не текущее значение конфигурации. Чтобы мгновенно выполнить изменение, пользователю следует вручную объявить недействительность существующего кеша (см. далее). По умолчанию используется значение 0 (фоновое обновление отключено).

    5. Параметры управления кешированием аутентификационных данных двухфакторной аутентифкации в локальном кеше LDB:
      1. cache_credentials (логическое значение) — определяет, кешируются ли аутентификационные данные пользователя также в локальном кеше LDB. В данном случае аутентификационными данными считаются пароли (PIN-коды) включающие в себя первый (долгосрочный) фактор двухфакторной аутентификации, а не другие механизмы аутентификации. Аутентификация с помощью PIN-кода и смарт-карты будет работать в автономном режиме пока успешная онлайн-аутентификация будет записана в кеш. Учетные данные хранятся в виде хеша SHA512, что может потенциально представлять угрозу безопасности в случае, если злоумышленнику удастся получить доступ к файлу кеша (обычно требуется привилегированный доступ) и взломать пароль с помощью атаки методом перебора, см. ниже описание параметра cache_credentials_minimal_first_factor_length. Значение по умолчанию: FALSE, т.е. кеширование в локальном кеше LDB отключено.

      2. cache_credentials_minimal_first_factor_length (целое число) — если используется двухфакторная аутентификация и следует сохранить аутентификационные данные (см. выше описание параметра cache_credentials), то это значение определяет минимальную длину первого фактора проверки подлинности (PIN-кода), который должен быть сохранен в формате контрольной суммы SHA512 в кеше LDB. Это позволяет предотвратить хранение коротких PIN-кодов, взлом которых вероятен методом подбора. Значение по умолчанию: 8.

Объявление недействительности кеша

 Для быстрого обновления данных доменных пользователей на пользовательских компьютерах, введенных в домен (например, после смены мандатных атрибутов пользователя, выполненной на контроллере домене), следует объявить кешированные записи требующими обновления (инвалидировать).

Удаление записей из кеша SSSD не предусмотрено. Отдельные типы записей (или все записи) можно только инвалидировать. Удалить можно только все записи (остановив службу и удалив весь кеш).

Инвалидированные записи:

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

Для инвалидации записей кеша:

  • Если на пользовательском компьютере установлен пакет sssd-tools:
    sudo apt install sssd-tools
    При установленном пакете sssd-tools кеш можно объявить недействительным с помощью инструмента sss_cache. Инструмент обеспечивает работу как со всем кешем, так и с отдельными типами записей, например:
    • Объявить недействительными все записи:
      sudo sss_cache -E
    • Обновить недействительными записи, относящиеся ко всем пользователям:
      sudo sss_cache -U
    • Обновить недействительными записи, относящиеся к определенному пользователю:
      sudo sss_cache -u <имя_пользователя>
  • Для полного удаления кеша (или при невозможности использовать инструмент sss_cache):
    • Остановить службу sssd:

      sudo systemctl stop sssd

    • Удалить кеш:

      sudo rm -rf /var/lib/sss/db/*

    • Запустить службу sssd:

      sudo systemctl start sssd

Автоматическое обновление пароля доменного компьютера

Служба sssd может самостоятельно обновлять пароль доменного компьютера. Периодичность такого обновления задается параметром ad_maximum_machine_account_password_age. Значение параметра – возраст пароля в днях. Служба ежедневно проверяет возраст пароля и при превышении указанного значения пытается обновить пароль. По умолчанию значение параметра — 30 дней, значение 0 отменяет обновление.

  • Нет меток