我已经更新了login.defs和password-auth以包含密码的最小长度(12),但是当我尝试使用 更改用户的密码时,minlen 并没有被强制执行passwd
。
没有强制执行任何密码大小写策略。我可以输入“aaaa1234”作为有效但较弱且太短的密码。我还可以输入字典单词,例如“密码”。相同的密码可以重复使用。
总之,似乎没有任何设置/etc/pam.d/password-auth
被识别。
我为以下命令输入的密码是blue1234
# passwd testy
Changing password for user testy.
New password:
BAD PASSWORD: it is based on a dictionary word
BAD PASSWORD: is too simple
Retype new password:
passwd: all authentication tokens updated successfully.
/var/log/secure
这是通过上述操作登录的内容。这是该活动的唯一线路。
Apr 1 11:41:37 myserver passwd: pam_unix(passwd:chauthtok): password changed for testy
配置文件
# login.defs
# Password aging controls:
#
# PASS_MAX_DAYS Maximum number of days a password may be used.
# PASS_MIN_DAYS Minimum number of days allowed between password changes.
# PASS_MIN_LEN 12
# PASS_WARN_AGE Number of days warning given before a password expires.
#
PASS_MAX_DAYS 30
PASS_MIN_DAYS 1
PASS_MIN_LEN 12
PASS_WARN_AGE 14
。
# /etc/pam.d/password-auth
#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth required pam_env.so
auth sufficient pam_unix.so nullok try_first_pass
auth requisite pam_succeed_if.so uid >= 500 quiet
auth required pam_deny.so
auth [default=die] pam_faillock.so authfail deny=3 unlock_time=604800 fail_interval=900
auth required pam_faillock.so authsucc deny=3 unlock_time=604800 fail_interval=900
account required pam_unix.so
account sufficient pam_localuser.so
account sufficient pam_succeed_if.so uid < 500 quiet
account required pam_permit.so
password requisite pam_cracklib.so try_first_pass retry=3 lcredit=-1 ucredit=-1 dcredit=-1 ocredit=-1 minlen=12
password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok
password required pam_deny.so
session optional pam_keyinit.so revoke
session required pam_limits.so
session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session required pam_unix.so
为什么不强制执行 pam 密码策略?
PS:这是最小安装。
答案1
您必须检查您的/etc/pam.d/passwd
文件是否包含/etc/pam.d/password-auth
或 ,/etc/pam.d/system-auth
并对包含的文件进行必要的更改。
简而言之:
使用 PAM 的应用程序可以有一个以/etc/pam.d/
.如果文件存在,则只要应用程序调用 PAM 身份验证函数,就会处理该文件中的规则。
类似 和 的文件/etc/pam.d/system-auth
在很大程度上/etc/pam.d/password-auth
是特定于发行版的。由于没有应用程序将自己标识为“系统身份验证”或“密码身份验证”,因此这些文件实际上永远不会自行调用。相反,这些文件的内容通过“include”指令被拉入其他 PAM 配置文件中。这样,多个应用程序的通用设置可以存储在单个文件中。