安全加固需强化密码策略、禁用高危账户、落实最小权限、防护暴力破解并定期审计。具体包括:设密码复杂度与有效期;锁定ftp等无用账户;sudo精细化授权;faillock限制登录失败;每月检查lastb/last日志并留存账号审计记录。

账户密码策略强化
默认密码策略往往过于宽松,必须强制设置复杂度和有效期。编辑 /etc/pam.d/common-password(Debian/Ubuntu)或 /etc/pam.d/system-auth(RHEL/CentOS),添加或修改以下行:
-
密码最小长度:加入
minlen=10限制最短字符数 -
大小写+数字+特殊字符:启用
ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1,表示至少含1个大写、1个小写、1个数字、1个特殊字符 -
密码历史记录:添加
remember=5,防止重复使用最近5次旧密码 -
密码过期控制:用
chage -M 90 -m 7 -W 7 username设置最长使用90天、最短7天、到期前7天提醒
禁用或锁定高危账户
系统预置账户如 ftp、sync、games 等通常无实际用途,却可能成为攻击入口。不建议直接删除,应安全禁用:
- 执行
usermod -s /usr/sbin/nologin username或usermod -L username锁定登录shell并加锁密码 - 检查是否存在空密码账户:
awk -F: '$2 == "" {print $1}' /etc/shadow,若有则立即设密或禁用 - 确认 root 远程 SSH 登录已关闭:编辑 /etc/ssh/sshd_config,确保
PermitRootLogin no,重启 sshd 生效
最小权限原则与sudo精细化管控
避免普通用户拥有过度权限,也不推荐长期使用 root 执行日常操作。应通过 sudo 实现可控提权:
- 用
visudo编辑 sudoers,禁止直接%wheel ALL=(ALL) ALL这类宽泛配置 - 按需定义命令别名,例如:
Cmnd_Alias BACKUP = /bin/tar, /usr/bin/rsync,再授权:alice ALL=(root) NOPASSWD: BACKUP - 启用日志审计:确保
Defaults logfile="/var/log/sudo.log"和Defaults log_input,log_output开启,便于回溯操作行为
登录失败处理与暴力破解防护
针对密码爆破,仅靠强密码不够,需叠加访问控制机制:
- 安装并启用 faillock(PAM 模块):在 /etc/pam.d/sshd 中添加
auth [default=bad success=ok user_unknown=ignore] pam_faillock.so preauth silent deny=5 unlock_time=900,5次失败后锁定15分钟 - 配合 sshd 的 MaxAuthTries:在 /etc/ssh/sshd_config 中设为
MaxAuthTries 3,减少单次会话尝试次数 - 考虑部署 fail2ban:监控 /var/log/auth.log 或 /var/log/secure,自动封禁异常IP,适合多服务场景
定期清理与审计机制
加固不是一次性任务,需建立常态化检查习惯:
- 每月运行
lastb -n 20查看最近失败登录;用last -n 30核查异常登录时段与来源IP - 执行
getent passwd | awk -F: '$3 >= 1000 && $3 列出非系统账户,逐个确认必要性 - 导出账户状态快照:
getent shadow | cut -d: -f1,2,3,4,5,6,7,8 > /root/account_audit_$(date +%F).txt,留存备查










