В этом руководстве мы узнаем, как применять политику сложности паролей в производных на основе CentOS 7 / RHEL.
В нашем предыдущем руководстве рассказывалось о настройке сложности пароля в Ubuntu 18.04:
? Как принудительно применять политику сложности паролей в Ubuntu 18.04
Применение политики сложности паролей в CentOS 7
Как и в нашем предыдущем руководстве, мы собираемся использовать модули PAM pwquality для реализации политики сложности паролей в ОС на основе CentOS 7 / RHEL.
В производных от Ubuntu или Debian мы изменили конфигурационный файл /etc/pam.d/common-password.
Для CentOS 7 или аналогичных производных используется файл конфигурации /etc/security/pwquality.conf или /etc/pam.d/system-auth.
Как обычно, сделайте резервную копию файла конфигурации, прежде чем вносить изменения на тот случай, если дела пойдут не так.
cp /etc/security/pwquality.conf /etc/security/pwquality.conf.original
cp /etc/pam.d/system-auth /etc/pam.d/system-auth.original
Откройте файл конфигурации для редактирования.
vim /etc/pam.d/system-auth
Найдите строку, содержащую модули pam_pwquality.so;
password requisite pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type=
Закомментируйте строку и замените ее строкой, указанной ниже;
password requisite pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type= minlen=8 lcredit=-1 ucredit=-1 dcredit=-1 ocredit=-1 enforce_for_root
Где:
- minlen = 8– устанавливает минимальную длину пароля в 8 символов.
- lcredit = -1 -Устанавливает минимальное количество строчных букв, которое пароль должен содержать
- ucredit = -1-Устанавливает минимальное количество заглавных букв в пароле не менее одной.
- dcredit = -1 – устанавливает минимальное количество цифр в пароле, по крайней мере, одно
- ocredit = -1 – установить минимальное количество других символов, таких как @, #,! $% и т. д.
- forcece_for_root – Гарантирует, что, даже если это пользователь root, который устанавливает пароль, политики сложности должны применяться.
Вы также можете добиться того же, используя утилиту командной строки authconfig, как показано ниже;
authconfig --enablereqlower --enablerequpper --enablereqdigit --enablereqother --passminlen=8 --passmaxrepeat=3 --update
Приведенная выше команда в основном гарантирует, что пароль должен содержать хотя бы (в соответствующем порядке);
- одну строчную букву
- одну заглавную букву
- одна цифру
- буквенно-цифровой символ.
- 8 символов как минимальный размер
- не более 3 символов, аналогичных предыдущему паролю.
Изменения будут обновлены в /etc/security/pwquality.conf.
tail /etc/security/pwquality.conf # Path to the cracklib dictionaries. Default is to use the cracklib default. # dictpath = minlen = 8 minclass = 1 maxrepeat = 3 maxclassrepeat = 0 lcredit = -1 ucredit = -1 dcredit = -1 ocredit = -1
Обратите внимание, что пользователь root или любой пользователь с правами sudo всегда может установить любой пароль независимо от применяемых политик.
Однако, чтобы убедиться, что политики сложности паролей применимы как к пользователю root, так и к пользователю с sudo, необходимо добавить параметр forcece_for_root в строку ниже в /etc/pam.d/system-auth.
password requisite pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type= enforce_for_root
Тестирование применения политики паролей
Как пользователь root, попробуйте изменить пароль пользователя паролем, который не соответствует установленным учетным данным.
# passwd amos Changing password for user amos. New password: @moskifaru1 BAD PASSWORD: The password contains less than 1 uppercase letters New password: @mosKifaru BAD PASSWORD: The password contains less than 1 digits New password: mosKifaru1 BAD PASSWORD: The password contains less than 1 non-alphanumeric characters passwd: Have exhausted maximum number of retries for service
Тестирование с использованием более сложного пароля; @mosKifaru1
# passwd amos Changing password for user amos. New password: @mosKifaru1 Retype new password: @mosKifaru1 passwd: all authentication tokens updated successfully.
Это все о том, как применять политику сложности паролей в CentOS 7.