11.5. PAM 配置示例
请参阅具有详细描述的 PAM 配置文件示例。
注解的 PAM 配置示例
#%PAM-1.0 auth required pam_securetty.so 1 auth required pam_unix.so nullok 2 auth required pam_nologin.so 3 account required pam_unix.so 4 password required pam_pwquality.so retry=3 5 password required pam_unix.so shadow nullok use_authtok 6 session required pam_unix.so 7
- 1
- 如果存在此文件,此行确保仅允许从
/etc/securetty
文件中列出的终端进行 root 登录。如果文件中未列出终端,则作为 root 的登录会失败,并显示Login incorrect
message。 - 2
- 提示用户输入密码,并根据存储在
/etc/passwd
中的信息进行检查,如果存在,/etc/shadow
.nullok
参数允许为空密码。 - 3
- 检查
/etc/nologin
文件是否存在。如果存在,且用户不是 root,身份验证会失败。注意在本例中,会检查所有三个
auth
模块,即使第一个auth
模块失败。这是一个很好的安全方法,可防止潜在的攻击者了解其身份验证失败的阶段。 - 4
- 验证用户帐户。例如,如果启用了 shadow 密码,
pam_unix.so
模块的帐户类型会检查过期的帐户或用户是否需要更改密码。 - 5
- 如果当前密码已过期或者用户手动请求密码更改,则提示输入新密码。然后,它会检查新创建的密码的强度,以确保它满足质量要求,且不会被基于字典的密码破解程序轻松决定。参数
retry=3
指定用户有三个尝试创建强密码。 - 6
pam_unix.so
模块管理密码更改。shadow
参数指示模块在更新用户密码时创建影子密码。nullok
参数允许用户从空白密码更改密码,否则 null 密码被视为帐户锁定。use_authtok
参数接受之前输入的任何密码,而不再次提示用户。这样,所有新密码都必须通过pam_pwquality.so
检查接受安全密码。- 7
pam_unix.so
模块管理会话,并在每个会话的开头和结尾记录用户名和服务类型。日志由systemd-journald
服务收集,可通过journalctl
命令查看。日志也存储在/var/log/secure
中。此模块可以通过与其他会话模块一起进行补充,以实现额外的功能。