查看当前用户的账号密码策略
-- 输入指令
chage -l root
-- 返回结果
Last password change : Jun 14, 2022
Password expires : never
Password inactive : never
Account expires : never
Minimum number of days between password change : 0
Maximum number of days between password change : 99999
Number of days of warning before password expires : 7
-- 翻译过来:
最近一次密码修改时间 : 6月 14, 2022
密码过期时间 :从不过期
密码失效时间 :从不
帐户过期时间 :从不
两次改变密码之间相距的最小天数 :任何时候都可以改
两次改变密码之间相距的最大天数 :永远不需要改
在密码过期之前警告的天数 :7
- 设置密码失效时间
在 /etc/login.defs
中将 PASS_MAX_DAYS 参数设置为90
--两次改变密码之间相距的最大天数,密码有效最大天数
PASS_MAX_DAYS 90
- 设置密码修改最小间隔时间
--两次改变密码之间相距的最小天数,为零时代表任何时候都可以更改密码
PASS_MIN_DAYS 7
- 在到期前设置警告的天数
在 /etc/login.defs
中将 PASS_WARN_AGE 参数设置为7天
PASS_WARN_AGE 7
- 设置密码复杂度
在 /etc/pam.d/common-password
添加如下内容
# /etc/pam.d/common-password - password-related modules common to all services
password requisite pam_cracklib.so retry=3 minlen=8 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1
password [success=1 default=ignore] pam_unix.so sha512
password requisite pam_deny.so
password required pam_permit.so
- “minlen=8”表示密码长度至少为8个字符。
- “ucredit=-1”表示密码中至少包含一个大写字母。
- “lcredit=-1”表示密码中至少包含一个小写字母。
- “dcredit=-1”表示密码中至少包含一个数字。
- “ocredit=-1”表示密码中至少包含一个特殊字符。
- 检查密码重用是否受限制
在/etc/pam.d/password-auth
和/etc/pam.d/system-auth
中password sufficient pam_unix.so 这行的末尾配置remember参数为5-24之间,原来的内容不用更改,只在末尾加了remember=5。
- 设置SSH空闲超时退出时间
编辑/etc/ssh/sshd_config
,将ClientAliveInterval 设置为300到900,即5-15分钟,将ClientAliveCountMax设置为0-3之间。
ClientAliveInterval 600
ClientAliveCountMax 2
- 账户锁定策略
修改配置文件/etc/pam.d/system-auth-ac
和/etc/pam.d/password-auth-ac
/etc/pam.d/system-auth-ac文件替换如下:
auth required pam_env.so
auth required pam_tally2.so even_deny_root deny=5 unlock_time=60
auth sufficient pam_unix.so nullok try_first_pass
auth requisite pam_succeed_if.so uid >= 1000 quiet_success
auth required pam_deny.so
account required pam_unix.so
account required pam_tally2.so
account sufficient pam_localuser.so
account sufficient pam_succeed_if.so uid
/etc/pam.d/password-auth-ac文件替换如下;
auth required pam_env.so
auth required pam_tally2.so deny=5 unlock_time=60
auth sufficient pam_unix.so nullok try_first_pass
auth requisite pam_succeed_if.so uid >= 1000 quiet_success
auth required pam_deny.so
account required pam_unix.so
account required pam_tally2.so
account sufficient pam_localuser.so
account sufficient pam_succeed_if.so uid
查看用户锁定状态
-- 输入命令
pam_tally2 -u root
-- 输出结果
Login Failures Latest failure From
root 0
解锁状态
-- 输入命令
pam_tally2 -r -u root
-- 输出结果
Login Failures Latest failure From
root 0
login.defs文件和/etc/pam.d/system-auth文件的规则设置对非root用户起作用,在root用户下则不会生效!如果设置root用户密码过期时间等,需要用chage命令进行设置。
基本格式:chage [选项] 账户名
-- 查看系统账户的当前设置
chage -l username
-- 设置用户设置密码失效时间
chage --maxdays 90 username
-- 设置用户密码修改最小间隔时间
chage --mindays 7 username