Linux服务器安全加固项目教程_账户策略与防护措施

13次阅读

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

Linux服务器安全加固项目教程_账户策略与防护措施

账户密码策略强化

默认密码策略往往过于宽松,必须强制设置复杂度和有效期。编辑 /etc/pam.d/common-passworddebian/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天提醒

禁用或锁定高危账户

系统预置账户如 ftpsyncgames 等通常无实际用途,却可能成为攻击入口。不建议直接删除,应安全禁用:

  • 执行 usermod -s /usr/sbin/nologin usernameusermod -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,留存备查

安全加固的核心是“减法思维”——删掉不用的,锁住可疑的,限制能用的,记录每一次变更。每一步都可验证,每一项都可回退。

text=ZqhQzanResources