PAM-модуль pam_pwpolicy#
pam_pwpolicy - PAM-модуль, проверяющий пароль при аутентификации на соответствие заданным парольным политикам. Для проверки используются вызовы из библиотеки libpwquality.
Парольные политики могут быть настроены путем изменения файла конфигурации /etc/security/pwquality.conf. Подробнее про файл в разделе «Файл /etc/security/pwquality.conf».
При правильной настройке файла политики /etc/pam.d/password-auth, pam_pwpolicy не влияет на процессы и результаты аутентификации. Работает в фоновом режиме и проверяет пароль, не отправляя дополнительных запросов пользователю и используя данные, полученные от других PAM-модулей выше по auth-стеку.
Данные учетной записи передаются от других PAM-модулей выше по auth-стеку с помощью двух функций:
pam_get_user()- возвращает имя пользователя в соответствии с pam_start;pam_get_authtok_noverify()- возвращает из памяти токен аутентификации (PAM_AUTHTOK), получаемый с помощью другого PAM-модуля выше в стеке, например pam_unix.so. Если токен пустой, то модуль не будет запрашивать пароль и проверка не будет проведена.
pam_pwpolicy всегда возвращает значение PAM_SUCCESS. Все ошибки, связанные с работой данного модуля, фиксируются в /var/log/secure без изменения кода возврата.
Успешные проверки пароля создают соответствующую запись в категорию журнала (log-facility) auth с уровнем приоритета 6 (Informational). Это означает, что данный пароль полностью соответствует парольным политикам.
Если проверка прошла, но функция pwquality_check вернула рейтинг пароля (score) меньше нуля, то данная проверка будет зафиксирована с уровнем приоритета 4 (Warning). Это значит, что пароль нарушает текущие парольные политики.
Если проверка прошла неудачно и произошла ошибка, то об этом будет сделана запись с приоритетом 3 (Error).
Установка и настройка работы pam_pwpolicy#
Для того чтобы установить PAM-модуль pam_pwpolicy, выполните следующую команду:
dnf install pam_pwpolicyПосле установки пакета файл
pam_pwpolicy.soбудет расположен в каталоге/usr/lib64/security/с правами-rwxr-xr-x.Чтобы настроить pam_pwpolicy для работы, отредактируйте файл политики PAM
/etc/pam.d/password-auth, добавив следующий пример конфигурации:auth [success=1 new_authtok_reqd=done default=ignore] pam_unix.so try_first_pass nullok auth [success=done new_authtok_reqd=ok ignore=ignore default=die] pam_deny.so auth optional pam_pwpolicy.soВ данном примере пользователь проходит полноценную аутентификацию с помощью модуля pam_unix.so. Если pam_unix.so возвращает
success, то процесс аутентификации пропускает этап pam_deny.so. И запускается pam_pwpolicy.so с корректными данными существующей учетной записи.Если pam_unix.so вернет
failure, процесс аутентификации перейдет к модулю pam_deny.so. Вход в систему будет запрещен, проверка пароля на соответствие парольным политикам не будет запущена.
Внимание
Требуется обозначать модуль pam_pwpolicy как optional (опциональный) для избежания воздействия на процесс и результат аутентификации.
Также рекомендуется контролировать ход процесса PAM-аутентификации, используя более сложную модель сигналов (например: [success=1 new_authtok_reqd=done ... ]) вместо простой модели ключевых слов (таких как requisite или required), чтобы избежать срабатывания pam_pwpolicy на неправильные или пустые пароли.