Неповторяемость пароля

Материал из ALT Linux Wiki
Версия от 12:40, 26 января 2021; АндрейЧерепанов (обсуждение | вклад)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Внимание! База используемых паролей ведётся в файле /etc/security/opasswd, в который пользователи должны иметь доступ на чтение и запись. При этом они могут читать хэши паролей остальных пользователей. Не рекомендуется использовать на многопользовательских системах.


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

Для настройки этого ограничения необходимо изменить файл /etc/pam.d/system-auth-local-only таким образом, чтобы он включал модуль pam_pwhistory после первого появления строки с паролем:

password        required        pam_passwdqc.so config=/etc/passwdqc.conf
password        required        pam_pwhistory.so use_authtok remember=10 retry=3
Внимание! В данном случае системный каталог делается доступными для записи пользователям группы pw_users (создайте эту группу и включите туда пользователей).

Создайте файл /etc/security/opasswd и дайте права на запись пользователям:

install -Dm0660 -gpw_users /dev/null /etc/security/opasswd
chgrp pw_users /etc/security
chmod g+w /etc/security

После добавления этой строки в файле /etc/security/opasswd будут храниться последние 10 паролей пользователя (содержит хэши паролей всех учетных записей пользователей) и при попытке использования пароля из этого списка будет выведена ошибка:

Password has been already used. Choose another.

В случае если необходимо, чтобы проверка выполнялась и для суперпользователя root, в настройки нужно добавить параметр enforce_for_root:

password        required        pam_pwhistory.so use_authtok enforce_for_root remember=10 retry=3

Параметры:

  • debug — включить отладку через системный журнал;
  • enforce_for_root — если эта опция установлена, проверка применяется и для пользователя root;
  • remember=N — последние N паролей для каждого пользователя сохраняются в /etc/security/opasswd (по умолчанию 10);
  • retry=N — запросить пароль не более N раз, прежде чем вернуться с ошибкой (по умолчанию 1).