主机评测
专注VPS评测和优惠码发布
#!/usr/bin/env bash
# date: 2025/10/11
# author: jeff
# contact: www@hjf.xyz
### 密码有效期天数
cat >> /etc/login.defs <<'EOF'
PASS_MAX_DAYS 90 # 密码最长有效期(天)
PASS_MIN_DAYS 7 # 两次修改密码的最小间隔(天)
PASS_WARN_AGE 7 # 密码过期前警告天数
PASS_MIN_LEN 12 # 密码最小长度(需配合PAM模块)
ENCRYPT_METHOD SHA512 # 密码加密算法
EOF
### 密码复杂度策略
cat >> /etc/security/pwquality.conf <<'EOF'
minlen = 12 # 最少12位
dcredit = -1 # 至少1个数字
ucredit = -1 # 至少1个大写字母
lcredit = -1 # 至少1个小写字母
ocredit = -1 # 至少1个特殊字符
maxrepeat = 3 # 同一字符最多重复3次
dictcheck = 1 # 检查常见字典密码
EOF
# 更改密码时不能重复使用3次历史旧密码
sed -i '/pam_unix\.so/ s/$/ remember=3/' /etc/pam.d/common-password
# 输入3次错误密码就锁定5分钟
sed -i '2i auth required pam_faillock.so preauth silent audit deny=3 even_deny_root unlock_time=600\nauth [success=1 default=bad] pam_unix.so\nauth required pam_faillock.so authfail audit deny=3 even_deny_root unlock_time=600\naccount required pam_faillock.so' /etc/pam.d/sshd