服务器账户安全策略实践(密码配置和账户锁定)

以openeuler服务器为例进行介绍。
1、密码强度配置
在用户修改密码时,强制检查密码是否符合本地定义的复杂度要求(如长度、字符种类等),如果校验失败,那么密码修改失败。在 openEuler 系统中,修改/etc/pam.d/system-auth 文件,推荐的完整配置如下:
password requisite pam_pwquality.so minlen=8 minclass=3 enforce_for_root try_first_pass local_users_only retry=3
openEuler 默认使用 pam_pwquality.so 模块来强制执行密码复杂度策略,其中:
minlen=8:最小长度 8 位;
minclass=3:至少包含 3 类字符(大写、小写、数字、特殊字符);
retry=3:最多允许重试 3 次;
enforce_for_root:root 用户也受此策略限制。

/etc/pam.d/system-auth 是 “本地登录”(login、su、sudo、ssh、crond ……)的主入口。
/etc/pam.d/password-auth 是 “网络服务”(sshd、vsftpd、samba、httpd-auth ……)的入口。
在 openEuler(以及 RHEL/CentOS 系)中,这两个文件的内容 99 % 相同,只是被不同 PAM 服务各 include 一次,openEuler 的 sshd 默认 auth include password-auth,不是 system-auth。

2、密码有效期
密码有效期参数都位于 /etc/login.defs 中,是 Linux/Unix 系统设置“本地用户口令老化策略”的默认值。当使用 useradd、chage、passwd 等命令创建或修改本地账户时,它们会被自动取作“默认”值。
找到如下值,做合理修改。
PASS_MAX_DAYS 99999 口令的最大有效期(天)。
PASS_MIN_DAYS 0 两次修改口令的最小间隔天数。
PASS_MIN_LEN 5 历史遗留字段,已被 PAM 模块取代。
PASS_WARN_AGE 7 口令到期前提前多少天开始提醒用户更换。

3、登录失败锁定账号
为了保障用户系统的安全,建议用户设置口令出错次数的阈值(建议3次),以及由于口令尝试被锁定用户的自动解锁时间(建议300秒)。
用户锁定期间,任何输入被判定为无效,锁定时间不因用户的再次输入而重新计时;解锁后,用户的错误输入记录被清空。通过上述设置可以有效防范口令被暴力破解,增强系统的安全性。
找到如下值,做合理修改。
登录失败次数和锁定时间是通过修改/etc/pam.d/password-auth和/etc/pam.d/system-auth文件实现,设置口令最大的出错次数为3次,系统锁定后的解锁时间为300秒,配置如下:
auth required pam_faillock.so preauth audit deny=3 even_deny_root unlock_time=300
auth [default=die] pam_faillock.so authfail audit deny=3 even_deny_root unlock_time=300
auth sufficient pam_faillock.so authsucc audit deny=3 even_deny_root unlock_time=300

然后用另外一台服务器测试登录,以及其对应日志

即使我第六次输入了正确的密码,依旧登录失败

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注