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#

  1. Для того чтобы установить PAM-модуль pam_pwpolicy, выполните следующую команду:

    dnf install pam_pwpolicy
    

    После установки пакета файл pam_pwpolicy.so будет расположен в каталоге /usr/lib64/security/ с правами -rwxr-xr-x.

  2. Чтобы настроить 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 на неправильные или пустые пароли.